chiark / gitweb /
fdroidserver.git
7 years agoMerge branch 'ndk14' into 'master'
Hans-Christoph Steiner [Mon, 20 Mar 2017 09:38:58 +0000 (09:38 +0000)]
Merge branch 'ndk14' into 'master'

makebs: add ndk r14

See merge request !231

7 years agomakebs: add ndk r14
Boris Kraut [Sun, 19 Mar 2017 21:21:18 +0000 (22:21 +0100)]
makebs: add ndk r14

7 years agoMerge branch 'scan-single-apk' into 'master'
Hans-Christoph Steiner [Fri, 17 Mar 2017 14:47:30 +0000 (14:47 +0000)]
Merge branch 'scan-single-apk' into 'master'

Allow for scanning single APKs

See merge request !227

7 years agoFactor code for scanning a single APK out into its own method.
Torsten Grote [Wed, 15 Mar 2017 17:43:22 +0000 (14:43 -0300)]
Factor code for scanning a single APK out into its own method.

This allows projects using fdroidserver to scan individual APKs without
needing to re-scan all APKs present in a repository.

7 years agoMerge branch 'index-v1' into 'master'
Torsten Grote [Fri, 17 Mar 2017 13:34:31 +0000 (13:34 +0000)]
Merge branch 'index-v1' into 'master'

app index V1 - support graphics, localization, and more

See merge request !221

7 years agosignindex: support signing index-v1.jar
Hans-Christoph Steiner [Thu, 16 Mar 2017 17:51:43 +0000 (18:51 +0100)]
signindex: support signing index-v1.jar

This is a bit different than index.jar: instead of their being index.xml
and index_unsigned.jar, the presense of index-v1.json means that there is
unsigned data.  That file is then stuck into a jar and signed by the
signing process.  index-v1.json is never published to the repo.  It is
included in the binary transparency log, if that is enabled.

7 years agomove update.signjar() to common so it can also be used in signindex
Hans-Christoph Steiner [Wed, 15 Mar 2017 20:23:44 +0000 (21:23 +0100)]
move update.signjar() to common so it can also be used in signindex

7 years agowarn and ignore graphics files that have no matching app metadata
Hans-Christoph Steiner [Thu, 8 Dec 2016 18:28:31 +0000 (19:28 +0100)]
warn and ignore graphics files that have no matching app metadata

If there are graphics files that are in repo/ but there is no metadata for
the associated app, then do not include the graphics in the index. Issue a
warning about this.

7 years agocopy graphic assets from fdroiddata and app source into repo
Hans-Christoph Steiner [Tue, 6 Dec 2016 16:22:46 +0000 (17:22 +0100)]
copy graphic assets from fdroiddata and app source into repo

This looks for standard graphics assets in two standardized locations, one
in metadata/ subdirs and another in fastlane's standard dirs in the app's
source repo.  When it finds them, it copies them into the repo, where they
will then be included in the index for use by fdroidclient.  The images in
the metadata/ folder of fdroiddata take precendence over the files in the
app's source repo.

So like this for including graphics in fdroiddata:
  metadata/packageName/locale/filename.(png|jpg|jpeg)
for example:
  metadata/org.videolan.vlc/en-US/featureGraphic.png
or
  metadata/info.guardianproject.ripple/zh-CN/phoneScreenshots/screenshot1.png

Including graphics in fdroiddata would be optional. The prefered way to get
graphics into the repo would be for the files to be in the git repo in a
standard location.  This fastlane layout is currently supported:

https://github.com/fastlane/fastlane/blob/1.109.0/supply/README.md#images-and-screenshots

7 years agoensure that app.Categories is always a list of strings
Hans-Christoph Steiner [Tue, 6 Dec 2016 15:11:25 +0000 (16:11 +0100)]
ensure that app.Categories is always a list of strings

This just makes it easier for people writing build recipes.  Rewriting will
output a list of strings as well.

The test index.xml and categories.txt are updated to include the new number
categories, and the changed CurrentVersionCode to 2147483647 (MAX_VALUE)

7 years agoinclude graphics and screenshots from repo in V1 index
Hans-Christoph Steiner [Tue, 6 Dec 2016 12:32:34 +0000 (13:32 +0100)]
include graphics and screenshots from repo in V1 index

If the repo has store graphics and/or screenshots, then include those in
the metadata.  This follows the possible graphics for Google Play, and the
file naming scheme of the open source 'fastlane' tool for managing those
files.

https://github.com/fastlane/fastlane/blob/1.109.0/supply/README.md#images-and-screenshots
https://support.google.com/googleplay/android-developer/answer/1078870?
https://android-developers.blogspot.com/2011/10/android-market-featured-image.html

