chiark / gitweb /
fdroidserver.git
8 years agouse jarsigner and keytool from same JDK as is being set in JAVA7_HOME
Hans-Christoph Steiner [Thu, 11 Feb 2016 19:43:55 +0000 (20:43 +0100)]
use jarsigner and keytool from same JDK as is being set in JAVA7_HOME

Using the same JDK throughout should prevent weird bugs where a setup might
use Java8's jarsigner and Java7's keytool.  This also allows the user to
set java_paths and have jarsigner and keytool used from that specified JDK.

This incorporates almost all of the patch that is in the Debian package
that forces fdroidserver to use the default JDK on that Debian release.

closes #93 https://gitlab.com/fdroid/fdroidserver/issues/93

8 years agoautomatically detect various installed JDKs and set JAVA[6-9]_HOME
Hans-Christoph Steiner [Fri, 5 Feb 2016 23:29:07 +0000 (00:29 +0100)]
automatically detect various installed JDKs and set JAVA[6-9]_HOME

This checks for which JDKs are installed in common locations, then sets the
JAVA[6-9]_HOME env vars needed by some build environments.

8 years agomakebuildserver: add workaround to Ubuntu/trusty's old paramiko
Hans-Christoph Steiner [Thu, 4 Feb 2016 07:42:53 +0000 (08:42 +0100)]
makebuildserver: add workaround to Ubuntu/trusty's old paramiko

Ubuntu trusty 14.04's paramiko does not work with jessie's openssh's
default settings, so they need to be tweaked in order to provide working
ssh to the instance.

https://stackoverflow.com/questions/7286929/paramiko-incompatible-ssh-peer-no-acceptable-kex-algorithm/32691055#32691055

8 years agoMerge branch 'jmastr/use_tag_if_version_name_is_unknown' into 'master'
Daniel Martí [Thu, 11 Feb 2016 19:06:22 +0000 (19:06 +0000)]
Merge branch 'jmastr/use_tag_if_version_name_is_unknown' into 'master'

use tag if version name is unknown

If we don't find the version name neither in the AndroidManifest.xml nor
in the build.grade file, we fallback to the tag the user specified to
search for.

That way we have a better version name than 'Unknown'.

See merge request !97

8 years agouse tag if version name is unknown
Julian Strobl [Thu, 11 Feb 2016 18:50:16 +0000 (19:50 +0100)]
use tag if version name is unknown

If we don't find the version name neither in the AndroidManifest.xml nor
in the build.grade file, we fallback to the tag the user specified to
search for.

That way we have a better version name than 'Unknown'.

8 years agoMerge branch 'prevo' into 'master'
Daniel Martí [Wed, 10 Feb 2016 15:57:19 +0000 (15:57 +0000)]
Merge branch 'prevo' into 'master'

Add libexpat1-dev and libglib2.0-dev to the default recipe

These are needed to build the PrevoDB srcdep of
uk.co.busydoingnothing.prevo.

See merge request !96

8 years agoAdd libexpat1-dev and libglib2.0-dev to the default recipe
Neil Roberts [Wed, 10 Feb 2016 14:50:50 +0000 (14:50 +0000)]
Add libexpat1-dev and libglib2.0-dev to the default recipe

These are needed to build the PrevoDB srcdep of
uk.co.busydoingnothing.prevo.

8 years agoMerge branch 'jenkins-makebuildserver-works' into 'master'
Daniel Martí [Mon, 8 Feb 2016 16:07:27 +0000 (16:07 +0000)]
Merge branch 'jenkins-makebuildserver-works' into 'master'

Jenkins ./makebuildserver works!

These commits get `./makebuildserver` running in a Jenkins job. It builds the whole setup from scratch every time, including the vagrant and virtualbox setups.

Also, this modifies the git pre-commit hook to only run on the files being committed when called by git.

See merge request !95

8 years agotest ./makebuildserver by running a build in jenkins
Hans-Christoph Steiner [Wed, 3 Feb 2016 21:02:50 +0000 (22:02 +0100)]
test ./makebuildserver by running a build in jenkins

