1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-11-14 19:10:11 +01:00
Commit Graph

290 Commits

Author SHA1 Message Date
Ciaran Gultnieks
bf153ec247 Revert "all: add NDK r12b and set it as default"
This reverts commit 82d09560c6.

It doesn't work - the setup scripts are expecting a ".bin" file (which
is apparently a 7z archive), but what's actually got is a ".zip".

Conflicts:
	buildserver/provision-android-ndk
2016-08-01 12:38:52 +01:00
Boris Kraut
998c016925 bs: add sqlite3 and asn1c 2016-07-23 19:14:28 +02:00
Daniel Martí
d375318550 all: remove 32-bit buildserver code
We dropped support for 32-bit, so remove all the now unused code and
references.
2016-07-13 16:47:58 +01:00
Daniel Martí
82d09560c6 all: add NDK r12b and set it as default 2016-07-13 16:45:05 +01:00
Hans-Christoph Steiner
d4c6fffb30 buildserver: buildserver/Vagrantfile is configed by .yaml file
Vagrantfile is now committed and not changed between configurations. It is
configed by translating the python config file's dict to a YAML file, which
Vagrantfile now loads and uses.  This makes it a lot easier for vagrant
users and python programmers to understand, and hopefully makes it easier
to maintain and test with.
2016-07-04 23:54:52 +02:00
Hans-Christoph Steiner
2e1ec71404 buildserver: send config to vagrant via YAML file
Python can easily output dicts as YAML, and a Vagrantfile is a ruby script,
which can easily read YAML.  Going this route means that Vagrantfile can
ultimately be committed to git, and the configuration will happen all via
Python dicts output as YAML.  That makes it drastically easier to follow
the code, and to make modifications.
2016-07-04 23:54:52 +02:00
Hans-Christoph Steiner
4e787cc750 buildserver: make provision scripts output name to log 2016-07-04 23:54:52 +02:00
Hans-Christoph Steiner
0171dd60fd buildserver: use pip instead of easy_install for caching
easy_install does not provide any download caching, while pip does. This
also moves the python module installing a shell script that takes python
packages as args.  That will allow for future uses like allowing app
metadata to include pip modules that they need.
2016-07-04 23:54:52 +02:00
Hans-Christoph Steiner
aafad6b909 buildserver: move apt setup to a shell script
This makes it so there is only a single `apt-get install` command run,
instead of one command per-package like with the chef script.  It also adds
`apt-get upgrade` to make sure that the base box is fully up-to-date.
2016-07-04 23:54:52 +02:00
Hans-Christoph Steiner
2374b12a77 buildserver: move trusty/paramiko hack to its own shell script
This is part of the effort to remove moving parts from the whole build
server setup.  Why wrap shell scripts in ruby and chef if we can just
directly run a shell script?
2016-07-04 23:54:52 +02:00
Hans-Christoph Steiner
1b8dec32ae buildserver: enable debug log for provision-android-sdk 2016-07-04 23:54:52 +02:00
Hans-Christoph Steiner
588e6e5534 buildserver: android --silent hides errors, so remove
--silent seem to prevent `android update sdk` from exiting with an error,
so its kind of useless.  I just wanted it to suppress the verbose logs.
2016-07-04 23:54:52 +02:00
Ciaran Gultnieks
1da89dc1f1 Various changes to get makebuildserver to work with a 64 bit base box
Note that the apt packages are split into two halves, because it takes
too long (on 64 bit!) to install them all. The sensible fix would be
to simply up the timeout on the package installation section, but this
is completely broken in chef.
2016-07-01 12:00:38 +00:00
Daniel Martí
be4953be02 Add Gradle 2.2 and 2.14 to the buildserver
2.2 can be specifically requested by an app, and in some extreme cases
those apps don't build with 2.2.1.
2016-06-24 17:06:17 +01:00
Daniel Martí
5de678e48b all: switch to jdk8 as default
Also, remove jdk7 as it will become unused. We added jdk8 for
retrolambda, and now that we will use jdk8 as the default, jdk7 is
unnecessary as retrolambda can work fine with just jdk8.

This removes it from the buildserver, and the new CI image also only has
jdk8 from jessie-backports.