Signed-off-by: Hans-Christoph Steiner <hans@eds.org>
7 years agoinclude push install/uninstall requests in index-v1
Hans-Christoph Steiner [Mon, 5 Dec 2016 20:06:04 +0000 (21:06 +0100)]
include push install/uninstall requests in index-v1

Since the index-v1 is generated straight from the internal dict, this just
moves the generation earlier, and feeds it into the apps dict.

7 years agoconvert internal dict keys to match fdroidclient's Apk class
Hans-Christoph Steiner [Tue, 29 Nov 2016 12:40:21 +0000 (13:40 +0100)]
convert internal dict keys to match fdroidclient's Apk class

This syncs up the field names between the fdroiddata .yml files, the keys
used in the implementation in fdroidserver, the index data format, and the
final data structures in fdroidclient.  This makes it easier for devs to
follow, and makes the Jackson parsing library automatically handle
converting the data from the index file to Java instances.

This bumps the metadata version since the apkcache will have to be
discarded.

Here are the name changes:
* apkname --> apkName
* id --> packageName
* sha256 --> hash
* version --> versionName
* versioncode --> versionCode

tests/repo/index.xml was changed only to bump the metadata version
from 17 to 18.

7 years ago`fdroid update` uses datetime instances for timestamps
Hans-Christoph Steiner [Mon, 28 Nov 2016 20:10:58 +0000 (21:10 +0100)]
`fdroid update` uses datetime instances for timestamps

Using datetime instances as the internal format makes it much easier to
convert between the formats needed for index.xml and index-v1.  apkcache
still uses time tuples and known_apks.txt still uses the ISO date.

7 years agoadd index V1 format, a direct translation of internal dict
Hans-Christoph Steiner [Mon, 28 Nov 2016 20:09:07 +0000 (21:09 +0100)]
add index V1 format, a direct translation of internal dict

Python encode/decode libs work directly with dicts, so the internal dict
can just be passed directly to any of these libs (pyyaml, pyjson, msgpack,
simplejson, etc).  This still generates the exact same index.xml as before.

This converts the internal format for the repo timestamp to a datetime
instance, which can be easily converted to UNIX time in seconds for XML
and UNIX time in milliseconds for the new index formats.  UNIX time in
milliseconds is directly serialized into a java.util.Date instance by
Jackson.

7 years agobreak out jar signing into function so it can be reused
Hans-Christoph Steiner [Mon, 5 Dec 2016 18:19:02 +0000 (19:19 +0100)]
break out jar signing into function so it can be reused

The new index format will also need to use jar signing

7 years agoonly set 'No description available' in the old index format
Hans-Christoph Steiner [Fri, 25 Nov 2016 14:29:37 +0000 (15:29 +0100)]
only set 'No description available' in the old index format

The new index format aims to be a direct representation of the data, then
the clients/website will handle the rest.

7 years agoMerge branch 'buildserver-auto-install' into 'master'
Michael Pöhn [Fri, 17 Mar 2017 12:51:15 +0000 (12:51 +0000)]
Merge branch 'buildserver-auto-install' into 'master'

buildserver auto install

Closes #247

See merge request !229

7 years agoMerge branch 'metadata_output_vars' into 'master'
Hans-Christoph Steiner [Fri, 17 Mar 2017 11:37:18 +0000 (11:37 +0000)]
Merge branch 'metadata_output_vars' into 'master'

metadata output-lines now substitute $$VERSION$$/etc.

Closes #263

See merge request !228

7 years agoMerge branch 'binary-transparency' into 'master'
Hans-Christoph Steiner [Thu, 16 Mar 2017 19:57:56 +0000 (19:57 +0000)]
Merge branch 'binary-transparency' into 'master'

new repo-wide config option for a "Binary Transparency" log based on git

See merge request !226

7 years agoadd a simple test of the binary transparency log
Hans-Christoph Steiner [Thu, 16 Mar 2017 18:22:32 +0000 (19:22 +0100)]
add a simple test of the binary transparency log

This makes sure it gets generated with two commits: README and first log.

7 years agoupdate: include git config name/email in binary transparency log
Hans-Christoph Steiner [Thu, 16 Mar 2017 16:45:10 +0000 (17:45 +0100)]
update: include git config name/email in binary transparency log

7 years agobuildserver: support HTTPS Debian mirrors
Hans-Christoph Steiner [Thu, 16 Mar 2017 13:48:08 +0000 (14:48 +0100)]
buildserver: support HTTPS Debian mirrors

The ever troublesome gpjenkins box needs to use HTTPS mirrors.  Plus it
improves the security of the buildserver, since there have been CVEs that
HTTPS would protect against:
https://www.debian.org/security/2016/dsa-3733

