* Takes about 3-5 minutes
**Also:**
* Split up `Lint` and `Build & Test`
* Into independent workflows
* Changed `.tar` compression to `GZip`
* `--zstd` not available in `CentOS 7`
* Also excluded `.git` & `.gitignore`
* Created `Provisioning` local action
* Combining update & install steps, etc.
* Added libraries to `Ubuntu` build dependencies
* `libmemcached-dev` & `librados-dev`
* In order to test for successful compilation
* ~~Reduced `build-archive` retention to 1 day~~
* Updated `ax_pthread` macro
* While trying to resolve `apxs` failure
* http://www.gnu.org/software/autoconf-archive/ax_pthread.html
Both are read only backends, i.e. they can't be used in renderd, but only in mod_tile
ro_http_proxy is a proxy storage backend that retrieves tiles from a remote http tile server
ro_composite is a storage backend that composits two tiles before passing them up.
Although ro_composite can composite tiles from any two storage backends, conceptually it only
works well, if at least one set of tiles are static non updating tiles, as the updating logic
does not allow for requesting rendering updates for both tilesets
- automatically find apxs in addition to apxs2. This should make it easier to configure on more systems
- include freetype2.m4. Otherwise ./autogen.sh already fails with missing macro.
- fail if no C++ compiler was found
So far, (meta)tiles could only be stored and retrieved from a locally mounted posix filesystem. Although, the posix
filesystem API is it self a plugable storage layer into which one can mount many different filsystems, from temporary
filesystems to network filesystems, as mod_tile installations scale up to multi-server environments this might not be sufficient and one
may want to use other storage layers.
This patch therefore abstracts all storage calls out into a separate API that can be implemented by various storage backends to fit the needs of different
installations.
Three storage backends are included in this commit:
- file backend: This is the equivalent of what existed before in mod_tile / renderd. This uses a posix filesystem to store (meta)tiles
- memcached: This stores tiles in a memcached store
- rados: This stores tiles in a rados / ceph cluster
The memcached and rados backends should currently still be considered as experimental
There are also other refactoring and cleanups in this commit