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

43 Commits

Author SHA1 Message Date
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
4b0a6ed29f makebuildserver: allow a list/tuple for baseboxurl to support local copy
config.vm.box_url can be a list/tuple of URLs, which is useful to specific
a locally cached copy.  This is needed on slow connections, so that if it
fails, the download of jessie32.box does not have to start from the
beginning of the file again.
2015-08-26 14:46:53 +02:00
Hans-Christoph Steiner
b5cbb4382f new config option: per-app repos to support nightly build repos
For devs that want to build and distribute nightly builds of their apps
using the fdroid tools.  The core idea here is to 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
an core channel for official releases.
2015-08-25 16:55:52 +02:00
Daniel Martí
24f6cc604b Always end config list items with a comma 2015-08-13 11:02:09 -07:00
Hans-Christoph Steiner
316d71d46c show commented out examples for setting sdk_path and ndk_paths
Instead of just mirroring the defaults in the example config.py, show a
useful example of how they might be set.
2015-08-01 00:38:40 +02:00
Ciaran Gultnieks
fba632cf07 Update recommended base box 2015-07-21 22:12:52 +02:00
Daniel Martí
00668b254c Replace some FDroid strings with F-Droid 2015-06-21 13:51:23 +02:00
Daniel Martí
52c2ca1fe7 Replace NDK r10d with r10e 2015-06-18 17:05:48 +02:00
Daniel Martí
e608975f78 Bump build-tools to 22.0.1 2015-06-18 16:56:56 +02:00
Ciaran Gultnieks
7a3baa01ed Allow gpg home directory to be overridden 2015-06-02 09:17:08 +01:00
Daniel Martí
45925c6816 Forgot to bump build_tools in the configs 2015-03-24 21:36:42 +01:00
Ciaran Gultnieks
b71433e66b Allow buildserver CPU count to be configured 2015-02-01 09:00:04 +00:00
Ciaran Gultnieks
4ae896511e Allow repo pubkey to defined directly in config 2015-01-11 08:20:14 +00: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
Ciaran Gultnieks
0360e96d4d Merge branch 'doc-update-v1' into 'master'
Update documentation re: testing32 image

Use different subsections for the Debian base box setup (which can be bypassed using the prebuilt image) and the F-Droid / SDK setup (which cannot be bypassed).

Side note: would it be possible to offer a torrent for testing32.box?  The direct download is taking over 2 hours on a 50Mbps link.

See merge request !32
2014-12-30 22:48:58 +00:00
Kevin Cernekee
8d04b93852 Update comment referring to old "raring32.box" image 2014-12-21 11:03:06 -08:00
Hans-Christoph Steiner
5f5bcd2e11 do not set sdk_path in config.py if using system-provided aapt
By not setting sdk_path when /usr/bin/aapt is found, sdk_path then defaults
to $ANDROID_HOME when its used.  Since in this case, aapt will be used from
the system path, using aapt entirely ignores sdk_path.  If the user runs
`fdroid build` in this setup, sdk_path will be $ANDROID_HOME, so it should
check the env vars for it, but maybe that doesn't actually work like that
yet.
2014-12-14 13:26:50 +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
Hans-Christoph Steiner
e826938734 static URLs to "Current Version" of each app
I wrote up the feature to automatically generate symlinks with a constant name
that points to the current release version. I have it on by default, with a
*config.py* option to turn it off. There is also an option to set where the
symlink name comes from which defaults to app['Name'] i.e. F-Droid.apk, but
can easily be set to app['id'], i.e. _org.fdroid.fdroid.apk_. I think the best
place for the symlinks is in the root of the repo, so like
https://f-droid.org/F-Droid.apk or https://guardianproject.info/fdroid/ChatSecure.apk