7 years agobuildserver: allow gradle/sdkmanager to install into the new m2repository
Hans-Christoph Steiner [Thu, 16 Mar 2017 10:43:46 +0000 (11:43 +0100)]
buildserver: allow gradle/sdkmanager to install into the new m2repository

Google is pushing gradle towards downloading all the SDK components that it
needs, rather than having a preconfigured SDK installed.  The buildserver
strongly supports the old model, with added checksum checking even. We can
still support the old model by pre-configuring the SDK and locking it down
as root. This can then also support the new model by setting the file perms
so that new packages can be auto-installed, but they cannot overwrite any
packages that come pre-installed and pre-verified.

fdroiddata!2096
closes #247

7 years agometadata output-lines now substitute $$VERSION$$/etc.
Michael Pöhn [Thu, 16 Mar 2017 08:23:28 +0000 (09:23 +0100)]
metadata output-lines now substitute $$VERSION$$/etc.

7 years agogenerate HTML diff from verify using diffoscope
Hans-Christoph Steiner [Wed, 14 Dec 2016 14:54:01 +0000 (15:54 +0100)]
generate HTML diff from verify using diffoscope

If diffoscope is installed, then use it to generate HTML diffs of all
verification builds.

7 years agonew repo-wide config option for a Binary Transparency Log
Hans-Christoph Steiner [Fri, 16 Dec 2016 11:19:07 +0000 (12:19 +0100)]
new repo-wide config option for a Binary Transparency Log

A Binary Transparency Log is a append only log of all binaries published by
a repo.  This is useful for people to find whether the binary they have
matches what F-Droid has published, and also makes it more difficult for
the published history to be changed without notice, or for a server to give
specific users custom malware binaries.

https://www.eff.org/deeplinks/2014/02/open-letter-to-tech-companies

7 years agoRemove whitespace from HTTP update check versions
Ciaran Gultnieks [Wed, 15 Mar 2017 08:58:08 +0000 (08:58 +0000)]
Remove whitespace from HTTP update check versions

7 years agoCatch update check failure and proceed, not bomb out
Ciaran Gultnieks [Wed, 15 Mar 2017 08:57:24 +0000 (08:57 +0000)]
Catch update check failure and proceed, not bomb out

7 years agoupdate: fix crash in debug logging message
Hans-Christoph Steiner [Wed, 15 Mar 2017 13:23:19 +0000 (14:23 +0100)]
update: fix crash in debug logging message

7 years agobuildserver: remove my silly mistake
Hans-Christoph Steiner [Tue, 14 Mar 2017 19:14:06 +0000 (20:14 +0100)]
buildserver: remove my silly mistake

Should have done this through a merge request... code review!

7 years agobuildserver: bump to android_m2repository r45
Hans-Christoph Steiner [Tue, 14 Mar 2017 19:04:50 +0000 (20:04 +0100)]
buildserver: bump to android_m2repository r45

7 years agoMerge branch 'constraintlayout-license-bullshit' into 'master'
Hans-Christoph Steiner [Tue, 14 Mar 2017 12:11:27 +0000 (12:11 +0000)]
Merge branch 'constraintlayout-license-bullshit' into 'master'

buildserver: support new ConstraintLayout license bullshit

See merge request !225

7 years agobuildserver: allow gradle to install newer build-tools versions
Hans-Christoph Steiner [Tue, 14 Mar 2017 11:39:03 +0000 (12:39 +0100)]
buildserver: allow gradle to install newer build-tools versions

gradle will now automatically download and install missing bits of the
Android SDK.  While we prefer to have the SDK packages fully verified, we
should allow this behavior on the buildserver to ensure that builds work
even when the buildserver can't be updated.  Since each build starts from a
clean snapshot, this auto-installed build-tools will only be used for the
single build, so it won't affect other apps.

7 years agobuildserver: support new ConstraintLayout license bullshit
Hans-Christoph Steiner [Mon, 13 Mar 2017 15:31:27 +0000 (16:31 +0100)]
buildserver: support new ConstraintLayout license bullshit

The new ConstraintLayout library in Android Support has some new custom way
of handling the license.  I suspect that they are going to use this new way
with all of the bits that gradle downloads.  We also have to support it for
apps that use it, including soon fdroidclient.

fdroiddata!2094
ci-images!1

7 years agoMerge branch 'popen-nonutf8' into 'master'
Ciaran Gultnieks [Mon, 13 Mar 2017 07:40:31 +0000 (07:40 +0000)]
Merge branch 'popen-nonutf8' into 'master'

common: don't assume build script output is utf-8

See merge request !224