8 years agoscript to run ./makebuildserver on Jenkins instances
Hans-Christoph Steiner [Wed, 3 Feb 2016 21:00:48 +0000 (22:00 +0100)]
script to run ./makebuildserver on Jenkins instances

This is being used to run it on both Guardian Project's and Debian's
Jenkins instances.

8 years agomakebuildserver: default memory to 1024MB, so it runs on normal machines
Hans-Christoph Steiner [Thu, 28 Jan 2016 12:00:18 +0000 (13:00 +0100)]
makebuildserver: default memory to 1024MB, so it runs on normal machines

4 gigs is still a common amount of RAM these days for laptops, if the VM
takes almost all of that, it makes the machine drag to almost a halt. Most
apps build fine in 1gig of RAM, indeed that's the default for most CI
instances, like travis-ci and gitlab-ci.

8 years agoallow setting up an apt package cache for the build server setup
Hans-Christoph Steiner [Tue, 26 Jan 2016 10:21:21 +0000 (11:21 +0100)]
allow setting up an apt package cache for the build server setup

This creates a cache folder which will store the apt cache from the VM.

8 years agomakebuildserver: make chef find the custom cache locations
Hans-Christoph Steiner [Tue, 26 Jan 2016 21:06:10 +0000 (22:06 +0100)]
makebuildserver: make chef find the custom cache locations

8 years agomake git pre-commit hook only test files to be committed
Hans-Christoph Steiner [Wed, 3 Feb 2016 13:48:40 +0000 (14:48 +0100)]
make git pre-commit hook only test files to be committed

Right now, the git pre-commit hook is pretty annoying to work with when
development since it tests every single file.  That means notes, incomplete
stuff, etc. will be run through the tests.  So all of the files need to be
clean in order to commit even a single trivial fix.  This commit changes it
so that the pre-commit hook is only run on the files staged to be committed.

8 years agolint: also check for trailing spaces in names
Daniel Martí [Sun, 31 Jan 2016 21:29:31 +0000 (21:29 +0000)]
lint: also check for trailing spaces in names

I was wrong - we don't check for trailing whitespaces on lines. That
would have to happen at parse time, not in the linter, so it would slow
things down and would become an error, not a warning. Not really worth
it.

8 years agoMerge branch 'authorregex' into 'master'
Daniel Martí [Sun, 31 Jan 2016 21:26:31 +0000 (21:26 +0000)]
Merge branch 'authorregex' into 'master'

lint: check whitespaces in "Author Name"

See merge request !94

8 years agolint: check whitespaces in "Author Name"
Boris Kraut [Sun, 31 Jan 2016 11:53:38 +0000 (12:53 +0100)]
lint: check whitespaces in "Author Name"

8 years agoMerge branch 'licenses' into 'master'
Daniel Martí [Sun, 31 Jan 2016 13:26:26 +0000 (13:26 +0000)]
Merge branch 'licenses' into 'master'

wp-fdroid: Linkify more licenses

See merge request !90

8 years agoMerge branch 'patch-1' into 'master'
Daniel Martí [Sun, 31 Jan 2016 13:25:03 +0000 (13:25 +0000)]
Merge branch 'patch-1' into 'master'

Support 'gpgkey' option as announced in sample config.

See merge request !93

8 years agoSupport 'gpgkey' option as announced in sample config.
Marvin W [Wed, 27 Jan 2016 15:51:03 +0000 (15:51 +0000)]
Support 'gpgkey' option as announced in sample config.

8 years agoTidy up/fix some vagrant issues
Ciaran Gultnieks [Tue, 26 Jan 2016 22:01:28 +0000 (22:01 +0000)]
Tidy up/fix some vagrant issues

