Commit Graph

49 Commits

Author SHA1 Message Date
e89046b5ee Also use renderd_config for mod_tile (#440)
Follow-up to #391 & #400
2024-06-19 09:20:50 -07:00
0cc76cb72f Cleaning up tests (#424) 2024-03-27 17:58:11 -07:00
2ce51df526 Test error output in catch tests (#419) 2024-03-23 21:58:30 -07:00
7389b160bf Add renderd_config.c usage into render_* targets (#400)
* Add support for reading `renderd.conf` to `render_expired`
* Add support for reading `renderd.conf` to `render_list`
* Add support for reading `renderd.conf` to `render_old`
* Add support for reading `renderd.conf` to `render_speedtest`
* Move renderd/render_* execution tests to own files
* Reduce variable scope & minor clean up
* Use `stat` rather than `access` to check if file exists
2024-03-04 12:03:16 -07:00
1c9f8b6fb5 Move renderd.conf processing code into new file (#391)
So that it can be easily re-used by other targets.
2024-02-18 11:07:19 -07:00
19facb07eb Add Arch Linux build documentation and Dockerfile (#389)
_Also_:
* Added more tests
* Moved test code & test-related code into `/tests`
* Run Docker build tests in parallel
2024-02-06 16:14:11 -07:00
ff06794c00 Added missing signal handlers (#364)
`renderd` coverage is otherwise not properly reported

_Also:_
- Removed `freebsd12` from CI
  - Packages are no longer provided (http://pkg.freebsd.org/)
- Added test for `HTCP host name` specification
- Renamed files in `src`/`includes` to match target names
  - `src/daemon.c` → `src/renderd.c`
  - `src/speedtest.cpp` →`src/render_speedtest.cpp`
  - `includes/daemon.h` → `includes/renderd.h`
2024-01-03 19:34:39 -07:00
8e3e8fb34f Add man page for renderd.conf (#357)
* Update AUTHORS file
* Add renderd.conf man to CMakeLists.txt & Makefile.am
* Minor updates to other man pages as well
2023-12-12 13:44:23 -07:00
7dacc63195 Don't forget Makefile.am 2023-02-19 08:25:15 +00:00
c683c5569b Added compilation instructions for several distros 2021-08-03 19:16:48 +02:00
ffda917722 Convert -pthread to -Wc,-pthread when invoking apxs 2021-08-02 14:44:28 +02:00
27c470c3eb Improved configuration files 2021-07-29 22:57:26 +00:00
a14924a999 Logging Improvements
* Using [`GLib Logging Framework`](https://developer.gnome.org/programming-guidelines/stable/logging.html.en) for logging
  * Created new `g_logger` function for logging
    * Outputs to `stdout`/`stderr` only when running in `foreground`
      * `stderr` for `message`, `warning`, `critical` & `error` levels
      * `stdout` for `debug` & `info` levels
        * Use `G_MESSAGES_DEBUG=all` environment to enable `debug` to print
    * Otherwise, output will be to `syslog` or `systemd journal` (when appropriate)
* Standardized usage of `{LOG_PRIORITY}: ` prefix in log messages
  * Only when using `syslog`, otherwise `GLib Logging` will take care of it
* Changed `fprintf(stderr`, `printf` & `perror` calls to `g_logger` calls
  * You might want to check them out closely to make sure I chose the right levels
  * No changes to `logging/output` were made to "`foreground`" programs (I.E. `render_*`)
* Changed `0`,`1` to `no_argument`,`required_argument` in `getopt_long`'s `long_options`
  * Fixed `renderd`'s `foreground` opt (should be `no_argument` [0] rather than `reguired_argument` [1])
* Basic test for `mod_tile` module
* ~~Extended `renderd` log priority onto Mapnik's logger~~
2021-07-28 14:46:50 +00:00
a125f9c7f3 Formatted Makefile 2021-02-15 19:20:30 +01:00
8833bba9a2 Drop internal iniparser 2021-02-15 17:10:43 +01:00
9d0c6beb9e Fix manpage section for renderd.
Gbp-Pq: Name manpage-section-mismatch.patch
2020-09-02 14:47:14 +00:00
2b0184a23d Remove unnecessay autoconf for boost, icu, cairo and freetype2
mapnik-config now provides the relevant compile flags for us
2015-05-25 22:08:29 +01:00
a4972de2db fix cairo linking in storage backend 2014-08-13 12:08:36 -07:00
ca0e6f1611 simplify + fix setting of LDFLAGS/CXXFLAGS 2014-08-13 08:40:43 -07:00
6600d38a54 Extend autoconf and automake to use an installed libiniparser
This helps systems with newer (and therefore relying on libiniparser) samba versions installed.
2014-05-29 08:56:52 +02:00
5568a080af fix linking on 32 bit systems 2013-12-06 08:51:23 +01:00
99357a53ab Improve backwards and forward compatibility for renderd protocol v3/v2 2013-10-20 16:03:32 -06:00
c4aabc5701 Enable mapnik style parameterization
Provide a parameterization function for internationalizing the names
2013-10-13 23:26:31 -06:00
6f85a79375 Fix typo in install path of makefile 2013-08-09 20:29:26 -06:00
273973ed03 Clean up mod_tile directory by moving source files into a common src/ sub directory
also move includes into includes/
2013-08-09 18:46:10 -06:00
a975db9074 Another attempt at including mapnik include directories from mapnik-config
use mapnik-config --includes rather than --cflags (as was attempted in 23be036).

This should fix #35
2013-08-09 18:44:06 -06:00
86d71d50b6 Don't install the unit test program into bin directory 2013-07-12 14:45:16 -06:00
299ac3bdd3 Refactor some functionality out of gen_tile.cpp
Move metatile handling and tile cache expiry out of gen_tile.cpp into
seperate files for reuse and cleaner structure.
2013-05-30 20:31:23 -06:00
798763820f Added missing null storage source file for APXS build. 2013-05-14 13:05:23 +01:00
c07adeebf8 Added simple 'null' storage, which might be useful for benchmarking or testing. 2013-05-13 19:35:01 +01:00
707e125e35 Refactor queueing code out of daemon.c into a separate file
Also make a slightly cleaner extraction.

This hopefully has a couple of advantages:

1) The code should now be a bit cleaner
2) It makes testing the queueing code easier
3) In future it might be possible to have a separate queue per style
   allowing e.g. to perform fair queueing between styles.
2013-04-14 03:17:29 -06:00
adf6e2fc1a Cleanup .slo and some other autogenerated files in make clean 2013-04-11 23:25:20 -06:00
cf68607407 Merge pull request #11 from springmeyer/test-framework
add test framework that can be run with 'make test' - refs #10

This still needs some more cleanup to get it working, but as it doesn't effect anything existing, I'll do that post merge.
2013-04-11 21:11:22 -07:00
2238a5f1a1 Fix compile where cairo is installed in a non standard location
Also work around a bug in cairomm flags in Mapnik 2.0 (#787) that has been fixed upstream
a long time ago, but is still present in the ubuntu mapnik packages.
2013-04-10 17:37:41 -06:00
b635598ad0 add test framework that can be run with 'make test' - refs #10 2013-04-10 12:45:49 -07:00
243d713888 Add two more storage backends ro_http_proxy and ro_composite
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
2013-03-31 08:14:36 +00:00
55258f9078 Move man pages out of the debian directory and into the docs directory
These are mostly stub man pages for now
2013-03-30 17:41:11 +00:00
e8001c859f Add support for pluggable storage backends to mod_tile / renderd
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
2013-03-23 22:19:30 +00:00
23be0365a9 Revert previous commit as it broke builds under some conditions.
The following errors appeared on Ubuntu builds:

cc1: warning: command line option '-ftemplate-depth=300' is valid for C++/ObjC++ but not for C [enabled by default]
In file included from store.h:9:0,
                 from store.c:21:
render_config.h:6:1: error: expected identifier or '(' before '/' token
render_config.h:15:1: error: stray '#' in program
...

As I don't know why this broke, or how to fix it, I am reverting this patch for now. It also only triggeres after a make distclean
2013-03-02 15:37:30 +00:00
80cd238d06 no need to check for mapnik dependencies, just check for mapnik 2013-02-26 17:53:32 +00:00
7d6ae36d30 [mod_tile] Fix build to include sys_utils.c 2012-10-26 04:37:29 +00:00
966e337620 [mod_tile] fixup previous commit 2012-09-15 23:55:07 +00:00
d27101ee6f [mod_tile] Add some configure compatibility fixes for solaris 2012-09-15 18:35:50 +00:00
3acfc86c6b [renderd] Some operating systems don't have the "daemon" function
Include a compatibility version of the daemon function for these cases
2012-09-02 02:27:01 +00:00
bdf4219bd3 [renderd] Improve debian packaging files 2012-01-26 18:46:51 +00:00
48e8aefd61 [mod_tile] make libicu configurable if it is installed in a non-standard place 2012-01-22 19:07:04 +00:00
a408752555 [mod_tile] improve autoconf settings to be more portable
Libraries under Solaris weren't correctly found beforehand
2012-01-22 18:00:15 +00:00
5b096812de [mod_tile] Fixup debian build scripts for the autoconf/automake build system 2012-01-15 19:25:12 +00:00
070df38706 use autoconf / automake to find libraries and make it more portable 2012-01-15 07:23:52 +00:00