7 years agocommon: don't assume build script output is utf-8
Daniel Martí [Sun, 12 Mar 2017 19:36:44 +0000 (19:36 +0000)]
common: don't assume build script output is utf-8

FDroidPopen is used for running many commands - from git to gradle to
custom commands via flags like build=. When any of these invoke calls to
custom build systems or upstream programs/scripts, it's not safe to
assume that the output will be utf8.

Unfortunately, this currently leads to crashes and failed builds:

ERROR: Could not build app org.kiwix.kiwixmobile due to unknown error: Traceback (most recent call last):
  File "/home/vagrant/fdroidserver/fdroidserver/build.py", line 1155, in main
    options.onserver, options.refresh):
  File "/home/vagrant/fdroidserver/fdroidserver/build.py", line 951, in trybuild
    build_local(app, build, vcs, build_dir, output_dir, srclib_dir, extlib_dir, tmp_dir, force, onserver, refresh)
  File "/home/vagrant/fdroidserver/fdroidserver/build.py", line 648, in build_local
    p = FDroidPopen(['bash', '-x', '-c', cmd], cwd=root_dir)
  File "/home/vagrant/fdroidserver/fdroidserver/common.py", line 1786, in FDroidPopen
    result.output = result.output.decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb7 in position 5397290: invalid start byte

One way to fix this would be to use one of the python libraries that
guess an encoding. But a much safer option is to tell the decode method
to ignore non-utf8 bytes, as opposed to crashing on them.

7 years agoMerge branch 'include-ota-zip-in-index-xml' into 'master'
Hans-Christoph Steiner [Fri, 10 Mar 2017 23:06:22 +0000 (23:06 +0000)]
Merge branch 'include-ota-zip-in-index-xml' into 'master'

fix OTA ZIP inclusion in index.xml

See merge request !223

7 years agofix source tarball filename for media files
Hans-Christoph Steiner [Fri, 10 Mar 2017 18:05:01 +0000 (19:05 +0100)]
fix source tarball filename for media files

bug from 07ce9488097c1361c1cc1a515773fb73199550bf

7 years agoinclude non-APKs that match metadata and fdroid-generated filenames
Hans-Christoph Steiner [Fri, 10 Mar 2017 17:28:22 +0000 (18:28 +0100)]
include non-APKs that match metadata and fdroid-generated filenames

Since it is now possible to build and include arbitrary files, like OTA
update ZIP files, the update procedure needs to look for non-APK files that
match the packageName_versionCode pattern of fdroid-generated files.

!193
admin#14
privileged-extension#9

7 years agoupdate: do not include fdroid-generated tarballs as "media" files
Hans-Christoph Steiner [Fri, 10 Mar 2017 16:40:19 +0000 (17:40 +0100)]
update: do not include fdroid-generated tarballs as "media" files

`fdroid build` will generate source tarballs, and now with support for
adding any file to a repo, we need to explicitly ignore the fdroid-
generated source tarballs.  If people want to include source tarballs in a
repo, they still can, as long as that source tarball doesn't use the
`fdroid build` tarball naming scheme.

7 years agoMerge branch 'gradle341' into 'master'
Hans-Christoph Steiner [Fri, 10 Mar 2017 15:23:41 +0000 (15:23 +0000)]
Merge branch 'gradle341' into 'master'

makebs: add gradle 3.4.1

See merge request !222

7 years agomakebs: add gradle 3.4.1
Boris Kraut [Fri, 10 Mar 2017 13:29:36 +0000 (14:29 +0100)]
makebs: add gradle 3.4.1

7 years agoMerge branch 'pre-indexv1-fixes' into 'master'
Hans-Christoph Steiner [Tue, 7 Mar 2017 10:39:41 +0000 (10:39 +0000)]
Merge branch 'pre-indexv1-fixes' into 'master'

pre index-v1 fixes

See merge request !220

7 years agouses-permission maxSdkVersion as int, and enforces int string in XML
Hans-Christoph Steiner [Tue, 29 Nov 2016 20:04:27 +0000 (21:04 +0100)]
uses-permission maxSdkVersion as int, and enforces int string in XML

This forces <uses-permission maxSdkVersion=""> to be an integer in the
internal dict, and forces it to have no decimal point in XML.  Having it as
an integer in the internal dict means data will pass directly through to
the fdroidclient Apk instance, where it is ultimately an integer.

7 years agonon-APK files will not have minSdkVersion, so don't force it
Hans-Christoph Steiner [Thu, 8 Dec 2016 18:30:38 +0000 (19:30 +0100)]
non-APK files will not have minSdkVersion, so don't force it

