Also moved `cors = NULL` fix from #479 into `_add_tile_config` instead as that fix only applied to configs added via `AddTileConfig` in `httpd.conf` files, not all methods.
`libcurl` & `libcairo` are also optional and their usage can now be optionally disabled (along with `libmemcached` & `librados`.)
* No longer test macOS Autotools building
In order to remove any confusion if the user has duplicate `renderd` sections in their `renderd.conf` file.
Currently with a configuration like this one:
```ini
[renderd]
pid_file=/run/renderd/renderd.pid
socketname=/run/renderd/renderd.sock
stats_file=/run/renderd/renderd.stats
tile_dir=/var/cache/renderd/tiles
[renderd0]
pid_file=/run/renderd/renderd0.pid
socketname=/run/renderd/renderd0.sock
stats_file=/run/renderd/renderd0.stats
tile_dir=/var/cache/renderd/tiles
```
only the second `renderd` section (`renderd0`) will actually be used.
After this patch is merged, an error message will be shown and the application will exit.
* Fixed `render_list` build needs `libm`
* Added tests
* Updated man page
* Created function to set double
* Cleaned up / optimized a bit
* Removed `--dont-render` option
* Previously it was not actually sending the header
* Now runs in serial, regardless of parallel specification
* Now runs only once, rather than for each map layer
_Also_:
* Removed no-longer used `storage_mutex`
* Was only used for Apache HTTP Server < v2.4
* 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
* Add tests for `ModTileCacheExtendedHostName` and expired tileOld/TileVeryOld
* Add tests for `ModTileEnableTileThrottling`/`ModTileEnableTileThrottlingXForward`
* Improve service startup "tests"
* Address intermittent download test failure
* Caused by load exceeding threshold
* Add more missing bad HTTPD config tests
* Allow for newer `libpng` with Docker tests
* Also test more image/file types
And setting it to `0`, no longer requiring defining it everywhere except in foreground executables as needed.
_Also_:
* Require `GLib` >= `v2.50`
* Needed for [g_log_writer_standard_streams](https://docs.gtk.org/glib/func.log_writer_standard_streams.html)
* Set FreeBSD job `BUILD_PARALLEL_LEVEL` & `TEST_PARALLEL_LEVEL` environment variables via `run`
* Rather than hard-coding them
* Run tests in parallel in some `GitHub Actions` Workflows
* Except for `macOS` & `Coverage` jobs
* Update `Node.js 16` actions to `Node.js 20` versions
* `actions/upload-artifact`
* `actions/cache`
* Add server `IP:Port` in `CTest` HTTPD logs
* Make `render_speedtest_*` CTest tests require tiles to be downloaded
* Add & use tile download functions for CTest
* Including `check` & `remove` "tests"
* To remove much of the redundant code
* Split up HTTPD0/HTTPD1 downloads in CTest
* Remove Amazon Linux 2/CentOS 7 from CI workflow
* Comment out fedora:rawhide, it's not currently working
* Re-enable CentOS Stream tests
* To facilitate running `memcached` tests for all jobs
* `CentOS`/`Debian`/`Fedora` jobs don't seem to like running `memcached` on `localhost`
* `FreeBSD` jobs don't seem to like running `memcached` on `0.0.0.0`
_Also_:
- Changed `AddTileConfig` parsing directive
- From `AP_INIT_RAW_ARGS` to `AP_INIT_TAKE_ARGV`
- Makes code a bit cleaner, e.g.:
- Checking for first two "arguments"
- Iterating "arguments"
- Applied Artistic Style Formatting
- After merging #346
- Added deprecation notice when using `AddTileMimeConfig`
- Enabled commented `AddTileConfig`/`AddTileMimeConfig` tests
_Also_:
- Removed `AddTileMimeConfig` from example `HTTPD` config
- No longer needed after merging #346
- Deprecation notice incoming with #370
- Added additional `AddTileConfig`/`AddTileMimeConfig` tests
- Testing failing download with invalid map name in `httpd.conf`
- Testing parsing invalid `httpd.conf`, e.g.:
- `LoadTileConfigFile` without arguments
- `LoadTileConfigFile` without non-existent file
- Replaced `grep` with `${GREP_EXECUTABLE}` in tests
So that MemcacheD hosts and ports other than `localhost` and `11211` can be used.
_Also_:
- Added `ctest --parallel` execution support
- Added tests for custom `MemcacheD` {host}:{port}
- Added tests for `AddTileConfig`/`AddTileMimeConfig`
`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`
The value for `DEFAULT_ATTRIBUTION` in `includes/mod_tile.h` needed to be escaped, it was causing a JSON parsing failure.
* Added basic test for `/.../.../tile-layer.json` to ensure parsing is successful
* Added basic tests for `/metrics` & `/mod_tile` URLs
* Allow the …/status URL to be turned on or off (default of on remains)
Add ModTileEnableStatusURL On/Off to allow the …/status to be turned on
(default) or off. Previous behaviour has …/status on, which is not
changed in this patch.
* Allow the …/dirty URL to be turned on or off (default of on remains)
Add ModTileEnableDirtyURL On/Off to allow the …/dirty to be turned on
(default) or off. Previous behaviour has …/dirty on, which is not
changed in this patch.
* Make …/dirty & …/status disabled by default.
This is a breaking change. To get the old default behaviour back, you
must now manually add `ModTileEnableStatusURL On` &
`ModTileEnableDirtyURL On` to your apache configuration.
* Change default for ModTileEnable Dirty/Status URL to On
* Add log output for when `/dirty`/`/status` is Off
* Add tests for "ModTileEnable{Dirty|Status}URL Off"
---------
Co-authored-by: Amanda McCann <amanda@technomancy.org>
For linting `CMakeLists.txt` & `*.cmake` files (`cmakelint`) as well as various other formats such as `HTML`, `MarkDown` & `YAML` (`prettier`.)
### Also:
* Upgrade `actions/checkout` from `v3` to `v4`
* Output coverage summary to GitHub Job step summary
* Minor build docs cleanup for `CentOS` & `FreeBSD`
* Added the possibility to provide ImageIO's output format in the TYPE string.
For instance:
TYPE=png image/png
TYPE=png image/png png256
TYPE=png image/png png24
TYPE=png image/png png
* Removed useless comments.
Added documentation for output format.
* Added tests for 'webp' output format
* Also added tests for 'png32' output format
* Fix 'webp' sums vary based on version
* Add JPG & use multiple layers on example-map
---------
Co-authored-by: Tim <autintim@gmail.com>
* Add coverage reporting
* No longer need to run `astyle` from within a container
* Multiple test runs seems to help catch more coverage
* Re-order renderd shutdown processes
* Move coverage job into a new workflow