1. It is packaged in modern versions of distros, update docs accordingly
2. 1.1 is hopelessly outdated - support 1.4 onwards
3. Check the version properly, and write a better config (previously it
   wrote the 1.1 config for 1.1 and 1.3+
4. Ensure that the default share from later versions is not present when
   building, it's only required for provisioning.

8 years agoHandle with invalid manifests better
Ciaran Gultnieks [Tue, 26 Jan 2016 22:00:00 +0000 (22:00 +0000)]
Handle with invalid manifests better

In other words, don't blow up and kill a whole checkupdates run just
because one version of one package has some invalid xml.

8 years agoMerge branch 'makebuildserver-jenkins-fixes' into 'master'
Daniel Martí [Tue, 26 Jan 2016 19:52:12 +0000 (19:52 +0000)]
Merge branch 'makebuildserver-jenkins-fixes' into 'master'

Makebuildserver jenkins fixes

more stuff related to the Debian jenkins build

See merge request !92

8 years agomakebuildserver: settable vm boot timeout, plus longer default
Hans-Christoph Steiner [Tue, 26 Jan 2016 16:35:25 +0000 (17:35 +0100)]
makebuildserver: settable vm boot timeout, plus longer default

On slow machines or VMs like the Debian jenkins box, the VM boot timeout
needs to be a lot longer, otherwise vagrant times out before setting up
the VM.

8 years agomakebuildserver: explicitly set debian_mirror by default
Hans-Christoph Steiner [Tue, 26 Jan 2016 12:33:53 +0000 (13:33 +0100)]
makebuildserver: explicitly set debian_mirror by default

There needs to be a default, otherwise it crashes.  I should have included
this in 8d66742dd7feec77aa30382bfb38da83f2b3e5a4

8 years agoMerge branch 'makebuildserver-caching-fixes' into 'master'
Daniel Martí [Tue, 26 Jan 2016 11:00:58 +0000 (11:00 +0000)]
Merge branch 'makebuildserver-caching-fixes' into 'master'

./makebuildserver CI fixes

These are fixes for caching and flexible config related to the work of getting `./makebuildserver` running on Debian's and Guardian Project's Jenkins boxes.  @mvdan and I have been working with h01lger to get that going, here's the latest build log: https://jenkins.debian.net/view/reproducible/job/reproducible_setup_fdroid_build_environment_profitbricks3/lastBuild/console

See merge request !91

8 years agomake all apt repos in build server use the configured debian mirror
Hans-Christoph Steiner [Fri, 22 Jan 2016 14:30:34 +0000 (15:30 +0100)]
make all apt repos in build server use the configured debian mirror

8 years agomakebuildserver: set debian mirror in config file only
Hans-Christoph Steiner [Fri, 22 Jan 2016 13:33:17 +0000 (14:33 +0100)]
makebuildserver: set debian mirror in config file only

Setting it in the config file was not working, and right now, all of the
options are in the config file and not as command line flags, so remove
--debian-mirror to keep that consistent.

8 years agomakebuildserver: use jessie32.box from cache, if present
Hans-Christoph Steiner [Fri, 22 Jan 2016 12:33:14 +0000 (13:33 +0100)]
makebuildserver: use jessie32.box from cache, if present

8 years agoscanner: Allow clojars.org maven repository
Daniel Martí [Sun, 24 Jan 2016 18:13:45 +0000 (18:13 +0000)]
scanner: Allow clojars.org maven repository

See https://github.com/inorichi/tachiyomi/issues/46.

8 years agowp-fdroid: Linkify more licenses
Boris Kraut [Sun, 24 Jan 2016 12:27:15 +0000 (13:27 +0100)]
wp-fdroid: Linkify more licenses

8 years agoMerge branch 'master' into 'master'
Hans-Christoph Steiner [Fri, 22 Jan 2016 10:27:54 +0000 (10:27 +0000)]
Merge branch 'master' into 'master'

Reproducibly build documentation

The two commits fix reproducibility problems detected by the Debian CI:

https://reproducible.debian.net/rb-pkg/unstable/amd64/fdroidserver.html

See merge request !84

8 years agoMerge branch 'makebuildserver-for-debian-jenkins' into 'master'
Daniel Martí [Thu, 21 Jan 2016 15:49:37 +0000 (15:49 +0000)]
Merge branch 'makebuildserver-for-debian-jenkins' into 'master'

Makebuildserver for debian jenkins

@mvdan and I worked out a plan with Holger, the Debian Developer running the reproducible builds jenkins build farm.  The idea is for that to just run `./makebuildserver` in the jenkins script.  Then we'll make sure that it works.  This also makes it easy for anyone to set up and run an FDroid build instance, which is important for things like the verification server and for people to be able to run reproducible builds on their own machine.

This does change some of the defaults, but they can all be overridden in the `makebs.config.py` for f-droid.org.

More comments in the commits.

See merge request !89

8 years agomakebuildserver: delete cached files with zero size
Hans-Christoph Steiner [Thu, 21 Jan 2016 14:41:26 +0000 (15:41 +0100)]
makebuildserver: delete cached files with zero size

If download fails to connect, it'll make a zero size file.  Then the next
run on ./makebuildserver will fail because the checksum will not be right.

8 years agomakebuildserver: cache defaults to ~/.cache/fdroidserver
Hans-Christoph Steiner [Thu, 21 Jan 2016 13:09:12 +0000 (14:09 +0100)]
makebuildserver: cache defaults to ~/.cache/fdroidserver

This also provides a config option to override that default.  ~/.cache is
a standard location on GNU/Linux machines for cached content.  It is also
good to have the cache outside of the git repo in case `git clean -fdx` is
run, which would delete all files in the directory that are not part of the
git repo, including buildserver/cache/

8 years agomakebuildserver: set defaults in script so it can run without config
Hans-Christoph Steiner [Wed, 20 Jan 2016 20:00:16 +0000 (21:00 +0100)]
makebuildserver: set defaults in script so it can run without config

This makes it so that ./makebuildserver will run without any config file,
using the defaults that are embedded in the script itself.  This is like
how `fdroid` works.

8 years agomakebuildserver: set default Debian mirror to http.debian.net
Hans-Christoph Steiner [Wed, 20 Jan 2016 19:40:25 +0000 (20:40 +0100)]
makebuildserver: set default Debian mirror to http.debian.net

This host automatically detects which is the closest mirror, then uses that
one.  It does so dynamically, so it'll work on machines that move too. Now
that we are pushing more people to run F-Droid build servers, the defaults
should take those use cases into account.

8 years agoname makebuildserver config the same as the script
Hans-Christoph Steiner [Wed, 20 Jan 2016 19:38:18 +0000 (20:38 +0100)]
name makebuildserver config the same as the script

This keeps the numbers of names down to a minimum, and since the config
is placed right next to the script, this keeps tab completion working
nicely when the config file is in place.

The old file name is still supported.

8 years agorun-tests: verbose output for `fdroid update` to aid debugging
Hans-Christoph Steiner [Wed, 16 Sep 2015 15:19:12 +0000 (17:19 +0200)]
run-tests: verbose output for `fdroid update` to aid debugging

I'm stumped by this stacktrace, hopefully debug logging will help:

Unknown exception found!
Traceback (most recent call last):
  File "./fdroidserver-0.4.0/fdroid", line 141, in <module>
    main()
  File "./fdroidserver-0.4.0/fdroid", line 119, in main
    mod.main()
  File "<http://localhost:18080/job/fdroidserver/ws/.testfiles/tmp.9hr9NiSmZs/fdroidserver-0.4.0/fdroidserver/update.py",> line 1146, in main
    apks, cachechanged = scan_apks(apps, apkcache, repodirs[0], knownapks)
  File "<http://localhost:18080/job/fdroidserver/ws/.testfiles/tmp.9hr9NiSmZs/fdroidserver-0.4.0/fdroidserver/update.py",> line 543, in scan_apks
    thisinfo['sig'] = getsig(os.path.join(os.getcwd(), apkfile))
  File "<http://localhost:18080/job/fdroidserver/ws/.testfiles/tmp.9hr9NiSmZs/fdroidserver-0.4.0/fdroidserver/update.py",> line 361, in getsig
    with zipfile.ZipFile(apkpath, 'r') as apk:
  File "/usr/lib/python2.7/zipfile.py", line 770, in __init__
    self._RealGetContents()
  File "/usr/lib/python2.7/zipfile.py", line 857, in _RealGetContents
    x._decodeExtra()
  File "/usr/lib/python2.7/zipfile.py", line 388, in _decodeExtra
    tp, ln = unpack('<HH', extra[:4])
struct.error: unpack requires a string argument of length 4

8 years agoApparently Python cannot handle Unicode
Daniel Martí [Thu, 14 Jan 2016 22:12:22 +0000 (23:12 +0100)]
Apparently Python cannot handle Unicode

I really hope I can revert this in the near future. Having to mutilate
my name just so that pip will work is a terrible workaround.

For better or worse, this only affects scripts defined in setup.py.

8 years agostats: use a stable sort that doesn't randomize
Daniel Martí [Mon, 11 Jan 2016 01:43:06 +0000 (02:43 +0100)]
stats: use a stable sort that doesn't randomize

Since we only sorted by count, ignoring the string, it meant that items
with the same count might be arranged in different manners. Hence the
`stats` behaviour was not predictable at all. Now it sorts first by
count, then by string.

8 years agobuild: don't add extra clean tasks
Daniel Martí [Mon, 11 Jan 2016 01:05:43 +0000 (02:05 +0100)]
build: don't add extra clean tasks

It is a good idea in theory, especially for extra tasks specified by the
user. But in practice, tasks specified by developers often don't have a
clean counterpart. So this just breaks the build.

8 years agometadata: fix text wrapping on unicode characters
Daniel Martí [Sun, 10 Jan 2016 16:54:38 +0000 (17:54 +0100)]
metadata: fix text wrapping on unicode characters

We were passing the utf-8 encoded string to textwrap, which took the
bytes as characters. Hence multi-byte unicode characters (in utf-8)
would count as multiple columns, which is clearly wrong.

8 years agofdroid: python2 doesn't like print()
Daniel Martí [Sat, 9 Jan 2016 12:24:13 +0000 (13:24 +0100)]
fdroid: python2 doesn't like print()

It just prints "()", which is stupid.

8 years agoAdd Gradle 2.10 to the BS
Daniel Martí [Tue, 5 Jan 2016 08:15:54 +0000 (09:15 +0100)]
Add Gradle 2.10 to the BS

8 years agometadata: Always use regex to verify values
Daniel Martí [Mon, 4 Jan 2016 12:44:00 +0000 (13:44 +0100)]
metadata: Always use regex to verify values

Lists can be made into regexes very easily. Major code simplification.
Also no need to construct sets to avoid iterating over lists.

8 years agoRemove redundant AntiFeatures bool check
Daniel Martí [Mon, 4 Jan 2016 12:26:48 +0000 (13:26 +0100)]
Remove redundant AntiFeatures bool check

8 years agoMerge branch 'master' into 'master'
Daniel Martí [Mon, 4 Jan 2016 08:29:17 +0000 (08:29 +0000)]
Merge branch 'master' into 'master'

Add Author Name and Author Email fields. (Closes: #90)

Adds the two new fields as discussed in issue #90. Both are optional.

Mind that the Wiki template needs to be extended before merging.

See merge request !87

8 years agoAdd Author Name and Author Email fields. (Closes: #90)
Dominik George [Sun, 3 Jan 2016 19:49:36 +0000 (20:49 +0100)]
Add Author Name and Author Email fields. (Closes: #90)

8 years agolint: warn about spaces in summaries too
Daniel Martí [Thu, 31 Dec 2015 10:21:47 +0000 (11:21 +0100)]
lint: warn about spaces in summaries too

8 years agoREADME: Note that Python 2.7.7+ is supported
Daniel Martí [Thu, 31 Dec 2015 09:11:41 +0000 (10:11 +0100)]
README: Note that Python 2.7.7+ is supported

8 years agogradle: stop trying to patch outputFile
Daniel Martí [Thu, 31 Dec 2015 08:37:08 +0000 (09:37 +0100)]
gradle: stop trying to patch outputFile

This often breaks since we're just removing a single line. Instead, use
a much more reliable way of finding output apks.

8 years agohandle Queue
NeroBurner [Thu, 17 Sep 2015 11:33:19 +0000 (13:33 +0200)]
handle Queue

8 years agoOctal numbers 0600 to 0o600
NeroBurner [Thu, 17 Sep 2015 11:29:06 +0000 (13:29 +0200)]
Octal numbers 0600 to 0o600

8 years agoexcept named exception handling
NeroBurner [Thu, 17 Sep 2015 11:25:08 +0000 (13:25 +0200)]
except named exception handling

8 years agoChange print-function to have brackets
NeroBurner [Wed, 16 Sep 2015 20:44:41 +0000 (22:44 +0200)]
Change print-function to have brackets

8 years agoAdd NonFreeAssets anti-feature
Daniel Martí [Tue, 29 Dec 2015 11:39:48 +0000 (12:39 +0100)]
Add NonFreeAssets anti-feature

8 years agoSmall gradle wrapper fix
Daniel Martí [Thu, 24 Dec 2015 22:08:31 +0000 (23:08 +0100)]
Small gradle wrapper fix

It broke on cases like:

if (gradle.gradleVersion >= "2.2") {

8 years agogradle: Completely get rid of gradlepluginver
Daniel Martí [Thu, 24 Dec 2015 15:41:39 +0000 (16:41 +0100)]
gradle: Completely get rid of gradlepluginver

We can support multiple output dirs without having to detect/infer the
plugin version. Much simpler and more robust too.

8 years agogradle: Never add lintOptions workaround
Daniel Martí [Thu, 24 Dec 2015 15:40:36 +0000 (16:40 +0100)]
gradle: Never add lintOptions workaround

This breaks on newer plugin versions. Instead of complicating this logic
even further to support them, upstream devs should instead use gradle
configs that actually work.

If their build fails because of lint, it's theirs to fix, not ours.

8 years agoFix issues spotted by older pyflakes
Daniel Martí [Wed, 16 Dec 2015 15:42:21 +0000 (16:42 +0100)]
Fix issues spotted by older pyflakes

8 years agoMerge branch 'docs' into 'master'
Daniel Martí [Thu, 10 Dec 2015 11:50:36 +0000 (11:50 +0000)]
Merge branch 'docs' into 'master'

docs: Add information on binary verification

I added a section about `Binaries:` metadata field. However, my information might be wrong or outdated, since I barely used it by now. Maybe even this field was left out on purpose...

See merge request !83

8 years agoMerge branch 'summarylength' into 'master'
Daniel Martí [Thu, 10 Dec 2015 11:47:48 +0000 (11:47 +0000)]
Merge branch 'summarylength' into 'master'

docs: Adjust summary length

See merge request !85

8 years agodocs: Adjust summary length
Boris Kraut [Thu, 10 Dec 2015 11:42:05 +0000 (12:42 +0100)]
docs: Adjust summary length

8 years agoOpen metadata files in only one place
Daniel Martí [Mon, 7 Dec 2015 19:31:23 +0000 (20:31 +0100)]
Open metadata files in only one place

Also get rid of the useless get_default_app_info func.

8 years agolint: optionally check format
Daniel Martí [Mon, 7 Dec 2015 19:12:26 +0000 (20:12 +0100)]
lint: optionally check format

8 years agolint: fix issue found by older version of pyflakes
Daniel Martí [Mon, 7 Dec 2015 12:58:29 +0000 (13:58 +0100)]
lint: fix issue found by older version of pyflakes

8 years agocheckupdates: fix --auto build copy
Daniel Martí [Mon, 7 Dec 2015 11:39:04 +0000 (12:39 +0100)]
checkupdates: fix --auto build copy

Also, remove origlines which hasn't been used in some time.

8 years agostats: fix a few dict accesses left over
Daniel Martí [Mon, 7 Dec 2015 11:33:24 +0000 (12:33 +0100)]
stats: fix a few dict accesses left over

8 years agoimport: fix get_default_app_info usage
Daniel Martí [Sat, 5 Dec 2015 18:20:41 +0000 (19:20 +0100)]
import: fix get_default_app_info usage

Closes #129

8 years agoscanner: remove jni check
Daniel Martí [Fri, 4 Dec 2015 18:32:01 +0000 (19:32 +0100)]
scanner: remove jni check

buildjni=no is the default. Moreover, some apps now run ndk-build via
gradle, so this was just in the way.

8 years agoSet all list defaults to an actual list
Daniel Martí [Thu, 3 Dec 2015 23:02:34 +0000 (00:02 +0100)]
Set all list defaults to an actual list

Iterating over the defaults will crash otherwise. Update pickle files.

8 years agoFix tests by not checking private attributes
Daniel Martí [Thu, 3 Dec 2015 18:31:20 +0000 (19:31 +0100)]
Fix tests by not checking private attributes

All attrs starting with '_' (e.g. _foo or __bar) are used internally, so
not very relevant for the metadata test anyway.

8 years agoAlso skip unmodified fields in the regex checks
Daniel Martí [Thu, 3 Dec 2015 15:49:35 +0000 (16:49 +0100)]
Also skip unmodified fields in the regex checks

Now it's close to 1s.

8 years agoKeep track of what attrs were modified in apps/builds
Daniel Martí [Thu, 3 Dec 2015 15:46:21 +0000 (16:46 +0100)]
Keep track of what attrs were modified in apps/builds

This allows us to run checks and fix types only on those that were
really modified. On our fdroiddata repo, with 2k apps with many unset
fields and flags, this reduces readmeta runtime from ~1.3s to ~1.1s.

8 years agoActually check that bools are valid
Daniel Martí [Thu, 3 Dec 2015 15:35:46 +0000 (16:35 +0100)]
Actually check that bools are valid

The metadata check was omitting booleans and lists, as it was only
taking strings. Fix this.

8 years agoRemove need for rstrip() of txt description
Daniel Martí [Thu, 3 Dec 2015 15:19:33 +0000 (16:19 +0100)]
Remove need for rstrip() of txt description

8 years agometadata: write strings directly to txt file
Daniel Martí [Thu, 3 Dec 2015 13:00:47 +0000 (14:00 +0100)]
metadata: write strings directly to txt file

8 years agoRename metafieldtype to fieldtype
Daniel Martí [Thu, 3 Dec 2015 12:53:49 +0000 (13:53 +0100)]
Rename metafieldtype to fieldtype

For consistency with flagtype. Also less redundant.

8 years agoUse dicts for field/flag types
Daniel Martí [Thu, 3 Dec 2015 12:52:53 +0000 (13:52 +0100)]
Use dicts for field/flag types

8 years agoSome more readability/performance tweaks
Daniel Martí [Thu, 3 Dec 2015 12:02:54 +0000 (13:02 +0100)]
Some more readability/performance tweaks

* Use set() instead of dict()
* No 'if foo: True else: False'
* Don't check for invalid fields twice

8 years agoUse constants for field/flag types
Daniel Martí [Thu, 3 Dec 2015 11:55:19 +0000 (12:55 +0100)]
Use constants for field/flag types

Avoids typos, such as one I just found which was 'strsng' isntead of
'string'. The static analyzer can catch those if they are constants.
Comparing ints is also faster than strings, which adds up in readmeta.

8 years agoAvoid conflicting func/var names
Daniel Martí [Thu, 3 Dec 2015 11:41:50 +0000 (12:41 +0100)]
Avoid conflicting func/var names

8 years agoMake text formatting faster via StringIO
Daniel Martí [Thu, 3 Dec 2015 11:02:47 +0000 (12:02 +0100)]
Make text formatting faster via StringIO

Avoid concatenating strings over and over. Also, the wiki formatting
wasn't necessary at all since it was just joining lines.

8 years agoRepresent multiline fields as str, not list
Daniel Martí [Thu, 3 Dec 2015 10:36:15 +0000 (11:36 +0100)]
Represent multiline fields as str, not list

Only keep lists in metadata files in the json format, since they don't
support multiline strings that are readable.

This makes the internal code easier, and a bit faster.

8 years agoFix tests
Daniel Martí [Thu, 3 Dec 2015 10:16:27 +0000 (11:16 +0100)]
Fix tests

8 years agoSome more txt parsing tweaks after profiling
Daniel Martí [Thu, 3 Dec 2015 10:06:27 +0000 (11:06 +0100)]
Some more txt parsing tweaks after profiling

8 years agoRemove duplicate build_flags check
Daniel Martí [Thu, 3 Dec 2015 09:58:12 +0000 (10:58 +0100)]
Remove duplicate build_flags check

It's already checked in set_flag

8 years agoRemove gradle=main
Daniel Martí [Thu, 3 Dec 2015 09:56:59 +0000 (10:56 +0100)]
Remove gradle=main

It was only supported in txt metadata, and was unused in fdroiddata
anyway.

8 years agoProperly close all metadata files once read
Daniel Martí [Thu, 3 Dec 2015 09:51:27 +0000 (10:51 +0100)]
Properly close all metadata files once read

8 years agoNever use exit/log in metadata
Daniel Martí [Wed, 2 Dec 2015 21:59:58 +0000 (22:59 +0100)]
Never use exit/log in metadata

8 years agoSpeed up metadata reading
Daniel Martí [Wed, 2 Dec 2015 21:38:40 +0000 (22:38 +0100)]
Speed up metadata reading

Total time for `fdroid readmeta` went down from ~1.6s to ~1.4s on my
machine.

8 years agoSimplify post_metadata_parse usage
Daniel Martí [Wed, 2 Dec 2015 21:29:31 +0000 (22:29 +0100)]
Simplify post_metadata_parse usage

8 years agometadata: properly store nums as strs and bools as bools
Daniel Martí [Wed, 2 Dec 2015 19:46:39 +0000 (20:46 +0100)]
metadata: properly store nums as strs and bools as bools

8 years agoPre-compile more regexes
Daniel Martí [Wed, 2 Dec 2015 19:38:55 +0000 (20:38 +0100)]
Pre-compile more regexes

8 years agolint: warn about target= in gradle builds
Daniel Martí [Wed, 2 Dec 2015 19:28:08 +0000 (20:28 +0100)]
lint: warn about target= in gradle builds

8 years agoFix default update= on ant builds
Daniel Martí [Wed, 2 Dec 2015 19:16:25 +0000 (20:16 +0100)]
Fix default update= on ant builds

8 years agoRework build into a class
Daniel Martí [Sat, 28 Nov 2015 16:55:27 +0000 (17:55 +0100)]
Rework build into a class

This simplifies usage, goes from

    build['flag']
to
    build.flag

Also makes static analyzers able to detect invalid attributes as the set
is now limited in the class definition.

As a bonus, setting of the default field values is now done in the
constructor, not separately and manually.

While at it, unify "build", "thisbuild", "info", "thisinfo", etc into
just "build".

8 years agogradle script: properly iterate over known versions
Daniel Martí [Wed, 2 Dec 2015 18:16:13 +0000 (19:16 +0100)]
gradle script: properly iterate over known versions

8 years agoAdd documentation to new App class
Daniel Martí [Sat, 28 Nov 2015 16:19:59 +0000 (17:19 +0100)]
Add documentation to new App class