fdroidclient should handle no minSdkVersion fine, since it just parses the
text in <sdkver></sdkver> as an int, and uses a default value if there is
an Exception.

7 years agoupdate: do not include PGP signatures as "media" files
Hans-Christoph Steiner [Wed, 1 Mar 2017 20:25:42 +0000 (21:25 +0100)]
update: do not include PGP signatures as "media" files

A .asc or .sig file is a detached PGPG signature, `fdroid gpgsign`
generates them.  It makes no sense for them to be ever treated as a file
for distribution.

This also adds to forgotten forms of index files.

7 years agoupdate bash completion commenting to match standards
Hans-Christoph Steiner [Tue, 28 Feb 2017 13:46:37 +0000 (14:46 +0100)]
update bash completion commenting to match standards

7 years agoMerge branch 'master' into 'master'
Hans-Christoph Steiner [Mon, 6 Mar 2017 09:13:15 +0000 (09:13 +0000)]
Merge branch 'master' into 'master'

upload release apk to virustotal

Closes #17

See merge request !218

7 years agoupload release apk to virustotal
thez3ro [Fri, 3 Mar 2017 12:44:55 +0000 (13:44 +0100)]
upload release apk to virustotal

7 years agoMerge branch 'master' into 'master'
Hans-Christoph Steiner [Wed, 1 Mar 2017 22:36:53 +0000 (22:36 +0000)]
Merge branch 'master' into 'master'

upload release apk to AndroidObservatory

Closes #142

See merge request !217

7 years agoMerge branch 'master' into 'master'
Hans-Christoph Steiner [Wed, 1 Mar 2017 22:36:26 +0000 (22:36 +0000)]
Merge branch 'master' into 'master'

upload release apk to AndroidObservatory

Closes #142

See merge request !217

7 years agoupload release apk to AndroidObservatory
thez3ro [Wed, 1 Mar 2017 21:34:55 +0000 (22:34 +0100)]
upload release apk to AndroidObservatory

7 years agoMerge branch 'skip-scan' into 'master'
Hans-Christoph Steiner [Wed, 1 Mar 2017 17:35:02 +0000 (17:35 +0000)]
Merge branch 'skip-scan' into 'master'

Pass on --skip-scan flag to build server VM when running fdroid build --server.

Closes #130

See merge request !216

7 years agoPass on --skip-scan flag to build server VM when running fdroid build --server.
Michael Pöhn [Wed, 1 Mar 2017 16:27:17 +0000 (17:27 +0100)]
Pass on --skip-scan flag to build server VM when running fdroid build --server.

7 years agoMerge branch 'metadata-fixes-and-tests' into 'master'
Hans-Christoph Steiner [Tue, 28 Feb 2017 13:28:55 +0000 (13:28 +0000)]
Merge branch 'metadata-fixes-and-tests' into 'master'

metadata fixes and tests

Closes #261

See merge request !215

7 years agometadata: port .fdroid.yml handling to App dict subclass
Hans-Christoph Steiner [Tue, 28 Feb 2017 09:37:09 +0000 (10:37 +0100)]
metadata: port .fdroid.yml handling to App dict subclass

This got overlooked in b7fc7f2228986d0210e221c9ec8ddcc2ad9b93bc, then
caught in the ./makebuildserver tests, where it builds Checkey.

7 years agofix bug including media files
Hans-Christoph Steiner [Thu, 8 Dec 2016 18:11:36 +0000 (19:11 +0100)]
fix bug including media files

'name' is not the full path, so it'll always fail common.is_repo_file()'s
os.path.isfile() check.

Introduced in 56d51fcd6be992c7bbc38431db06817816c1e08e

7 years agoimprove rewritemeta error msg about formats
Hans-Christoph Steiner [Wed, 7 Dec 2016 19:20:59 +0000 (20:20 +0100)]
improve rewritemeta error msg about formats

7 years agomatch versionCode/versionName when set as gradle variable
Hans-Christoph Steiner [Mon, 27 Feb 2017 13:00:42 +0000 (14:00 +0100)]
match versionCode/versionName when set as gradle variable

For example, see org.kontalk:

allprojects {
    ext {
        appVersionCode = 221
        appVersionName = '4.0.1-preview'
    }
}

7 years agodo not crash if no versionCode is found while parsing
Hans-Christoph Steiner [Mon, 27 Feb 2017 12:38:59 +0000 (13:38 +0100)]
do not crash if no versionCode is found while parsing

if vercode is None and max_vercode is None, then it gave None as an arg to
the regexp pattern in ignoresearch().

closes #261

7 years agofix metadata dump test to run on CI servers
Hans-Christoph Steiner [Tue, 28 Feb 2017 10:32:51 +0000 (11:32 +0100)]
fix metadata dump test to run on CI servers