For the case of the current FDroid static link https://f-droid.org/FDroid.apk
it can just be a symlink to the generated one (https://f-droid.org/F-Droid.apk
or https://f-droid.org/org.fdroid.fdroid.apk). Right now, this feature is all
or nothing, meaning it generates symlinks for all apps in the repo, or none. I
can’t think of any problems that this might cause since its only symlinks, so
the amount of disk space is tiny. Also, I think it would be useful for having
an easy “Download this app” button on each app’s page on the “Browse” view. As
long as this button is less prominent than the “Download F-Droid” button, and
it is clear that it is better to use the FDroid app than doing direct
downloads. For the f-droid.org repo, the symlinks should probably be based on
app['id'] to prevent name conflicts.

more info here:
https://f-droid.org/forums/topic/static-urls-to-current-version-of-each-app/
2014-11-11 15:06:52 +01:00
Daniel Martí
311ec604f8 Also bump build-tools in the example config 2014-10-23 15:22:40 +02:00
Ciaran Gultnieks
b454ea3c6f Make stats retrieval more configurable 2014-09-02 18:53:36 +01:00
Ciaran Gultnieks
b43f7bea1a Add ability to filter asshattery from stats 2014-08-22 21:18:55 +01:00
Hans-Christoph Steiner
8c8fb8b156 support lists/tuples in 'serverwebroot' config item
This allows the user to specify multiple servers to put the repo to, and
`fdroid server update` will automatically push to them all.

fixes #22 https://gitlab.com/fdroid/fdroidserver/issues/22
2014-07-14 15:04:30 -04:00
Hans-Christoph Steiner
f34c842f55 auto-clean newlines and spaces in repo/archive descriptions
This gives us flexibility in how the blocks of text can be formatted in
config.py, but also provides a more useful format for displaying since the
client can decide where to wrap the text.
2014-07-14 15:01:57 -04:00
Daniel Martí
b0fef49328 Fix the default config.py descriptions following the tuple syntax 2014-07-01 18:22:05 +02:00
Daniel Martí
cbdcdd1e78 Update build-tools to 20.0.0 2014-06-30 17:03:16 +02:00
Daniel Martí
a831d484e6 Place more examples/config.py stuff into the defaults 2014-06-28 19:57:14 +02:00
Hans-Christoph Steiner
25f6b0c246 server: --sync-from-local-copy-dir for updating from offline signing repo
To support a fully offline build/signing machine, there is the "local copy
dir".  The repo is generated on the offline machine and then copied to a
local dir where a thumb drive or SD Card is mounted.  Then on the online
machine, using `fdroid server update --sync-from-local-copy-dir` allows
the whole server update process to happen in a single command:

0. read config.py on online machine's repo
1. rsync from the local_copy_dir to the current dir
2. copy to serverwebroot, awsbucket, etc.
2014-06-26 20:47:36 -04:00
Hans-Christoph Steiner
d73b43c5fc server: 'local_copy_dir' config/options to automate offline repo signing
This allows a dir to be specified in config.py that `fdroid server update`
will automatically rsync the repo to.  The idea is that the path would
point to an SD card on a fully offline machine that serves as the secure
repo signing machine.
2014-06-26 20:47:36 -04:00
Hans-Christoph Steiner
e68413a752 server: specify an identity file for SSH when rsyncing
This allows the SSH key used to sync with the server to be specified via
the config.py or the command line.  I need it for running automated tests
and setups.
2014-06-05 16:21:12 -04:00
Hans-Christoph Steiner
479e194976 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
2014-06-04 22:01:25 -04:00
Daniel Martí
fd417425ae Fix E265 in config.py 2014-05-28 09:30:55 +02:00
Hans-Christoph Steiner
f1812d5935 fix PEP8 "E203 whitespace before ':' or ','" 2014-05-06 11:45:02 -04:00
Ciaran Gultnieks
a0dbddc6da Add config entry for optional gpg key 2014-04-28 21:32:32 +01:00
Hans-Christoph Steiner
f0def08add support cloud storage with libcloud, starting with Amazon AWS S3
apache-libcloud enables uploading to basically any cloud storage service.
This is the first implementation that allows `fdroid server` to push a repo
up to a AWS S3 'bucket'.  Supporting other cloud storage services should
mostly be a matter of finding the libcloud "Provider" and setting the
access creditials.

fixes #3137 https://dev.guardianproject.info/issues/3137
2014-04-22 23:13:37 -04:00
Hans-Christoph Steiner
6b65257516 make fdroid server check whether serverwebroot is set
Having serverwebroot optional in `fdroid server` means that it can support
multiple methods of hosting, like cloud storage services.  `fdroid server`
can also then support multiple repo hosting options at the same time.
2014-04-22 22:59:27 -04:00
Hans-Christoph Steiner
3829d37d34 support repo signing with a key on a smartcard
This assumes that the smartcard is already setup with a signing key.  init
does not generate a key on the smartcard, and skips genkey() if things are
configured to use a smartcard.

This also does not touch APK signing because that is a much more elaborate
question, since each app is signed by its own key.
2014-04-07 16:00:18 -04:00
Hans-Christoph Steiner
2bd62239f7 'smartcardoptions' config item for setting up HSMs with fdroid
These options are needed to configure Java's keytool and jarsigner to use
a Hardware Security Module aka HSM aka smartcard.  The defaults provided
are meant to make things work as easily as possible.
2014-04-07 16:00:18 -04:00
Hans-Christoph Steiner
0950cdac09 make repo_keyalias like a config option: leave it commented out
Before, the code relies on repo_keyalias being None, which does not feel
conffile-like.  Now, its commented out if its not set.
2014-04-07 16:00:18 -04:00
Hans-Christoph Steiner
8ef6546f81 move fdroid-icon.png to examples/ 2014-04-01 18:04:36 -04:00
Hans-Christoph Steiner
7bb490221a set the default keystore to the same as the default in fdroid init
This should keep things simple and consistent.
2014-03-31 21:42:46 -04:00
Hans-Christoph Steiner
a31f4571c2 fix example files install in setup.py
This also makes the file layout in git basically the same as the installed
file layout, using an examples/ dir.  I'm not sure if config.buildserver.py
is an example conf file, or a conf file that is actually in use, so I did
not move it.
2014-03-31 21:29:51 -04:00