Fixes #185.
2016-06-21 11:47:37 +01:00
Hans-Christoph Steiner
226237c5f7 buildserver: do not set NDK env vars, they are handled by fdroid build
`fdroid build` handles setting the NDK env vars since the NDK version can
change depending on the app being build.  Unlike ANDROID_HOME, there is no
single global NDK location.  The NDK installs are all versioned.
2016-06-21 10:29:56 +02:00
Hans-Christoph Steiner
ecab81d69d buildserver: suppress unzip file list when unpacking SDK/NDK
Just too much pointless info in the log.
2016-06-21 10:29:56 +02:00
Hans-Christoph Steiner
6ea2508127 buildserver: unpack gradle versions with provisioning shell script
This was not using anything special from chef, so do it in a shell script
instead.  This makes the script easier for the python/shell people, and
probably uses less memory, since chef is a memory hog.  This might even
make the provision go faster since it uploads the whole script as a file to
the VM, then runs it there.  I think chef sends each command via SSH.
2016-06-15 16:35:00 +02:00
Hans-Christoph Steiner
02a835ff95 buildserver: unpack NDK with a provisioning shell script
This makes the process closer to ./jenkins-build scripts and .gitlab-ci.yml
files.  Hopefully it uses less RAM than chef too.
2016-06-15 16:35:00 +02:00
Hans-Christoph Steiner
e47396b403 buildserver: use android update sdk to install Android SDK
`android update sdk --no-ui` is the standard command line tool for
installing the Android SDK.  By symlinking into the $ANDROID_HOME/temp dir,
the cached files can still be used.  This converts the chef recipe to a
vagrant shell provisioning script since it was all bash anyway.

Some file names no longer officially have a -linux in them, so those were
changed to keep the cache working with the default filename.
2016-06-15 15:26:35 +02:00
Hans-Christoph Steiner
e449d2f583 buildserver: setup env vars using standard script
bash provides a standard file location for a script to be run when the
shell starts: /etc/profile.d/  This converts the scattered bits of code for
making ~/.bsenv into a single provisioning script to generate
/etc/profile.d/bsenv.sh, which gets automatically executed when bash starts
2016-06-15 15:26:35 +02:00
Hans-Christoph Steiner
721b3b79a6 buildserver: extract NDK rather than executing it
Then the NDK archive doesn't need execute permissions.
2016-06-15 15:26:35 +02:00
Hans-Christoph Steiner
51e8776a88 REBASE buildserver: handle loops in bash, not ruby, to save memory 2016-06-14 23:21:53 +02:00
Hans-Christoph Steiner
a4615b1def buildserver: handle loops in bash, not ruby, to save memory
Apparently, ruby is quite a memory hog when it forks.  I've been getting
errors like this with ./makebuildserver:

Errno::ENOMEM - script[add_btools_17] (android-sdk::default line 72) had an
  error: Errno::ENOMEM: Cannot allocate memory - fork(2)

So instead of looping in ruby and forking for each loop, handle the looping
in the bash script, so ruby is just calling a single bash script.
2016-06-14 16:34:13 +02:00
Hans-Christoph Steiner
714b3b9ff6 makebuildserver: use original names for downloaded SDK components
It will make it a lot easier to manage the cache if we use the original
file names, which often include the file version.  This also changes the
download process to be resumable if there is a partial file in the cache,
and switches from calling wget on the command line to using the python libs
'requests' and 'clint' to provide a similar experience.  While its not so
important for this particular bit of code to use those libraries, I think
those two will allow us to provide a better user experience throughout the
whole of fdroidserver.