7 years agorename lastupdated to lastUpdated to match fdroid client
Hans-Christoph Steiner [Mon, 28 Nov 2016 20:17:22 +0000 (21:17 +0100)]
rename lastupdated to lastUpdated to match fdroid client

This lets index-v1 be parsed directly into class instances because the
field/instance var names match exactly.  The original index v0 element
must retain the 'lastupdated' name for backwards compatibility.

7 years agoMerge branch 'gradle34' into 'master'
Hans-Christoph Steiner [Mon, 27 Feb 2017 09:10:11 +0000 (09:10 +0000)]
Merge branch 'gradle34' into 'master'

makebs: add gradle 3.4

See merge request !214

7 years agomakebs: add gradle 3.4
Boris Kraut [Sun, 26 Feb 2017 02:23:49 +0000 (03:23 +0100)]
makebs: add gradle 3.4

7 years agoMerge branch 'remove-manual' into 'master'
Hans-Christoph Steiner [Fri, 24 Feb 2017 14:18:43 +0000 (15:18 +0100)]
Merge branch 'remove-manual' into 'master'

remove TeX manual, it moved to https://gitlab.com/fdroid/fdroid-website

See merge request !209

7 years agojenkins-build-makebuildserver: add rudimentary rewritemeta test
Hans-Christoph Steiner [Fri, 24 Feb 2017 13:01:09 +0000 (14:01 +0100)]
jenkins-build-makebuildserver: add rudimentary rewritemeta test

This will show if rewritemeta changed anything.  fdroiddata requires all
files to be rewritten with rewritemeta before they are accepted.

7 years agoremove TeX manual, it moved to https://gitlab.com/fdroid/fdroid-website
Hans-Christoph Steiner [Mon, 13 Feb 2017 21:36:28 +0000 (22:36 +0100)]
remove TeX manual, it moved to https://gitlab.com/fdroid/fdroid-website

The whole TeX manual has been folded into the new Jekyll-based website, so
this is no longer needed at all.

7 years agorewritemeta: fix silly bug of using == for =
Hans-Christoph Steiner [Fri, 24 Feb 2017 12:36:41 +0000 (13:36 +0100)]
rewritemeta: fix silly bug of using == for =

This was introduced in c0bc3afda9d67a826471df2f387ab1b489df04e0

7 years agoMerge branch 'make-Build-App-act-like-dicts' into 'master'
Torsten Grote [Fri, 24 Feb 2017 11:11:11 +0000 (11:11 +0000)]
Merge branch 'make-Build-App-act-like-dicts' into 'master'

make Build and App classes act like dicts

See merge request !210

7 years agoprovide warning if config items will not preserve order
Hans-Christoph Steiner [Fri, 24 Feb 2017 09:28:00 +0000 (10:28 +0100)]
provide warning if config items will not preserve order

If a group of items are enclosed in {}, then that will be a Python set,
which does not preserve order.  To preserve order, the data must be either
a tuple () or list [].

7 years agobuild: ensure test is running on git commit that this code works with
Hans-Christoph Steiner [Thu, 23 Feb 2017 21:32:08 +0000 (22:32 +0100)]
build: ensure test is running on git commit that this code works with

Since https://gitlab.com/fdroid/ci-test-app is a separate git repo, things
with incompatible changes could get out of sync.  Therefore, this test
should specify which git commit is runs against.

For example, the .fdroid.yml file is still a moving target.  Just now, the
keys had the spaces removed as part of this MR.

7 years agonormalize Build TYPE_STRING data based on .txt
Hans-Christoph Steiner [Thu, 23 Feb 2017 21:25:33 +0000 (22:25 +0100)]
normalize Build TYPE_STRING data based on .txt

Unfortunately, things like versionCode must be strings.  That should be
converted to be ints throughout.

7 years agonormalize Build TYPE_LIST data based on .txt
Hans-Christoph Steiner [Thu, 23 Feb 2017 17:54:33 +0000 (18:54 +0100)]
normalize Build TYPE_LIST data based on .txt

In the future, we should have better internal datatypes for this stuff,
i.e. instead of gradle: ['yes'] for True, actually use a boolean.  For now,
make the YAML and JSON metadata produce the same internal data as .txt.

7 years agoadd script for mass testing metadata parsing after changes
Hans-Christoph Steiner [Thu, 23 Feb 2017 17:33:39 +0000 (18:33 +0100)]
add script for mass testing metadata parsing after changes

This requires manually running it.  I suppose it would be possible to
include a snapshot of the dumped internal representation for each release,
then make the tests run automatically against that.  Right now, the dump is
17megs of YAML.  Seems large to include in this git repo.

