685 Commits

Author SHA1 Message Date
f0811e8f29 Astyle/flawfinder updates (#487)
* Apply astyle updates from newer version of astyle
* Update `github/codeql-action/upload-sarif`
2025-06-01 08:20:43 -07:00
e8ac8f15d3 v0.8.1 v0.8.1 2025-05-04 11:48:43 -07:00
ba27f1b9a9 Add Origin header test for CORS not being set (#480)
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.
2025-04-15 09:27:58 -07:00
d571b58707 Add Fedora 42 to CI (#485)
* And remove `Fedora 40`
* Also clean up `Dockerfile`s
2025-04-15 08:51:17 -07:00
4fafe1d755 Fix Install Package CI Pipeline for Mapnik >= 4 (#484) 2025-04-14 21:46:52 -07:00
1c0018ea1f Support Ubuntu devel using libiniparser 4 in Docker CI (#483) 2025-04-14 21:23:54 -07:00
c98d946f40 Use a different FreeBSD box for CI pipeline (#482) 2025-04-14 15:39:34 -07:00
ab7e9bd025 CI pipeline test fixes (#481)
- Fix failing `Mapnik Latest` tests:
  - `Debian 12`'s [boost](https://github.com/mapnik/mapnik/blob/master/CHANGELOG.md#mapnik-405) is too old for `Mapnik` >= `v4.0.5`
- Fix failing `macOS` coverage
  - `format` & `category` errors have been popping up recently
2025-04-14 11:22:09 -07:00
aae5f2f6b4 use proper initialization NULL for CORS variable, not an empty string (#479)
The empty string as initialization for CORS breaks the tile access in case Origin header is sent. Properly initialize it with the correct value NULL. Error was introduced 10 months ago it seems.
2025-04-14 06:46:28 -07:00
13adc2e79d Fix typo in mod_tile.c (#474) v0.8.0 2025-01-11 21:22:52 -07:00
4eed25522a CI/Docs updates (#470)
* Deprecate macOS 12 and add macOS 15
* Deprecate Fedora 39 and add Fedora 41
* Upgrade CodeCov actions to v4
* Fix FreeBSD 14 CI builds
2024-11-11 09:38:57 -07:00
5aadf31ccc Also account for tileVeryOld state in add_expiry and tile_handler_status (#465) 2024-09-02 13:30:18 -07:00
f645ed0a1e Upgrade Action freebsd-vagrant-action from v1.4 to v2 (#463) 2024-08-03 11:53:08 -07:00
f6177028f4 Use anonymous shared memory segments for mod_tile.so (#459)
Rather than named shared memory segments (see [here](https://apr.apache.org/docs/apr/trunk/group__apr__shm.html#gac370c4943c22505ce2b0d57c51805480)).

Fixes tests on `macOS` unable to run in parallel, which was likely an indicator of a greater issue with `macOS` builds
2024-07-17 13:07:05 -07:00
03f335f498 Enable SO_REUSE{ADDR,PORT} for TCP/IP server sockets (#460)
Otherwise `renderd` processes configured to use TCP/IP server sockets may need to wait until the address and/or port are released before restarting under certain circumstances (especially an ungraceful termination).
2024-07-11 12:08:01 -07:00
aa53e609d0 Improved --verbose messaging for render_expired (#461) 2024-07-10 17:38:52 -07:00
3a633e619a Dockerfile cleaning (#458)
* Add `Dockerfile` linting with `hadolint`
* Fix minor `Dockerfile` issues found by `hadolint`
2024-07-10 11:07:43 -07:00
41b882ed9c Fedora rawhide requires mapnik-static (now that it provides Mapnik v4.0.0) (#457)
It contains libraries now referenced by `pkg-config` and `mod_tile` uses only `pkg-config` for `Mapnik >= v4.0.0`.
2024-07-09 21:59:21 -07:00
9742572c85 Move xyzo_to_meta into proper header file (#456) 2024-07-02 16:34:12 -07:00
3120d0b761 Fix memory leak during configuration parsing (#455)
The memory allocated by `strndup` needs to be freed.

The code has also been changed to not lose the allocation pointer and according to the semantics of `strtok_r` explained here:
https://man.freebsd.org/cgi/man.cgi?query=strtok_r

Also improved messaging.

Co-authored-by: Roland Bosa <roland.bosa@gmail.com>
2024-06-29 13:47:17 -07:00
0478a1b761 Allow linking alternate memory management implementations (#454)
With new `CMake CACHE` entry `MALLOC_LIB`, supporting the following values:
* `libc` (default): Use the system's implementation
* `jemalloc`: Use [jemalloc](http://jemalloc.net)
* `mimalloc`: Use [mimalloc](https://github.com/microsoft/mimalloc)
* `tcmalloc`: Use [tcmalloc](https://github.com/google/tcmalloc)

Co-authored-by: Roland Bosa <roland.bosa@gmail.com>
2024-06-28 18:08:49 -07:00
c4e3e6230c Clarify optional libraries and allow optionally disabling them (#453)
`libcurl` & `libcairo` are also optional and their usage can now be optionally disabled (along with `libmemcached` & `librados`.)

* No longer test macOS Autotools building
2024-06-28 13:51:12 -07:00
52e7a10762 Use Mapnik v4.0.0 for Dockerfiles and GitHub Actions (#452) 2024-06-26 16:37:31 -07:00
3612c5f207 Allow overriding Munin script URLs with an environment variable (#420)
* Also allow overriding `RENDERD_STATS` (defaults to `/run/renderd/renderd.stats`)
* Also allow overriding `REPLICATION_STATE` (defaults to `/home/osm/replicate/state.txt`)
2024-06-25 18:27:05 -07:00
344215aa16 Debian Unstable and Ubuntu Devel now default to Mapnik v4.0.0 (#450)
* Fix `Dockerfile`s & `docker-compose.yml` to support this.
* Mark debian:unstable & ubuntu:devel experimental
2024-06-20 18:13:21 -07:00
1309fdc382 Bumped version to 0.8.0 (#448)
In preparation for future release.
v0.8.0-beta
2024-06-19 18:42:39 -07:00
e89046b5ee Also use renderd_config for mod_tile (#440)
Follow-up to #391 & #400
2024-06-19 09:20:50 -07:00
9873dde1e8 Update CentOS Stream build documentation (#444)
After removal of CentOS Stream 8 / CentOS 7 documentation removal.
2024-06-13 15:46:47 -07:00
bc33cf99da Minor fixes (#442)
* `.github/actions/coverage/action.yml`
  * Ignore `unused` errors when excluding coverage directories
* `docs/build/building_on_ubuntu.md`
  * Fix typo
* `src/parameterize_style.cpp`
  * Use `auto` rather than `std::optional<std::string>`/`boost::optional<std::string>`
2024-06-13 11:02:36 -07:00
1f81434203 Move MAPNIK_MAJOR_VERSION checks around (#439) 2024-06-04 20:04:09 -07:00
ba0d2af705 Increase XMLCONFIGS_MAX default from 10 to 100 (#434) 2024-06-04 19:42:31 -07:00
039a30eb62 Remove CentOS Stream 8 & CentOS 7 for CI and documentation (#438)
* Updates are no longer available for CentOS Stream 8 since the end of May 2024
* Updates will cease being available for CentOS 7 at the end of June 2024
2024-06-04 16:10:38 -07:00
1ad41653c7 Remove libm link to mod_tile.so (#435) 2024-06-04 13:39:28 -07:00
b9c048a6ac Support for Mapnik >= 4 no longer using boost:optional (#436) 2024-06-04 13:24:04 -07:00
cbd63598ae Add missing unistd.h inclusion (#437) 2024-06-04 13:01:37 -07:00
c3453bc1e1 Add Ubuntu 24.04 to build pipeline (#431)
_And_:
* Do not report coverage with macOS 12
2024-04-26 10:02:52 -07:00
e1611fc4ce Add Fedora 40 to build pipeline (#430)
_And_:
* Remove Fedora 38
* Fix `openSUSE Leap 15` Docker build's default GCC no longer compiles `Mapnik` latest
  * C++17 is now required, so a newer GCC will be installed
* Fix for coverage capturing with LCOV 2.1
  * Seems to currently only exist on macOS
2024-04-26 09:25:16 -07:00
a23fcf11ed Mapnik v4.0.0 will require C++17 (#429)
a85bc95135
2024-04-21 13:37:57 -07:00
9834df0e38 Fix typo in utils/munin/mod_tile_latency (#428) 2024-04-10 22:19:35 -07:00
78f9b6657f Also process and report coverage from AutoTools-based builds (#425) 2024-04-04 20:22:30 -07:00
0cc76cb72f Cleaning up tests (#424) 2024-03-27 17:58:11 -07:00
7f91d53ec3 Prevent duplicate renderd sections (#421)
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.
2024-03-24 21:25:57 -07:00
aebb506485 Prevent socketnames in renderd.conf exceeding maximum allowed length (#422)
The maximum allowed length of a socket file name is 108:
https://www4.cs.fau.de/Services/Doc/C/libc.html#SEC189

Exceeding this length will likely lead to difficult to troubleshoot behavior.
2024-03-24 20:55:27 -07:00
2ce51df526 Test error output in catch tests (#419) 2024-03-23 21:58:30 -07:00
743cf651b1 Follow up to #190 for render_list (#417)
* 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
2024-03-21 13:22:02 -07:00
3621428efd Enable rendering between geo-coords instead of tile-numbers (#190)
Instead of giving tile-numbers to render in a specific zoomlevel i wanted to give a gectangle defined by geo-coords and render all zoomlevels at once
2024-03-21 11:53:31 -07:00
2a4532f002 Improve render_expired/render_list test coverage (#415) 2024-03-19 09:15:41 -07:00
3ad89950fc OpenSUSE doesn't seem to report coverage (#414)
Disabling it for now
2024-03-16 19:52:36 -07:00
b7118780dc Added continue-on-error for experimental distros (#413)
So that workflows will still show as passing when issues arise.

* Build & Test
  * debian:unstable
  * fedora:rawhide
  * ubuntu:devel
* Docker Image Build
  * debian-unstable/debian-unstable-autotools
  * fedora-rawhide
  * opensuse-tumbleweed
  * ubuntu-devel/ubuntu-devel-autotools
2024-03-16 16:55:23 -07:00
13a198d06d Updated Docs/Dockerfiles/GitHub actions after switching CMake to relative install paths (#412) 2024-03-16 14:57:19 -07:00