In this case, it is already doing special tricks fetching the file size
from the server before trying to download it.  I suppose this code could
instead check if the file exists, and if so, check the hash sum.  I think
that would be slower for most people since checking the hash on large files
takes a noticeable about of time, while a HTTP HEAD request is pretty tiny.
2016-06-14 14:21:59 +02:00
Daniel Martí
fa9aa5d10f Do not install extra-android-support in the VM
It's m2repository that is actually used by maven-based builds. This one
is pretty much useless.
2016-05-27 14:08:57 +01:00
Daniel Martí
d5d22dbc99 Update android sdk version
Install version 25 now. Also use the smaller tools zip. While at it,
also remove the tools re-install - it's not worth it, as long as we keep
the initial tools zip up to date.
2016-05-27 14:08:57 +01:00
Daniel Martí
1edd9cde3c Add gradle 2.13 2016-05-27 14:08:57 +01:00
Boris Kraut
3a45f6ebe0 Add libtool to deps list 2016-05-17 23:04:20 +02:00
Daniel Martí
8dea6b896c gradle: forgot to actually install 2.12 2016-04-14 16:19:35 +01:00
Daniel Martí
ec9087d057 Add and switch to build-tools 23.0.3
Also bump to the CI image which contains it.
2016-04-05 10:49:30 +01:00
Daniel Martí
a345e351ba Add Gradle 2.12 to the buildserver 2016-04-05 10:49:15 +01:00
Hans-Christoph Steiner
90f547eb5d update buildserver debian packages for py3 2016-03-15 20:04:50 +01:00
Daniel Martí
3fbe4cc8f2 config.buildserver.py: use new java_paths keys 2016-02-23 12:26:00 +00:00
Daniel Martí
da0a787879 Add gradle 2.11 2016-02-15 12:02:45 +00:00
Daniel Martí
9520839984 gradle wrapper script: add plugin 1.5 2016-02-15 12:02:45 +00:00
Hans-Christoph Steiner
7f451a815b 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
2016-02-11 20:27:30 +01:00
Neil Roberts
c9404c8e39 Add libexpat1-dev and libglib2.0-dev to the default recipe
These are needed to build the PrevoDB srcdep of
uk.co.busydoingnothing.prevo.
2016-02-10 14:59:13 +00:00
Hans-Christoph Steiner
980339d2f5 make all apt repos in build server use the configured debian mirror 2016-01-26 11:31:40 +01:00
Daniel Martí
bd29fce13b Add Gradle 2.10 to the BS 2016-01-05 09:15:54 +01:00
Daniel Martí
20ced3f303 Small gradle wrapper fix
It broke on cases like:

	if (gradle.gradleVersion >= "2.2") {
2015-12-24 23:08:31 +01:00
Daniel Martí
2c12485aeb gradle script: properly iterate over known versions 2015-12-02 19:17:08 +01:00
Daniel Martí
326e299e15 Fix ndk always being reinstalled 2015-11-20 17:35:34 -08:00
Daniel Martí
73c680dfcf Add gradle 2.9 to the BS 2015-11-20 14:08:54 -08:00
Daniel Martí
882cfe3912 Install build-tools from the cache too 2015-11-20 14:08:54 -08:00
Daniel Martí
7842b08f40 Download platforms via makebuildserver 2015-11-20 12:21:31 -08:00
Daniel Martí
953a1e4396 Add qt5 to the buildserver 2015-11-20 05:52:17 -08:00
Daniel Martí
cac9b8a009 fdroidbuild-general: split packages in lines
This improves readability, but more importantly makes changes in git a
lot easier to track.
2015-11-20 05:51:33 -08:00
Daniel Martí
87c7da03ee Fix buildserver debian stable java paths 2015-11-07 18:23:30 +01:00
Ciaran Gultnieks
f3497553e7 Root required to set default java 2015-11-07 10:40:51 +00:00
Ciaran Gultnieks
b9bd3cafe8 Fix 'set default java' 2015-11-07 09:27:12 +00:00
Daniel Martí
66e82cb077 Bump build-tools to 23.0.2 2015-11-05 11:56:13 +01:00
Ciaran Gultnieks
d9d11ba11b If we're using a jessie buildserver, we need backports (for java 8) 2015-11-05 10:51:54 +00:00
Daniel Martí
a4d1fa22f7 Install Java 1.8 alongside 1.7 for retrolambda
Fixes #103.
2015-11-03 11:08:34 +01:00
Daniel Martí
231339ba80 Add gradle 2.8 2015-10-24 19:05:21 +02:00
Daniel Martí
82624cd7ca Bump sdk to 24.4.1 2015-10-24 19:02:39 +02:00
Daniel Martí
a229afe178 buildserver: Add gradle 2.7 2015-10-05 23:40:19 +02:00
Ciaran Gultnieks
131487f214 Add python-yaml to buildserver 2015-09-08 09:54:21 +00:00
Daniel Martí
41443edd55 Bump build-tools 2015-09-05 23:02:03 -04:00
Boris Kraut
28fd99f7ac Add liblzma-dev to buildserver 2015-08-30 12:50:30 +02:00
Ciaran Gultnieks
c46f0a58cc Merge branch 'per-app-repos' into 'master'
config option to enable per-app repos for nightly builds

For Guardian Project, we've been running an fdroid repo for the nightly builds for each of our apps: https://dev.guardianproject.info/debug  This is built using a big, hacked up shell script: [update-debug-fdroid-repo](https://github.com/guardianproject/fdroid-repo-tools/blob/master/update-debug-fdroid-repo).  It has proven very useful to us to be able to subscribe to the nightly build for a single app, so this the first step of porting that horrid shell script to `fdroidserver`.

This also helps make the fdroidserver tool suite the single set of tools for all types of builds and releases. That will hopefully drive more free software developers to make f-droid.org the core channel for official releases.

See merge request !66
2015-08-27 18:04:13 +00:00
Hans-Christoph Steiner
0f03de80fa standardize on HTTPS for github.com links
fdroid link already checks HTTPS in build metadata, so this should also use
HTTPS.  It makes firewall rules easier when everything is HTTPS.
2015-08-27 00:28:47 +02:00
Hans-Christoph Steiner
f47677ef36 makebuildserver: allow setting apt mirror from command line
On some setups, using a custom apt mirror is essential, so this adds a
command line flag to override the default one:
http://ftp.uk.debian.org/debian/

For example, someone who runs a local mirror for offline and low bandwidth
situations.

This uses a % rather than a .format() to avoid escaping { and }, which have
meaning when using .format().
2015-08-26 14:46:54 +02:00
Daniel Martí
bc70f78ef9 Remove default config settings from the BS 2015-08-20 09:48:12 -07:00
Daniel Martí
d59ecb3d18 Add gradle 2.6 to the buildserver 2015-08-18 13:40:21 -07:00
Daniel Martí
d2ccea8246 Update buildserver for android-23 2015-08-18 13:39:00 -07:00
Daniel Martí
3b43e27cb8 Add gradle 2.5, fixes #108 2015-08-13 11:28:01 -07:00
Daniel Martí
24f6cc604b Always end config list items with a comma 2015-08-13 11:02:09 -07:00
Daniel Martí
9fa5fe15f1 Add automake1.11 for gpg 2015-08-03 21:49:32 -07:00
Daniel Martí
00ace20d9b Add gradle plugin version 1.3 to our wrapper 2015-08-03 11:34:20 -07:00
Ciaran Gultnieks
d866ab4cef Fix imagemagick (broken in d9bbb507) 2015-06-25 22:53:11 +02:00
Daniel Martí
e55d1450d1 Update the Android SDK to 24.3.3 2015-06-19 21:17:43 +02:00
Daniel Martí
52c2ca1fe7 Replace NDK r10d with r10e 2015-06-18 17:05:48 +02:00
Daniel Martí
5985bb4a0b Add gradle 2.4 2015-06-18 16:57:00 +02:00
Daniel Martí
e608975f78 Bump build-tools to 22.0.1 2015-06-18 16:56:56 +02:00
Boris Kraut
d9bbb507d1 Add graphviz to buildserver 2015-06-05 15:41:21 +02:00
Boris Kraut
b853609ee1 Add pandoc to buildserver 2015-05-23 17:48:05 +02:00
Daniel Martí
3e04a44941 Add plugin version 1.2 to our gradle wrapper 2015-04-29 22:15:57 +02:00
Daniel Martí
577211dae7 Sort debian packages to be installed 2015-04-28 17:39:26 +02:00
Daniel Martí
8de6b79c60 Add scons, make-like tool used by godot 2015-04-28 17:36:15 +02:00
Daniel Martí
ed5c2fd33d Add gradle 2.3 to the buildserver
Fixes apps that explicitly require 2.3 via gradleVersion
2015-04-09 16:02:35 +02:00
Daniel Martí
45925c6816 Forgot to bump build_tools in the configs 2015-03-24 21:36:42 +01:00
Daniel Martí
66487272cd Update build tools to 22.0.0 2015-03-21 23:42:31 +01:00
Daniel Martí
92fdcd3e6a Update sdk to 24.1.2 2015-03-21 23:41:08 +01:00
Daniel Martí
4c0ee6ddce Add android-22 target 2015-03-21 23:28:09 +01:00
Daniel Martí
4feedb7c6b Gradle plugin version 1.1 still uses gradle 2.2 2015-03-15 16:25:41 +01:00
Matías Zúñiga
3d791e4c9e Add dependencies needed by "LibreOffice Viewer Beta" 2015-02-03 23:45:26 +00:00
Boris Kraut
abdc97142b Add compare-locales via easy_install for Firefox 2015-01-25 19:33:02 +01:00
Boris Kraut
ffd5263b58 Add build-deps for Firefox 2015-01-25 19:32:14 +01:00
Daniel Martí
388665ff43 Remove trailing whitespace 2015-01-04 20:52:27 +01:00
Rancor
80957c625f Fixes #52 : Fix permission for executing android-ndk bin 2015-01-04 20:41:43 +01:00
Daniel Martí
f31ca7c852 Create the ndk_loc dir first (fixes #52) 2015-01-04 04:19:19 +01:00
Daniel Martí
f60f1bc59e Add NDK r10d, this time alongside r9b
Specified per-build with ndk=<version> defaulting to the oldest, r9b.
2015-01-03 00:07:01 +01:00
Daniel Martí
d9c6609925 Fix gradleVersions without = 2014-12-31 13:30:53 +01:00
Daniel Martí
6e2bc85518 Add nasm to the buildserver box (fixes: #51) 2014-12-30 23:42:26 +01:00
Daniel Martí
16601a0be3 Bump build-tools again to 21.1.2 2014-12-12 12:57:12 +01:00
Daniel Martí
aaf36f654d Update build-tools to 21.1.1 2014-12-12 12:40:09 +01:00
Daniel Martí
e10b2dd382 Update sdk to 24.0.1 2014-12-12 12:39:04 +01:00
Daniel Martí
05a7a872b6 Add gradle 2.2.1 for plugin versions 1.0.X 2014-12-12 12:29:16 +01:00
Ciaran Gultnieks
3aaa5c9603 Add inkscape to buildserver 2014-12-04 11:38:02 +00:00