7 years agorename Build fields: version -> versionName, vercode -> versionCode
Hans-Christoph Steiner [Wed, 23 Nov 2016 16:52:04 +0000 (17:52 +0100)]
rename Build fields: version -> versionName, vercode -> versionCode

Since the YAML/JSON/etc. field names are now exactly the same as the field
names used in the internal dict in the Build class, this is a global rename

This keeps with the standard names used in Android:
https://developer.android.com/guide/topics/manifest/manifest-element.html

7 years agoconvert metadata.Build to a subclass of dict
Hans-Christoph Steiner [Tue, 29 Nov 2016 12:26:32 +0000 (13:26 +0100)]
convert metadata.Build to a subclass of dict

Like with the App class in the commit before, this makes it a lot
easier to work with this data when converting between the internal
formats and external formats like YAML, JSON, MsgPack, protobuf, etc.

The one unfortunate thing here is Build.update. It becomes
dict.update(), which is a method not an attribute.
build.get('update') or build['update'] could be used, but that would
be oddly inconsistent. So instead the field is renamed to
'androidupdate', except for in the .txt v0 metadata files. This better
describes what field does anyway, since it runs `android update`.

Build.update is only referenced in two places right next to each other
for the ant builds, so this change still seems worthwhile.

7 years agoconvert App to subclass of dict to support parsing/dumping libs
Hans-Christoph Steiner [Wed, 23 Nov 2016 16:25:59 +0000 (17:25 +0100)]
convert App to subclass of dict to support parsing/dumping libs

Python is heavily based on its core data types, and dict is one of the more
important ones.  Even classes are basically a wrapper around a dict. This
converts metadata.App to be a subclass of dict so it can behave like a dict
when being dumped and loaded.  This makes its drastically easier to use
different data formats for build metadata and for sending data to the
client.  This approach will ultimately mean we no longer have to maintain
custom parsing and dumping code.

This also means then that the YAML/JSON field names will not have spaces in
them, and they will match exactly what it used as the dict keys once the
data is parsed, as well as matching exactly the instance attribute names:

* CurrentVersion: 1.2.6
* app['CurrentVersion'] == '1.2.6'
* app.CurrentVersion == '1.2.6'

Inspired by:
https://goodcode.io/articles/python-dict-object/

7 years agomake Build class act more like a dict
Hans-Christoph Steiner [Fri, 18 Nov 2016 08:56:37 +0000 (09:56 +0100)]
make Build class act more like a dict

This makes it a lot easier to work with Build instances with parsing and
dumping libraries, since they expect only core Python types (dict, list,
tuple, str, etc)

7 years agosort repo index data to make index.xml generation reproducible
Hans-Christoph Steiner [Tue, 29 Nov 2016 14:55:07 +0000 (15:55 +0100)]
sort repo index data to make index.xml generation reproducible

This makes it easy to test that the code is still generating the exact same
index.xml.  It also might help the ZIP compression work better in index.jar

7 years agotest for original "v0" index XML compatibility
Hans-Christoph Steiner [Thu, 23 Feb 2017 20:23:45 +0000 (21:23 +0100)]
test for original "v0" index XML compatibility

The original index.xml format needs to stay around for backwards
compatibility, but we shouldn't touch it anymore once the new format is in
place.  This is a test to make sure `fdroid update` can still generate the
correct XML.

install_list and uninstall_list should be tuples or lists in order to
ensure that the order is preserved.

These tests also check that the added and lastupdated dates are
working correct, based on the dates in tests/stats/known_apks.txt. I
could see no useful way to test the timestamp, it is just hardcoded
using a regexp search-and-replace.  Running these tests manually might
require deleting tmp/apkcache.

7 years agoMerge branch 'support-v44' into 'master'
Hans-Christoph Steiner [Thu, 23 Feb 2017 11:48:01 +0000 (11:48 +0000)]
Merge branch 'support-v44' into 'master'

makebs: update support repo to r44, closes fdroid/rfp#49

Closes rfp#49

See merge request !213

7 years agoMerge branch 'firebase' into 'master'
Hans-Christoph Steiner [Thu, 23 Feb 2017 11:46:56 +0000 (11:46 +0000)]
Merge branch 'firebase' into 'master'

scanner: add firebase to usual suspect list, closes #259

Closes #259

See merge request !212

7 years agomakebs: update support repo to r43, closes fdroid/rfp#49
Boris Kraut [Thu, 23 Feb 2017 00:27:10 +0000 (01:27 +0100)]
makebs: update support repo to r43, closes fdroid/rfp#49

7 years agoscanner: add firebase to usual suspect list, closes #259
Boris Kraut [Wed, 22 Feb 2017 23:40:55 +0000 (00:40 +0100)]
scanner: add firebase to usual suspect list, closes #259

7 years agoMerge branch 'name' into 'master'
Hans-Christoph Steiner [Tue, 21 Feb 2017 14:08:47 +0000 (14:08 +0000)]
Merge branch 'name' into 'master'

update: add name to skeleton, closes #258

See merge request !211

7 years agoupdate: add name to skeleton
Boris Kraut [Sun, 19 Feb 2017 15:25:49 +0000 (16:25 +0100)]
update: add name to skeleton

7 years agoMerge branch 'feature/git-mirroring' into 'master'
Hans-Christoph Steiner [Fri, 17 Feb 2017 15:26:15 +0000 (15:26 +0000)]
Merge branch 'feature/git-mirroring' into 'master'

Add git repo mirroring

Closes #235

See merge request !206

7 years agoadd git repo mirroring
thez3ro [Fri, 10 Feb 2017 17:38:25 +0000 (18:38 +0100)]
add git repo mirroring

7 years agoMerge branch 'ossjfrog' into 'master'
Hans-Christoph Steiner [Mon, 13 Feb 2017 21:06:18 +0000 (21:06 +0000)]
Merge branch 'ossjfrog' into 'master'

scanner: allow oss.jfrog.org/artifactory/oss-snapshot-local

See merge request !208

7 years agoMerge branch 'build-publish-staging-test' into 'master'
Hans-Christoph Steiner [Mon, 13 Feb 2017 19:42:21 +0000 (19:42 +0000)]
Merge branch 'build-publish-staging-test' into 'master'

build/publish staging test

See merge request !207

7 years agoscanner: allow oss.jfrog.org/artifactory/oss-snapshot-local
Boris Kraut [Mon, 13 Feb 2017 19:24:35 +0000 (20:24 +0100)]
scanner: allow oss.jfrog.org/artifactory/oss-snapshot-local

7 years agojenkins-build-makebuildserver: remove VLC as test, its too flaky
Hans-Christoph Steiner [Tue, 7 Feb 2017 10:05:18 +0000 (11:05 +0100)]
jenkins-build-makebuildserver: remove VLC as test, its too flaky

Revert "jenkins-build-makebuildserver: include VLC as a test build"

This reverts commit 6debb3ebbf0fdbfeb49f80891fd8ba38cea72cd7.

7 years agobuildserver: update to latest tools and m2repository
Hans-Christoph Steiner [Fri, 10 Feb 2017 14:53:52 +0000 (15:53 +0100)]
buildserver: update to latest tools and m2repository

7 years agojenkins-build-makebuildserver: handle git update of fdroiddata better
Hans-Christoph Steiner [Fri, 10 Feb 2017 11:45:04 +0000 (12:45 +0100)]
jenkins-build-makebuildserver: handle git update of fdroiddata better

This prevents attempts to merge when there was rebasing, which can fail.

7 years agobuild: include buildserverid in build log for wiki
Hans-Christoph Steiner [Thu, 9 Feb 2017 22:49:42 +0000 (23:49 +0100)]
build: include buildserverid in build log for wiki

7 years agolog Android SDK/NDK component versions on buildserver
Hans-Christoph Steiner [Thu, 9 Feb 2017 22:48:40 +0000 (23:48 +0100)]
log Android SDK/NDK component versions on buildserver

ad2b9b99c2a7084e1ef4df06d635c7b63bee89e3 put this in the wrong place, it
was running it on the buildserver host rather than in the buildserver VM
itself, where the builds actually run.

refs #148

7 years agobuild: fix fdroidserverid in build log post on wiki
Hans-Christoph Steiner [Thu, 9 Feb 2017 15:26:57 +0000 (16:26 +0100)]
build: fix fdroidserverid in build log post on wiki

The carriage return in the fdroidserverid file messes up the wiki format.
This was forgotten in 69d39bb30101e8fdca1d4369cd2fd3b0d8a6fbc1

7 years agojenkins-build-makebuildserver: test the whole build/publish workflow
Hans-Christoph Steiner [Thu, 9 Feb 2017 14:50:58 +0000 (15:50 +0100)]
jenkins-build-makebuildserver: test the whole build/publish workflow

For full deployments like f-droid.org, the building happens on a separate
machine from the signing.  This adds a basic test of that kind of setup.

7 years agoMerge branch 'supportlib' into 'master'
Hans-Christoph Steiner [Mon, 13 Feb 2017 19:05:44 +0000 (19:05 +0000)]
Merge branch 'supportlib' into 'master'

makebs: bump support repo to r43

See merge request !205