From fdf1a24abb04be4f49ca100b8ad2e61236fad61a Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Tue, 18 Nov 2025 11:02:25 -0400 Subject: [PATCH 01/64] update live branch --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 642280c9bc2..a515cc164d8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,7 +22,7 @@ jobs: ./scripts/ci_build_docs.sh - name: After success steps - if: ${{ success() && github.event_name == 'push' && github.repository == 'MapServer/MapServer-documentation' && github.ref_name == 'branch-8-4' }} + if: ${{ success() && github.event_name == 'push' && github.repository == 'MapServer/MapServer-documentation' && github.ref_name == 'branch-8-6' }} run: | # setup the SSH key mkdir -p ~/.ssh From bcb094dcfb544fe75f1ed82f7cb3b85243d8da95 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Tue, 18 Nov 2025 16:28:10 -0400 Subject: [PATCH 02/64] update for 8.6.0-beta2 release (#1049) --- conf.py | 4 +- en/MIGRATION_GUIDE.txt | 96 +++++++++++++++- en/announcements/announcements_archive.txt | 14 +++ en/development/announce/8-6.txt | 87 +++++++++++++++ en/development/announce/index.txt | 1 + en/development/changelog/changelog-8-6.txt | 124 +++++++++++++++++++++ en/development/changelog/index.txt | 1 + en/development/rfc/ms-rfc-140.txt | 2 +- en/download.txt | 2 + en/download_archives.txt | 4 + en/images/index-page-ms4w.png | Bin 0 -> 82572 bytes en/include/announcements.inc | 77 ++----------- en/mapfile/class.txt | 2 +- en/mapfile/identify.txt | 4 +- en/mapfile/layer.txt | 2 +- en/mapfile/scalebar.txt | 4 + en/ogc/wms_server.txt | 2 +- en/optimization/environment_variables.txt | 2 +- 18 files changed, 349 insertions(+), 79 deletions(-) create mode 100644 en/development/announce/8-6.txt create mode 100644 en/development/changelog/changelog-8-6.txt create mode 100644 en/images/index-page-ms4w.png diff --git a/conf.py b/conf.py index e113d98500b..0bec8c07a70 100644 --- a/conf.py +++ b/conf.py @@ -92,9 +92,9 @@ def __getattr__(cls, name): # built documents. # # The short X.Y version. -version = '8.4' +version = '8.6' # The full version, including alpha/beta/rc tags. -release = '8.4.1' +release = '8.6.0-beta2' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None diff --git a/en/MIGRATION_GUIDE.txt b/en/MIGRATION_GUIDE.txt index 1e9636b9ef4..daefe46c2c3 100644 --- a/en/MIGRATION_GUIDE.txt +++ b/en/MIGRATION_GUIDE.txt @@ -6,12 +6,106 @@ MapServer Migration Guide ***************************************************************************** -:Last Updated: 2025-09-22 +:Last Updated: 2025-11-18 .. contents:: Table of Contents :depth: 2 :backlinks: top +.. _migration-8-6: + +MapServer 8.4 to 8.6 Migration +============================== + +- You can now enable an automatically generated index page, that lists + all of your OGC services and endpoints, for each mapfile that you + defined in your CONFIG file. To enable the index, add `MS_INDEX_TEMPLATE_DIRECTORY` + to your environment variables section of the :ref:`config` file, such as:: + + ENV + # + # Index page + # + MS_INDEX_TEMPLATE_DIRECTORY "/ms4w/share/ogcapi/templates/html-index-bootstrap/" + END + + .. image:: ./images/index-page-ms4w.png + :width: 800 + :height: 433 + :class: no-scaled-link + + .. seealso:: :ref:`index-page` & :ref:`rfc140` + +- A new :ref:`identify` object can be used in a mapfile to control how features are + found through queries, to account for the actual symbol being used for + that CLASS. This could be useful for WMS GetFeatureInfo requests. + + .. code-block:: mapfile + + MAP + ... + WEB + METADATA + "wms_title" "My WMS Server" + ... + END #metadata + END #web + ... + SYMBOL + NAME "mysvg" + TYPE svg + IMAGE "./ttt.svg" + END #symbol + ... + LAYER + IDENTIFY + CLASSGROUP "test" + END #identify + CLASS + GROUP "test" + STYLE + ANGLE 30 + SYMBOL "mysvg" + END #class + END #layer + ... + END #map + + .. seealso:: original Pull Request `#7318 `__ + +- :ref:`FALLBACK ` has been added to the CLASS object, to allow that class to be used + if no other class can be applied. + + .. code-block:: mapfile + + MAP + ... + LAYER + ... + CLASS + NAME "test1" + ... + END #class + CLASS + NAME "test2" + ... + END #class + CLASS + NAME "test3" + ... + FALLBACK TRUE + END #class + END #layer + ... + END #map + + .. seealso:: original Pull Request `#7309 `__ + +- :ref:`ogcapi` has been enhanced to allow `vendorSpecificParameters` passed through to the OpenAPI + document on the `/items` definitions. + + .. seealso:: original Pull Request `#7295 `__ + .. _migration-8-4: MapServer 8.2 to 8.4 Migration diff --git a/en/announcements/announcements_archive.txt b/en/announcements/announcements_archive.txt index c7e080a8f5e..14f3e9d0552 100644 --- a/en/announcements/announcements_archive.txt +++ b/en/announcements/announcements_archive.txt @@ -4,6 +4,20 @@ MapServer Announcement Archives ***************************************************************************** +**2025-11-18 - MapServer 8.6.0-beta2 is released** + +The second beta for MapServer 8.6 has been released. The list of +major changes for this release can be found in the :ref:`8.6 announcement `. +See the :ref:`changelog ` +for the full list of changes and head to :ref:`download` to obtain a copy. + +**2025-11-13 - MapServer 8.6.0-beta1 is released** + +The first beta for MapServer 8.8 has been released. The list of +major changes for this release can be found in the :ref:`8.6 announcement `. +See the :ref:`changelog ` +for the full list of changes and head to :ref:`download` to obtain a copy. + **2025-09-19 - MapServer 8.4.1 is released** The maintenance release of MapServer 8.4.1 has been issued in order to fix diff --git a/en/development/announce/8-6.txt b/en/development/announce/8-6.txt new file mode 100644 index 00000000000..9b2ea9fcc88 --- /dev/null +++ b/en/development/announce/8-6.txt @@ -0,0 +1,87 @@ +.. _announce-8-6: + +***************************************************************************** +Version 8.6.0-beta2 Announcement +***************************************************************************** + +:Authors: Project Steering Committee +:Last Updated: 2025-11-18 +:Status: Draft + +The MapServer Team is pleased to announce the second beta release of +MapServer 8.6.0-beta2 + +The upcoming 8.6 release brings a number of major new features that are briefly +summarized in this document. The full list of changes can be found in :ref:`changelog-8-6`. +The :ref:`Migration Guide ` also contains more detailed examples of +the major changes. + +Major New Features Coming in MapServer 8.6 +------------------------------------------ + +- new MapServer index page (`#7350 `__) + +- WMS GetFeatureInfo: add options to precisely identify points through their symbols (`#7318 `__) + +- add FALLBACK parameter for CLASS object, to be applied if none of the previously defined classes has been applied (`#7309 `__) + +- add vendorSpecificParameters to OpenAPI document (`#7295 `__) + +Other Related Updates +--------------------- + +- the demo server hosting many live OGC endpoints has been updated & + constantly maintained, as it is so important for the community: + https://demo.mapserver.org + +Migration Guide +--------------- + +Head to the :ref:`Migration Guide ` for mapfile examples of the major 8.4.0 changes. + +Source Code Download +-------------------- + +The source for this release can be downloaded at: + + https://mapserver.org/download.html + +Binary Distributions +-------------------- + +Binary distributions will be available in the coming days: + +- Debian binaries of 8.6.0-beta1 are already available: https://tracker.debian.org/pkg/mapserver +- `OSGeoLive `__ 17.0 release process is happening now, but + it will soon include MapServer 8.6.0-beta1 +- `UbuntuGIS `__ will follow the OSGeoLive + release and will then include MapServer 8.6.0-beta1 +- MS4W users have already been using branch-8-6 code, but watch for + a new release shortly containing the 8.6.0-beta1 changes at: https://ms4w.com + +.. TBD + - `RHEL and CentOS` TODO + - `OpenSUSE` TODO + +Other binary distributions listed on the download page should also be updated +with binaries for the new release shortly. + +Documentation +------------- + +The entire 8.4.0 documentation is also available as a `PDF document `__ |image| +(1143 pages, with clickable table of contents as well). + +.. |image| image:: ../../../_static/pdf.png + :height: 15 + :width: 15 + :alt: PDF icon + :target: https://download.osgeo.org/mapserver/docs/MapServer.pdf + +Thanks +------ + +Thank you to all of the users, developers, and supporters of MapServer. Enjoy! + +*The MapServer Team* + diff --git a/en/development/announce/index.txt b/en/development/announce/index.txt index 154b1277ea0..65f71000ebc 100644 --- a/en/development/announce/index.txt +++ b/en/development/announce/index.txt @@ -8,6 +8,7 @@ .. toctree:: :maxdepth: 2 + 8-6 8-4 8-2 8-0 diff --git a/en/development/changelog/changelog-8-6.txt b/en/development/changelog/changelog-8-6.txt new file mode 100644 index 00000000000..ea73cc18b31 --- /dev/null +++ b/en/development/changelog/changelog-8-6.txt @@ -0,0 +1,124 @@ +.. _changelog-8-6: + +************************** + MapServer 8.6 Changelog +************************** + +The summary of major changes for this release can be found in the `HISTORY.md `__ +file from the source directory. + +.. _changelog-8-6-0-beta2: + +Changes from 8.6.0-beta1 to 8.6.0-beta2 +======================================= + +* Add additional URL creation logic for Landing Page URLs ( `#7389 `__ ) (Seth G) : `c70b447 `__ + +.. _changelog-8-6-0-beta1: + +Changes from 8.4.1 to 8.6.0-beta1 +================================= + +* Fix: Memory leaks in config and landing page fixes ( `#7385 `__ ) (Seth G) : `2715c5d `__ +* Add config to msautotest folder checks ( `#7386 `__ ) (Seth G) : `099a0b1 `__ +* msautotest: fix config match errors ( `#7384 `__ ) (Jeff McKenna) : `bbc825d `__ +* Fix query maps with MS_NORMAL and MS_HILITE styles with WFS layers ( `#7364 `__ ) ( `#7365 `__ ) (Tamas Szekeres) : `3c37e22 `__ +* WFS: add next link if there might be features left ( `#7328 `__ ) (Patrik Sylve) : `9b7c8d0 `__ +* Provide additional names in FindProtobufC.cmake ( `#7130 `__ ) (Howard Butler) : `fc79134 `__ +* PostGIS: Escape geometry column name consistently ( `#7324 `__ ) (Jørgen Reimer Nystad) : `c78aafd `__ +* Default to use FindFreetype/FindIconv from cmake ( `#7376 `__ ) (Landry Breuil) : `151abf1 `__ +* add extra spece in construction of query ( `#7379 `__ ) (Michael D. Smith) : `b7ac51d `__ +* msautotest updates ( `#7380 `__ ) (Seth G) : `bbcdddf `__ +* Disable build isolation to not download setuptools dependency. ( `#7377 `__ ) (Bas Couwenberg) : `d27752e `__ +* Remove legacy bootstrap4 files ( `#7363 `__ ) (Seth G) : `2445768 `__ +* Do the fontconfig detection on all platforms, not only MacOSX ( `#7372 `__ ) (Landry Breuil) : `47b51df `__ +* WMS Client: Validate style in wms_style metadata ( `#7368 `__ ) (Patrik Sylve) : `1d379a7 `__ +* WMS Client: Do not modify layer extent `#7367 `__ ( `#7371 `__ ) (Patrik Sylve) : `386c136 `__ +* build(deps): bump actions/upload-artifact from 4 to 5 ( `#7369 `__ ) (dependabot[bot]) : `0f1a401 `__ +* Process empty path requests with mapfiles in querystrings ( `#7366 `__ ) (Seth G) : `e71de03 `__ +* Add ows_extra_params for OGC Features API ( `#7360 `__ ) (Seth G) : `265c9d9 `__ +* build(deps): bump github/codeql-action from 3 to 4 ( `#7361 `__ ) (dependabot[bot]) : `fee747f `__ +* OGC API/OpenAPI: add vendorSpecificParameters for items paths ( `#7295 `__ ) (Tom Kralidis) : `07acb6b `__ +* RFC 140 Impementation: Mapserver Homepage ( `#7350 `__ ) (Seth G) : `6b59663 `__ +* Merge pull request `#7343 `__ from geographika/raster-query-double (Seth G) : `29e4ae8 `__ +* Fix(parser): Prevent crash with non-existent layer in REQUIRES ( `#7334 `__ ) (Māris Nartišs) : `342b042 `__ +* Fix use-after-free error in msDrawRasterLayerLowOpenDataset ( `#7333 `__ ) (Māris Nartišs) : `3c18f7e `__ +* WMS GetFeatureInfo: add options to precisely identify points through their symbols (Even Rouault) : `b8f298d `__ +* msShapeGetNextClass(): use msScaleInBounds() (Even Rouault) : `d9ef84c `__ +* add bootstrap install to CMake build summary ( `#7351 `__ ) (Jeff McKenna) : `df31c72 `__ +* Use LF ( `#7352 `__ ) (Seth G) : `9753718 `__ +* update for 8.4.1 release (Jeff McKenna) : `fb4fa64 `__ +* update history (Jeff McKenna) : `e30e2a8 `__ +* Add Bootstrap 5 OGC API template files ( `#7338 `__ ) (Seth G) : `4777b7a `__ +* Add missing column name escaping in FLTGetCommonExpression() ( `#7348 `__ ) (Even Rouault) : `aaeedcd `__ +* Update Ubuntu CI setup.sh ( `#7347 `__ ) (Seth G) : `d327d58 `__ +* Make projection context ref counting thread safe again ( `#7079 `__ ) ( `#7345 `__ ) (Tamas Szekeres) : `27b2a1a `__ +* Remove legacy WMS versions ( `#7337 `__ ) (Seth G) : `d66c340 `__ +* Style: make fallback configurable in CLASS ( `#7309 `__ ) (Patrik Sylve) : `8db1ef9 `__ +* Support Float32 or Float64 labels (sethg) : `aab8852 `__ +* Add Float64 test (sethg) : `7348c87 `__ +* Add MS_IMAGEMODE_FLOAT64 type for raster labels (sethg) : `b520879 `__ +* Add test case (sethg) : `c219201 `__ +* build(deps): bump actions/setup-python from 5 to 6 ( `#7339 `__ ) (dependabot[bot]) : `b78b0dc `__ +* Update msautotest output to GDAL 3.11.3 ( `#7336 `__ ) (Seth G) : `caaefa0 `__ +* msautotest Python GDAL get version fix ( `#7329 `__ ) (Seth G) : `87d522c `__ +* Speed-up vagrant package installation ( `#7330 `__ ) (Seth G) : `11d4146 `__ +* Switch to SXF (sethg) : `1fddafc `__ +* Remove SDTS test (sethg) : `56625bb `__ +* Fixed non numerical expressions in a getFeature request ( `#7321 `__ ) (Daimanta) : `b1c36e5 `__ +* build(deps): bump actions/checkout from 4 to 5 ( `#7322 `__ ) (dependabot[bot]) : `f9618ea `__ +* msautotest: fix get_gdal_version() to support GDAL version nickname ( `#7317 `__ ) (Even Rouault) : `032d9d1 `__ +* Fix GDAL 3.12dev deprecation warnings about GDALGetDataTypeSize() (Even Rouault) : `851fb5a `__ +* Update msautotest/gdal/expected/rawmode_multiband.png for GDAL version update (Even Rouault) : `ce143b6 `__ +* maptree.c: fix warning with latest GCC (Even Rouault) : `12ba37f `__ +* Check for all possible use_default_extent_for_getfeature metadata keys ( `#7296 `__ ) (Seth G) : `b5d7503 `__ +* use master for CRLF check (Jeff McKenna) : `6eb2b60 `__ +* OGC API: fix issue `#7177 `__ (feature geometry of multipolygons is returned with errors) ( `#7305 `__ ) (Andrea Capobianco) : `7d24be7 `__ +* Update INSTALL.CMAKE ( `#7303 `__ ) (Robin Perkins) : `70fdae4 `__ +* Shapefile: Parse CPG values ( `#7282 `__ ) (Patrik Sylve) : `be528bc `__ +* Check wms_onlineresource for OpenLayers output ( `#7297 `__ ) (Seth G) : `0438f8c `__ +* add private vulnerability reporting steps ( `#7298 `__ ) (Jeff McKenna) : `013a437 `__ +* Only use wchar_t on windows ( `#7287 `__ ) (Seth G) : `e6eba84 `__ +* INSPIRE compliance: Fix service exception status code when the SERVICE parameter is invalid/missing ( `#7284 `__ ) (Thomas Schorr) : `d76b6c8 `__ +* Update OpenLayers version and support non-built-in projections ( `#7290 `__ ) (Seth G) : `9d0e102 `__ +* Fix regex and use PROJ_DATA ( `#7278 `__ ) (Seth G) : `1375812 `__ +* add release badge (Jeff McKenna) : `baf4cde `__ +* Increase memory for vagrant and remove legacy fix ( `#7286 `__ ) (Seth G) : `6ce093f `__ +* Allow FILTER expressions with SCALETOKENs ( `#7237 `__ ) (Seth G) : `d79fa7f `__ +* WMS_SERVER: Add sanity check for TRANSPARENT parameter value in GetMap ( `#7280 `__ ) (Thomas Schorr) : `a994636 `__ +* Fix vector tileindex infinite recursion (Patrik Sylve) : `6c6e74e `__ +* CI: Update to GDAL 3.10.3 ( `#7281 `__ ) (Seth G) : `028a2de `__ +* SHP/DBF: Attempt to read encoding from CPG file ( `#7274 `__ ) (Patrik Sylve) : `d54aae0 `__ +* Fix MSSQL driver crash with NULL fid ( `#7270 `__ ) ( `#7271 `__ ) (Tamas Szekeres) : `337f974 `__ +* update OGCAPI Common schemas url ( `#7267 `__ ) (Jeff McKenna) : `9b7a37c `__ +* CI: handle Flake8 unused variable violation code ( `#7264 `__ ) (Jeff McKenna) : `6fe8e2b `__ +* Bump C/C++ standard to 17 for ICU 76. ( `#7259 `__ ) (Bas Couwenberg) : `0638698 `__ +* Fix opacity for gradient legend symbol ( `#7255 `__ ) (Patrik Sylve) : `38fc59f `__ +* Add a TIMESTAMP FORMATOPTION for Zip OUTPUTFORMATS ( `#7251 `__ ) (Seth G) : `fd7ee52 `__ +* CI: upgrade PHPUnit to version 12 ( `#7254 `__ ) (Jeff McKenna) : `530f2bf `__ +* Make sure 130 tests make request for WMS version 1.3.0 ( `#7252 `__ ) (Alistair Everett) : `de25c45 `__ +* CI: Update msautotest outputs to use Docker outputs ( `#7250 `__ ) (Seth G) : `e095a18 `__ +* msautotest: Fix interpretation of test output comparison in mstestlib ( `#7249 `__ ) (Paul Pazderski) : `e04fbd4 `__ +* CI: Update all build scripts and msautotest outputs to Ubuntu 24.04 ( `#7242 `__ ) (Seth G) : `4121426 `__ +* Add test for shapezip STORAGE=memory ( `#7239 `__ ) (Seth G) : `c7efdce `__ +* Move PHP MapScript builds to Docker and simplify Python MapScript builds (sethg) : `64a706f `__ +* Update to ubuntugis-stable (sethg) : `0170749 `__ +* Update main build to ubuntu-latest (geographika) : `79e609b `__ +* Update Python MapScript to use Docker (sethg) : `79bcc37 `__ +* CI: Run coverity-scan using Docker ( `#7225 `__ ) (Seth G) : `3bb1c22 `__ +* Run cppcheck using Docker ( `#7224 `__ ) (Seth G) : `279027f `__ +* Python MapScript updates ( `#7221 `__ ) (Seth G) : `6bef295 `__ +* Update the MapServer OpenLayers Viewer to use OpenLayers 10.4 ( `#7218 `__ ) (Seth G) : `432a45d `__ +* Attempt at fuzzer fix ( `#7219 `__ ) (Seth G) : `bc2a64a `__ +* msDrawRasterBuildRasterPath(): micro-optimization: do not attempt to open non-exiting file ( `#7215 `__ ) (Even Rouault) : `68c2a2f `__ +* [CI] bump PCRE2 for SWIG build (Jeff McKenna) : `a6db803 `__ +* update for 8.4 release (Jeff McKenna) : `24102f3 `__ +* update for 8.4 release (Jeff McKenna) : `f833350 `__ +* update history (Jeff McKenna) : `034d8be `__ +* add CITATION.cff ( `#7209 `__ ) (Jeff McKenna) : `3cd7992 `__ +* update history (Jeff McKenna) : `bc8e7dd `__ +* update copyright year (Jeff McKenna) : `683ad5c `__ +* Add stdbool.h inclusion in mapserver.h (Even Rouault) : `a6b41b2 `__ +* update history (Jeff McKenna) : `562a20d `__ +* Emit explicit error message when proj.db cannot be found ( `#7203 `__ ) (Even Rouault) : `5484bc6 `__ +* msPostGISReadShape(): fix crash if returned geometry is NULL (Even Rouault) : `4cdc549 `__ diff --git a/en/development/changelog/index.txt b/en/development/changelog/index.txt index b50cc266a96..5e3dc9e5eda 100644 --- a/en/development/changelog/index.txt +++ b/en/development/changelog/index.txt @@ -8,6 +8,7 @@ .. toctree:: :maxdepth: 2 + changelog-8-6 changelog-8-4 changelog-8-2 changelog-8-0 diff --git a/en/development/rfc/ms-rfc-140.txt b/en/development/rfc/ms-rfc-140.txt index e133dc5eb7a..cf4744e6d8e 100644 --- a/en/development/rfc/ms-rfc-140.txt +++ b/en/development/rfc/ms-rfc-140.txt @@ -6,7 +6,7 @@ MS RFC 140: MapServer Index Page :Author: Seth Girvin :Contact: sethg@geographika.co.uk -:Last Updated: 2025-17-10 +:Last Updated: 2025-10-17 :Version: MapServer 8.6 :Status: Adopted diff --git a/en/download.txt b/en/download.txt index f48e846009a..62ba7c84b77 100644 --- a/en/download.txt +++ b/en/download.txt @@ -18,6 +18,7 @@ Current Release(s) * MapServer + * **2025-11-18** MapServer-8.6.0-beta2 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` * **2025-09-19** MapServer-8.4.1 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` * **2024-09-02** MapServer-8.2.2 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` * **2024-06-11** MapServer-8.0.2 `tar.gz `__ | :ref:`Changelog ` @@ -67,6 +68,7 @@ Current Release Previous Releases .............................................................................. +* `MapServer-8.4-Documentation.pdf `__ |image| * `MapServer-8.2-Documentation.pdf `__ |image| * `MapServer-8.0-Documentation.pdf `__ |image| * `MapServer-7.6-Documentation.pdf `__ |image| diff --git a/en/download_archives.txt b/en/download_archives.txt index 76ad65aa915..d2fc3f31cae 100644 --- a/en/download_archives.txt +++ b/en/download_archives.txt @@ -166,6 +166,10 @@ Past Releases Development Releases .............................................................................. +* **2025-11-18** MapServer-8.6.0-beta2 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` + +* **2025-11-13** MapServer-8.6.0-beta1 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` + * **2025-01-08** MapServer-8.4.0-rc1 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` * **2024-12-14** MapServer-8.4.0-beta2 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` diff --git a/en/images/index-page-ms4w.png b/en/images/index-page-ms4w.png new file mode 100644 index 0000000000000000000000000000000000000000..18448e21657e370122e235f3434373a9adbdbbad GIT binary patch literal 82572 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 literal 0 HcmV?d00001 diff --git a/en/include/announcements.inc b/en/include/announcements.inc index 7410dc7be1b..a7807cf409c 100644 --- a/en/include/announcements.inc +++ b/en/include/announcements.inc @@ -1,3 +1,10 @@ +**2025-11-18 - MapServer 8.6.0-beta2 is released** + +The second beta for MapServer 8.6 has been released. The list of +major changes for this release can be found in the :ref:`8.6 announcement `. +See the :ref:`changelog ` +for the full list of changes and head to :ref:`download` to obtain a copy. + **2025-09-19 - MapServer 8.4.1 is released** .. important:: @@ -70,73 +77,3 @@ major changes for this release can be found in the :ref:`8.2 announcement ` for the full list of changes and head to :ref:`download` to obtain a copy. -**2024-06-28 - MapServer 8.2.0-rc3 is released** - -The third release candidate for MapServer 8.2.0 has been released. The list of -major changes for this release can be found in the :ref:`8.2 announcement `. -See the :ref:`changelog ` -for the full list of changes and head to :ref:`download` to obtain a copy. - -**2024-06-27 - MapServer 8.2.0-rc2 is released** - -The second release candidate for MapServer 8.2.0 has been released. The list of -major changes for this release can be found in the :ref:`8.2 announcement `. -See the :ref:`changelog ` -for the full list of changes and head to :ref:`download` to obtain a copy. - -**2024-06-14 - MapServer 8.2.0-rc1 is released** - -The first release candidate for MapServer 8.2.0 has been released. The list of -major changes for this release can be found in the :ref:`8.2 announcement `. -See the :ref:`changelog ` -for the full list of changes and head to :ref:`download` to obtain a copy. - -**2024-06-11 - MapServer 8.2.0-beta3, 8.0.2, 7.6.6 are released** - -Several maintenance releases of MapServer have been issued in order to fix -a security flaw for regex validation (CVE has been requested). -See the :ref:`8.2.0-beta3 changelog `, -:ref:`8.0.2 changelog `, -:ref:`7.6.6 changelog ` for the list of changes. - -Head to :ref:`download` to obtain a copy. - -**2024-06-08 - MapServer 8.2.0-beta2 is released** - -The second beta for MapServer 8.2 has been released. The list of -major changes for this release can be found in the :ref:`8.2 announcement `. -See the :ref:`changelog ` -for the full list of changes and head to :ref:`download` to obtain a copy. - -**2024-05-24 - TinyOWS 1.2.1 is released** - -The minor version TinyOWS 1.2.1 has been released. This release is in honor -of Olivier Courtin, the original TinyOWS developer & visionary. -The list of changes for this release can be found in -the :ref:`changelog `. - -Head to :ref:`download` to obtain a copy. - -**2023-04-18 - MapServer 8.0.1 and 7.6.5 are released** - -The maintenance release of MapServer 8.0.1 and 7.6.5 are now available. -See the :ref:`8.0.1 changelog `, -:ref:`7.6.5 changelog ` -for the full list of changes. - -Head to :ref:`download` to obtain a copy. - -**2023-01-30 - MapCache 1.14.0 is released** - -MapCache 1.14.0 has been released. This is a security release to handle -a string formatting injection vulnerability, and it affects all previous versions. -See the :ref:`changelog ` -for the full list of changes and head to :ref:`download` to obtain a copy. - -**2022-09-12 - MapServer 8.0.0 is released** - -The major version MapServer 8.0 has been released. The list of -major changes for this release can be found in the :ref:`8.0 announcement `. -See the :ref:`changelog ` -for the full list of changes and head to :ref:`download` to obtain a copy. - diff --git a/en/mapfile/class.txt b/en/mapfile/class.txt index c0b82a1331e..bbb5d38cb76 100644 --- a/en/mapfile/class.txt +++ b/en/mapfile/class.txt @@ -95,7 +95,7 @@ EXPRESSION [string] :name: mapfile-class-fallback FALLBACK [true|false] - .. versionadded:: 8.6 + .. versionadded:: 8.6.0 Specifies whether the class should act as a fallback class. Default is false. A fallback class is applied if and only if none of the previously diff --git a/en/mapfile/identify.txt b/en/mapfile/identify.txt index b10b7ffa916..5a3598ab047 100644 --- a/en/mapfile/identify.txt +++ b/en/mapfile/identify.txt @@ -7,7 +7,7 @@ IDENTIFY ***************************************************************************** -.. versionadded:: 8.6 +.. versionadded:: 8.6.0 Controls how vector features are identified, typically through WMS GetFeatureInfo or MODE=QUERY requests. @@ -112,3 +112,5 @@ CLASSGROUP [string] SYMBOL "my_symbol" END END + +.. seealso:: original Pull Request `#7318 `__ diff --git a/en/mapfile/layer.txt b/en/mapfile/layer.txt index 012afd3ea5a..a1162af9f3c 100644 --- a/en/mapfile/layer.txt +++ b/en/mapfile/layer.txt @@ -723,7 +723,7 @@ HEADER [filename] .. _layer-identify: :ref:`IDENTIFY` - .. versionadded:: 8.6 + .. versionadded:: 8.6.0 Signals the start of an :ref:`IDENTIFY` object. diff --git a/en/mapfile/scalebar.txt b/en/mapfile/scalebar.txt index 772412de76f..d98c7e7720b 100644 --- a/en/mapfile/scalebar.txt +++ b/en/mapfile/scalebar.txt @@ -222,6 +222,10 @@ STATUS [on|off|embed] STYLE [integer] Chooses the scalebar style. Valid styles are 0 and 1. + +.. index:: + pair: SCALEBAR; TRANSPARENT + :name: mapfile-scalebar-transparent TRANSPARENT [on|off] diff --git a/en/ogc/wms_server.txt b/en/ogc/wms_server.txt index c2503f44f19..c1c052596e8 100644 --- a/en/ogc/wms_server.txt +++ b/en/ogc/wms_server.txt @@ -998,7 +998,7 @@ Web Object Metadata **ows_compliance_mode** (or **wms_compliance_mode**) - .. versionadded:: 8.6 + .. versionadded:: 8.6.0 - *Description:* (Optional) Aim for enhanced OGC compliance. Work in progress, the goal is to pass all `INSPIRE tests `__. diff --git a/en/optimization/environment_variables.txt b/en/optimization/environment_variables.txt index 8278fe21946..5d6f3c3289a 100644 --- a/en/optimization/environment_variables.txt +++ b/en/optimization/environment_variables.txt @@ -116,7 +116,7 @@ MS_ERRORFILE pair: Environment variables; MS_INDEX_TEMPLATE_DIRECTORY MS_INDEX_TEMPLATE_DIRECTORY - .. versionadded:: 8.6 + .. versionadded:: 8.6.0 The `MS_INDEX_TEMPLATE_DIRECTORY` environment variable can be set to activate an index page that lists all mapfiles and related services. From 2667b5c8fa50b38956e349375f16afa2d0dc0ad0 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Tue, 18 Nov 2025 18:48:44 -0400 Subject: [PATCH 03/64] minor [build_translations] --- en/ogc/wms_server.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/en/ogc/wms_server.txt b/en/ogc/wms_server.txt index c1c052596e8..1a36eabf310 100644 --- a/en/ogc/wms_server.txt +++ b/en/ogc/wms_server.txt @@ -9,7 +9,7 @@ :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2025-04-14 +:Last Updated: 2025-11-18 .. contents:: Table of Contents :depth: 3 @@ -2467,9 +2467,9 @@ FAQ / Common Problems .. _`WMS Cookbook`: https://web.archive.org/web/20150117113120/http://www.intl-interfaces.com/cookbook/WMS .. old WMS cookbook link: http://www.intl-interfaces.com/cookbook/WMS/ .. _`MapServer OGC Web Services Workshop`: https://mapserver.github.io/ms-ogc-workshop/ -.. _`MS4W`: https://www.ms4w.com -.. _`QGIS`: https://www.qgis.org/ -.. _`OpenJUMP`: https://www.openjump.org +.. _`MS4W`: https://ms4w.com +.. _`QGIS`: https://qgis.org/ +.. _`OpenJUMP`: https://openjump.org .. _`Deegree`: https://www.deegree.org/ .. _`uDig`: https://en.wikipedia.org/wiki/UDig .. _`WMS 1.1.1 section 6.2.2`: https://portal.ogc.org/files/?artifact_id=1081&version=1&format=pdf From d87f7f9d2807583398fb253341c9506bed46dc94 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Wed, 19 Nov 2025 11:08:53 -0400 Subject: [PATCH 04/64] update for 8.6.0-beta2 --- en/MIGRATION_GUIDE.txt | 36 ++++++++++++++++++++++++++++++++---- en/ogc/ogc_api.txt | 8 +++++--- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/en/MIGRATION_GUIDE.txt b/en/MIGRATION_GUIDE.txt index daefe46c2c3..d43e502cf1e 100644 --- a/en/MIGRATION_GUIDE.txt +++ b/en/MIGRATION_GUIDE.txt @@ -6,7 +6,7 @@ MapServer Migration Guide ***************************************************************************** -:Last Updated: 2025-11-18 +:Last Updated: 2025-11-19 .. contents:: Table of Contents :depth: 2 @@ -101,10 +101,38 @@ MapServer 8.4 to 8.6 Migration .. seealso:: original Pull Request `#7309 `__ -- :ref:`ogcapi` has been enhanced to allow `vendorSpecificParameters` passed through to the OpenAPI - document on the `/items` definitions. +- :ref:`ogcapi` has been enhanced to allow the appending of additional + query parameters to all URLs generated through the API, by + defining the `ows_extra_params` parameter in the MAP's METADATA object. + + .. code-block:: mapfile + + MAP + ... + WEB + METADATA + "ows_title" "My OGCAPI Server" + ... + "oga_html_template_directory" "../../share/ogcapi/templates/html-bootstrap/" + "ows_extra_params" "token=123" + END #metadata + END #web + ... + LAYER + ... + END #layer + END #map + + All subsequent URLs available through OGCAPI: Features will contain that + `token=123`, such as:: + + http://127.0.0.1/cgi-bin/mapserv.exe/local-demo/ogcapi/collections/ocean/items?f=json&token=123 + + .. TIP:: + For sensitive parameter values, you should enable :ref:`Run-time Substitution ` to + not store passwords and other tokens in mapfiles. See steps at :ref:`OGCAPI: Features metadata `. - .. seealso:: original Pull Request `#7295 `__ + .. seealso:: original Pull Request `#7360 `__ .. _migration-8-4: diff --git a/en/ogc/ogc_api.txt b/en/ogc/ogc_api.txt index 1c1ff0d3956..d4c03c866ed 100644 --- a/en/ogc/ogc_api.txt +++ b/en/ogc/ogc_api.txt @@ -9,7 +9,7 @@ :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2025-10-10 +:Last Updated: 2025-11-19 .. contents:: Table of Contents :depth: 3 @@ -435,6 +435,8 @@ Further Configuration The following metadata may be used for additional configuration of the service: +.. _ogcapi_metadata: + Web Object Metadata ------------------- @@ -452,11 +454,11 @@ Web Object Metadata to be valid. Default is *http://schemas.opengis.net* .. index:: - triple: OGCAPI; METADATA; ows_schemas_location + triple: OGCAPI; METADATA; ows_extra_params **ows_extra_params** - .. versionadded:: 8.4.0 + .. versionadded:: 8.6.0 - *Description:* (Optional) The ``ows_extra_params`` (or ``oga_extra_params``) metadata entry allows you to append additional query parameters to all URLs generated by MapServer. This can be used, for example, From 4d3b23d388f39904fa9b84578990c399e92c06ba Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Wed, 19 Nov 2025 11:22:31 -0400 Subject: [PATCH 05/64] update for 8.6.0-beta2 release --- en/MIGRATION_GUIDE.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/MIGRATION_GUIDE.txt b/en/MIGRATION_GUIDE.txt index d43e502cf1e..58e1c9f0f2c 100644 --- a/en/MIGRATION_GUIDE.txt +++ b/en/MIGRATION_GUIDE.txt @@ -103,7 +103,7 @@ MapServer 8.4 to 8.6 Migration - :ref:`ogcapi` has been enhanced to allow the appending of additional query parameters to all URLs generated through the API, by - defining the `ows_extra_params` parameter in the MAP's METADATA object. + defining the `ows_extra_params` parameter in the mapfile's WEB.METADATA object. .. code-block:: mapfile From 0763267322c962237d7e86c6ff128a29bd6e7533 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Wed, 19 Nov 2025 15:38:00 -0400 Subject: [PATCH 06/64] update for 8.6.0-beta2 release --- en/ogc/ogc_api.txt | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/en/ogc/ogc_api.txt b/en/ogc/ogc_api.txt index d4c03c866ed..734a5906b6a 100644 --- a/en/ogc/ogc_api.txt +++ b/en/ogc/ogc_api.txt @@ -440,19 +440,6 @@ The following metadata may be used for additional configuration of the service: Web Object Metadata ------------------- -.. index:: - triple: OGCAPI; METADATA; ows_schemas_location - -**ows_schemas_location** - - .. versionadded:: 8.2.0 - -- *Description:* (Optional) (Note the name *ows_schemas_location* because all - OGC Web Services (OWS) use the same metadata) Root of the web tree where - the family of OGC API JSON Schema files are located. This must be a valid URL - where the actual .yaml files are located if you want your OpenAPI description - to be valid. Default is *http://schemas.opengis.net* - .. index:: triple: OGCAPI; METADATA; ows_extra_params @@ -513,3 +500,16 @@ Web Object Metadata The extra parameters are available in HTML templates for the OGC Features API as ``{{ template.extra_params }}``. The templates supplied in the MapServer repository append this value to all URLs by default. + +.. index:: + triple: OGCAPI; METADATA; ows_schemas_location + +**ows_schemas_location** + + .. versionadded:: 8.2.0 + +- *Description:* (Optional) (Note the name *ows_schemas_location* because all + OGC Web Services (OWS) use the same metadata) Root of the web tree where + the family of OGC API JSON Schema files are located. This must be a valid URL + where the actual .yaml files are located if you want your OpenAPI description + to be valid. Default is *http://schemas.opengis.net* From 04d341a16f2124734e1219e37fc4617fc089cbf0 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Thu, 20 Nov 2025 08:55:26 -0400 Subject: [PATCH 07/64] update for 8.6.0-beta2 release --- en/development/announce/8-6.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/en/development/announce/8-6.txt b/en/development/announce/8-6.txt index 9b2ea9fcc88..b682413a58c 100644 --- a/en/development/announce/8-6.txt +++ b/en/development/announce/8-6.txt @@ -5,7 +5,7 @@ Version 8.6.0-beta2 Announcement ***************************************************************************** :Authors: Project Steering Committee -:Last Updated: 2025-11-18 +:Last Updated: 2025-11-20 :Status: Draft The MapServer Team is pleased to announce the second beta release of @@ -19,6 +19,8 @@ the major changes. Major New Features Coming in MapServer 8.6 ------------------------------------------ +- allow append of additional query parameters for OGCAPI: Features (`#7360 `__) + - new MapServer index page (`#7350 `__) - WMS GetFeatureInfo: add options to precisely identify points through their symbols (`#7318 `__) From 6fba934493e591b483111e91096924d76e0794cf Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Thu, 20 Nov 2025 09:16:36 -0400 Subject: [PATCH 08/64] update for 8.6.0-beta2 release --- en/development/announce/8-6.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/en/development/announce/8-6.txt b/en/development/announce/8-6.txt index b682413a58c..75ac20e5d6f 100644 --- a/en/development/announce/8-6.txt +++ b/en/development/announce/8-6.txt @@ -39,7 +39,7 @@ Other Related Updates Migration Guide --------------- -Head to the :ref:`Migration Guide ` for mapfile examples of the major 8.4.0 changes. +Head to the :ref:`Migration Guide ` for mapfile examples of the major 8.6.0 changes. Source Code Download -------------------- @@ -71,8 +71,8 @@ with binaries for the new release shortly. Documentation ------------- -The entire 8.4.0 documentation is also available as a `PDF document `__ |image| -(1143 pages, with clickable table of contents as well). +The entire 8.6.0 documentation is also available as a `PDF document `__ |image| +(1150 pages, with clickable table of contents as well). .. |image| image:: ../../../_static/pdf.png :height: 15 From 4d4ed74a0802cd917a691a9adeafe15a58963793 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Sun, 23 Nov 2025 15:11:26 -0400 Subject: [PATCH 09/64] update for FOSS4G 2026 --- _static/foss4g2026.png | Bin 0 -> 29927 bytes _templates/indexsidebar.html | 4 ++-- en/development/announce/8-6.txt | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 _static/foss4g2026.png diff --git a/_static/foss4g2026.png b/_static/foss4g2026.png new file mode 100644 index 0000000000000000000000000000000000000000..b33fb5d691f06ea067ba798373d7f1646e686129 GIT binary patch literal 29927 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 Z$H(P){jPsC@N7|ps*;A{7kRVL{}1s(=Q98R literal 0 HcmV?d00001 diff --git a/_templates/indexsidebar.html b/_templates/indexsidebar.html index 121909740e8..01e37676eb1 100644 --- a/_templates/indexsidebar.html +++ b/_templates/indexsidebar.html @@ -16,8 +16,8 @@

Navigation

- - FOSS4G + + FOSS4G

If you find MapServer useful, please consider supporting the team with a donation:

diff --git a/en/development/announce/8-6.txt b/en/development/announce/8-6.txt index 75ac20e5d6f..a065e03f0fb 100644 --- a/en/development/announce/8-6.txt +++ b/en/development/announce/8-6.txt @@ -5,7 +5,7 @@ Version 8.6.0-beta2 Announcement ***************************************************************************** :Authors: Project Steering Committee -:Last Updated: 2025-11-20 +:Last Updated: 2025-11-23 :Status: Draft The MapServer Team is pleased to announce the second beta release of @@ -39,7 +39,7 @@ Other Related Updates Migration Guide --------------- -Head to the :ref:`Migration Guide ` for mapfile examples of the major 8.6.0 changes. +Head to the :ref:`Migration Guide ` for mapfile examples of the major 8.6.0 changes. Source Code Download -------------------- From 4992d77d848ae876504c7be13a8a6ee34e8c91bc Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Sun, 23 Nov 2025 15:19:42 -0400 Subject: [PATCH 10/64] update for 8.6.0-release [build_translations] --- en/development/announce/8-6.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/en/development/announce/8-6.txt b/en/development/announce/8-6.txt index a065e03f0fb..3a52e8d23b1 100644 --- a/en/development/announce/8-6.txt +++ b/en/development/announce/8-6.txt @@ -53,13 +53,13 @@ Binary Distributions Binary distributions will be available in the coming days: -- Debian binaries of 8.6.0-beta1 are already available: https://tracker.debian.org/pkg/mapserver +- Debian binaries of 8.6.0-beta2 are already available: https://tracker.debian.org/pkg/mapserver - `OSGeoLive `__ 17.0 release process is happening now, but - it will soon include MapServer 8.6.0-beta1 + it will soon include MapServer 8.6.0-beta2 - `UbuntuGIS `__ will follow the OSGeoLive - release and will then include MapServer 8.6.0-beta1 + release and will then include MapServer 8.6.0-beta2 - MS4W users have already been using branch-8-6 code, but watch for - a new release shortly containing the 8.6.0-beta1 changes at: https://ms4w.com + a new release shortly containing the 8.6.0-beta2 changes at: https://ms4w.com .. TBD - `RHEL and CentOS` TODO From 2ad22bb04bb951b68cbefe9f6082c6381fa78cc8 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Mon, 24 Nov 2025 10:35:07 -0400 Subject: [PATCH 11/64] update FOSS4G 2026 logo [build_translations] --- _static/foss4g2026.png | Bin 29927 -> 95411 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/_static/foss4g2026.png b/_static/foss4g2026.png index b33fb5d691f06ea067ba798373d7f1646e686129..6607fbed4f2b2470768a79a4d106fbb4c9e60e04 100644 GIT binary patch literal 95411 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 < zVrXB{h7Bt}h_-Xt7p;jB+3jv@1Q5tpnHixAkh9OW7o%h78Db< z!r#dh#FnA^7)fQ<cDwo3Xo8X*tGTgsjF;3t?;4y`|Lg8|TbluxqOe3+WHe496b;p}a zI6c~T#xrWOs}3W~SxBfXk5|!sy`eml8|O=VXaFbuIwMn%G{sL%M?XIu4v|~LwY%Hz zW0KhD=d<0V8TG{HTG#dt&5nH#-%F+(rIqu`inK!*6fe&ZpNyH9w&OJIx2Jd-ryrA# zNnF|{=T+DKE+XJkBO_o<6qHL)Z~kgY;l4{CDUFGYlH|6Rj!G*hi%<|5D?AIE3247Q z+Z@M+_{=Yv`;OZ!l!0yU5!c+~z-e{ytm1Z{Oz+=(wQ+Mo`Mo}M0d z6lM+%Rn~->iKr-=cZv)YK>op)23qcOV5|ZN{z^Oe+y)fjP=^mqH~yE?=zU`NP|Z7I zfS-a)@E@qXg`RPxgJp0kVv}=QLAtK2tW44--*dc40rn*T;BX656IfZGH}5tg-22r4 z8SxjIM*x&Vs|yh!A=I1~v~Im;(5dXz^4ap7T{9XYEvDrx`*XY=mSDJid08X+r*zx> zt^cY0vtx9^ttW|`asv$I1hhjROeo2p7`$+2t4C(kG!)Z&5^Zcyq4HmLvu!K7`^xVX z)+(G9C+h_MqlUUsE#@jq5rjt!jq5+{HO~gYVND|9t|g}*aqmj7;|n^!G0Cb%lF(

dy|^$m7-LC|6W!&0xj27#6eBm+QH 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 aE25r}f{ry!e=xiO0C^c@X@rzX=>GwKH4Uf$ literal 29927 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 Z$H(P){jPsC@N7|ps*;A{7kRVL{}1s(=Q98R From e1668955bd6b5fc9cdf4a19a4a8d6f531e691d33 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 27 Nov 2025 12:25:13 -0400 Subject: [PATCH 12/64] update for 8.6.0-rc1 release (#1052) Co-authored-by: Jeff McKenna --- conf.py | 2 +- en/announcements/announcements_archive.txt | 7 +++++++ en/development/announce/8-6.txt | 16 ++++++++-------- en/development/changelog/changelog-8-6.txt | 10 ++++++++++ en/download.txt | 2 +- en/download_archives.txt | 2 ++ en/include/announcements.inc | 6 +++--- 7 files changed, 32 insertions(+), 13 deletions(-) diff --git a/conf.py b/conf.py index 0bec8c07a70..fc0ac56f491 100644 --- a/conf.py +++ b/conf.py @@ -94,7 +94,7 @@ def __getattr__(cls, name): # The short X.Y version. version = '8.6' # The full version, including alpha/beta/rc tags. -release = '8.6.0-beta2' +release = '8.6.0-rc1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None diff --git a/en/announcements/announcements_archive.txt b/en/announcements/announcements_archive.txt index 14f3e9d0552..66a3c8f348d 100644 --- a/en/announcements/announcements_archive.txt +++ b/en/announcements/announcements_archive.txt @@ -4,6 +4,13 @@ MapServer Announcement Archives ***************************************************************************** +**2025-11-27 - MapServer 8.6.0-rc1 is released** + +The first release candidate for MapServer 8.6 has been released. The list of +major changes for this release can be found in the :ref:`8.6 announcement `. +See the :ref:`changelog ` +for the full list of changes and head to :ref:`download` to obtain a copy. + **2025-11-18 - MapServer 8.6.0-beta2 is released** The second beta for MapServer 8.6 has been released. The list of diff --git a/en/development/announce/8-6.txt b/en/development/announce/8-6.txt index 3a52e8d23b1..1e63e1cc847 100644 --- a/en/development/announce/8-6.txt +++ b/en/development/announce/8-6.txt @@ -1,15 +1,15 @@ .. _announce-8-6: ***************************************************************************** -Version 8.6.0-beta2 Announcement +Version 8.6.0-rc1 Announcement ***************************************************************************** :Authors: Project Steering Committee -:Last Updated: 2025-11-23 +:Last Updated: 2025-11-27 :Status: Draft -The MapServer Team is pleased to announce the second beta release of -MapServer 8.6.0-beta2 +The MapServer Team is pleased to announce the first release candidate of +MapServer 8.6.0 The upcoming 8.6 release brings a number of major new features that are briefly summarized in this document. The full list of changes can be found in :ref:`changelog-8-6`. @@ -53,13 +53,13 @@ Binary Distributions Binary distributions will be available in the coming days: -- Debian binaries of 8.6.0-beta2 are already available: https://tracker.debian.org/pkg/mapserver +- Debian binaries of 8.6.0-rc1 are already available: https://tracker.debian.org/pkg/mapserver - `OSGeoLive `__ 17.0 release process is happening now, but - it will soon include MapServer 8.6.0-beta2 + it will soon include MapServer 8.6.0-rc1 - `UbuntuGIS `__ will follow the OSGeoLive - release and will then include MapServer 8.6.0-beta2 + release and will then include MapServer 8.6.0-rc1 - MS4W users have already been using branch-8-6 code, but watch for - a new release shortly containing the 8.6.0-beta2 changes at: https://ms4w.com + a new release shortly containing the 8.6.0-rc1 changes at: https://ms4w.com .. TBD - `RHEL and CentOS` TODO diff --git a/en/development/changelog/changelog-8-6.txt b/en/development/changelog/changelog-8-6.txt index ea73cc18b31..19a061012a1 100644 --- a/en/development/changelog/changelog-8-6.txt +++ b/en/development/changelog/changelog-8-6.txt @@ -7,6 +7,16 @@ The summary of major changes for this release can be found in the `HISTORY.md `__ file from the source directory. +.. _changelog-8-6-0-rc1: + +Changes from 8.6.0-beta2 to 8.6.0-rc1 +===================================== + +* CI: upgrade PHPUnit, and add PHP 8.5 MapScript job ( `#7398 `__ ) (Jeff McKenna) : `a595d77 `__ +* Output GDAL files: fix from init=epsg:xxxx layers ( `#7395 `__ ) (Even Rouault) : `f86e3f2 `__ +* contour: avoid warning about Memory driver being deprecated in GDAL >= 3.11 ( `#7394 `__ ) (Even Rouault) : `3d002c9 `__ +* OGCAPI: return OGC-NumberReturned, OGC-NumberMatched and Link HTTP headers ( `#7393 `__ ) (Even Rouault) : `416baa45 `__ + .. _changelog-8-6-0-beta2: Changes from 8.6.0-beta1 to 8.6.0-beta2 diff --git a/en/download.txt b/en/download.txt index 62ba7c84b77..42c5c4cab30 100644 --- a/en/download.txt +++ b/en/download.txt @@ -18,7 +18,7 @@ Current Release(s) * MapServer - * **2025-11-18** MapServer-8.6.0-beta2 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` + * **2025-11-27** MapServer-8.6.0-rc1 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` * **2025-09-19** MapServer-8.4.1 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` * **2024-09-02** MapServer-8.2.2 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` * **2024-06-11** MapServer-8.0.2 `tar.gz `__ | :ref:`Changelog ` diff --git a/en/download_archives.txt b/en/download_archives.txt index d2fc3f31cae..c840e7fe130 100644 --- a/en/download_archives.txt +++ b/en/download_archives.txt @@ -166,6 +166,8 @@ Past Releases Development Releases .............................................................................. +* **2025-11-27** MapServer-8.6.0-rc1 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` + * **2025-11-18** MapServer-8.6.0-beta2 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` * **2025-11-13** MapServer-8.6.0-beta1 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` diff --git a/en/include/announcements.inc b/en/include/announcements.inc index a7807cf409c..d18698504e8 100644 --- a/en/include/announcements.inc +++ b/en/include/announcements.inc @@ -1,8 +1,8 @@ -**2025-11-18 - MapServer 8.6.0-beta2 is released** +**2025-11-27 - MapServer 8.6.0-rc1 is released** -The second beta for MapServer 8.6 has been released. The list of +The first release candidate for MapServer 8.6 has been released. The list of major changes for this release can be found in the :ref:`8.6 announcement `. -See the :ref:`changelog ` +See the :ref:`changelog ` for the full list of changes and head to :ref:`download` to obtain a copy. **2025-09-19 - MapServer 8.4.1 is released** From b40cb035d18088844e7f8c0986c1dd53a7e74ee7 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Thu, 27 Nov 2025 12:30:19 -0400 Subject: [PATCH 13/64] update for 8.6.0-rc1 release [build_translations] --- en/include/announcements.inc | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/en/include/announcements.inc b/en/include/announcements.inc index d18698504e8..e3607dc253f 100644 --- a/en/include/announcements.inc +++ b/en/include/announcements.inc @@ -29,20 +29,6 @@ major changes for this release can be found in the :ref:`8.4 announcement ` for the full list of changes and head to :ref:`download` to obtain a copy. -**2025-01-08 - MapServer 8.4.0-rc1 is released** - -The first release candidate for MapServer 8.4.0 has been released. The list of -major changes for this release can be found in the :ref:`8.4 announcement `. -See the :ref:`changelog ` -for the full list of changes and head to :ref:`download` to obtain a copy. - -**2024-12-14 - MapServer 8.4.0-beta2 is released** - -The second beta for MapServer 8.4 has been released. The list of -major changes for this release can be found in the :ref:`8.4 announcement `. -See the :ref:`changelog ` -for the full list of changes and head to :ref:`download` to obtain a copy. - **2024-09-02 - MapServer 8.2.2 is released** The maintenance release of MapServer 8.2.2 is now available. From 64a8e231e514f58a659fc50c68a6473c920a92af Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 3 Dec 2025 09:13:10 -0400 Subject: [PATCH 14/64] [Backport branch-8-6] upgrade to Sphinx 9.0 release (#1054) * update to Sphinx 9.0 * ugrade to Sphinx 9.0.1 release --------- Co-authored-by: Jeff McKenna --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index dcf502d5b3b..7d211ec819a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ alabaster==1.0.0 -docutils==0.21.2 -sphinx==8.2.3 +docutils==0.22.3 +sphinx==9.0.1 sphinx-copybutton==0.5.2 sphinxcontrib-jquery==4.1 --extra-index-url https://test.pypi.org/simple/ From edbc8236aec90774e165fbde570c1b0e0b91932d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 3 Dec 2025 14:02:12 -0400 Subject: [PATCH 15/64] [Backport branch-8-6] update for 8.6.0 (final) (#1056) --------- Co-authored-by: Jeff McKenna --- conf.py | 2 +- en/announcements/announcements_archive.txt | 7 +++++++ en/development/announce/8-6.txt | 21 ++++++++++----------- en/development/changelog/changelog-8-6.txt | 7 +++++++ en/download.txt | 2 +- en/download_archives.txt | 2 ++ en/include/announcements.inc | 6 +++--- en/mapfile/scalebar.txt | 6 ++++++ en/mapscript/index.txt | 9 ++------- en/utilities/scalebar.txt | 15 +++++++++++---- 10 files changed, 50 insertions(+), 27 deletions(-) diff --git a/conf.py b/conf.py index fc0ac56f491..30f85a3629c 100644 --- a/conf.py +++ b/conf.py @@ -94,7 +94,7 @@ def __getattr__(cls, name): # The short X.Y version. version = '8.6' # The full version, including alpha/beta/rc tags. -release = '8.6.0-rc1' +release = '8.6.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None diff --git a/en/announcements/announcements_archive.txt b/en/announcements/announcements_archive.txt index 66a3c8f348d..a2fdc849b14 100644 --- a/en/announcements/announcements_archive.txt +++ b/en/announcements/announcements_archive.txt @@ -4,6 +4,13 @@ MapServer Announcement Archives ***************************************************************************** +**2025-12-03 - MapServer 8.6.0 is released** + +The major version MapServer 8.6 has been released. The list of +major changes for this release can be found in the :ref:`8.6 announcement `. +See the :ref:`changelog ` +for the full list of changes and head to :ref:`download` to obtain a copy. + **2025-11-27 - MapServer 8.6.0-rc1 is released** The first release candidate for MapServer 8.6 has been released. The list of diff --git a/en/development/announce/8-6.txt b/en/development/announce/8-6.txt index 1e63e1cc847..547e30ccc07 100644 --- a/en/development/announce/8-6.txt +++ b/en/development/announce/8-6.txt @@ -1,23 +1,22 @@ .. _announce-8-6: ***************************************************************************** -Version 8.6.0-rc1 Announcement +Version 8.6.0 Announcement ***************************************************************************** :Authors: Project Steering Committee -:Last Updated: 2025-11-27 -:Status: Draft +:Last Updated: 2025-12-03 -The MapServer Team is pleased to announce the first release candidate of +The MapServer Team is pleased to announce the major release of MapServer 8.6.0 -The upcoming 8.6 release brings a number of major new features that are briefly +The 8.6 release brings a number of major new features that are briefly summarized in this document. The full list of changes can be found in :ref:`changelog-8-6`. The :ref:`Migration Guide ` also contains more detailed examples of the major changes. -Major New Features Coming in MapServer 8.6 ------------------------------------------- +Major New Features in MapServer 8.6 +----------------------------------- - allow append of additional query parameters for OGCAPI: Features (`#7360 `__) @@ -53,13 +52,13 @@ Binary Distributions Binary distributions will be available in the coming days: -- Debian binaries of 8.6.0-rc1 are already available: https://tracker.debian.org/pkg/mapserver +- Debian binaries of 8.6.0 are already available: https://tracker.debian.org/pkg/mapserver - `OSGeoLive `__ 17.0 release process is happening now, but - it will soon include MapServer 8.6.0-rc1 + it will soon include MapServer 8.6.0 - `UbuntuGIS `__ will follow the OSGeoLive - release and will then include MapServer 8.6.0-rc1 + release and will then include MapServer 8.6.0 - MS4W users have already been using branch-8-6 code, but watch for - a new release shortly containing the 8.6.0-rc1 changes at: https://ms4w.com + a new release shortly containing the 8.6.0 changes at: https://ms4w.com .. TBD - `RHEL and CentOS` TODO diff --git a/en/development/changelog/changelog-8-6.txt b/en/development/changelog/changelog-8-6.txt index 19a061012a1..7b51da93965 100644 --- a/en/development/changelog/changelog-8-6.txt +++ b/en/development/changelog/changelog-8-6.txt @@ -7,6 +7,13 @@ The summary of major changes for this release can be found in the `HISTORY.md `__ file from the source directory. +.. _changelog-8-6-0: + +Changes from 8.6.0-rc1 to 8.6.0 +=============================== + +* CI: upgrade PCRE2 to 10.47 ( `#7400 `__ ) (Jeff McKenna) : `67a6e16 `__ + .. _changelog-8-6-0-rc1: Changes from 8.6.0-beta2 to 8.6.0-rc1 diff --git a/en/download.txt b/en/download.txt index 42c5c4cab30..147f211fa0b 100644 --- a/en/download.txt +++ b/en/download.txt @@ -18,7 +18,7 @@ Current Release(s) * MapServer - * **2025-11-27** MapServer-8.6.0-rc1 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` + * **2025-12-03** MapServer-8.6.0 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` * **2025-09-19** MapServer-8.4.1 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` * **2024-09-02** MapServer-8.2.2 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` * **2024-06-11** MapServer-8.0.2 `tar.gz `__ | :ref:`Changelog ` diff --git a/en/download_archives.txt b/en/download_archives.txt index c840e7fe130..0118a877630 100644 --- a/en/download_archives.txt +++ b/en/download_archives.txt @@ -15,6 +15,8 @@ Past Releases .............................................................................. +* **2025-12-03** MapServer-8.6.0 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` + * **2025-09-19** MapServer-8.4.1 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` * **2025-01-15** MapServer-8.4.0 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` diff --git a/en/include/announcements.inc b/en/include/announcements.inc index e3607dc253f..15f0b650260 100644 --- a/en/include/announcements.inc +++ b/en/include/announcements.inc @@ -1,8 +1,8 @@ -**2025-11-27 - MapServer 8.6.0-rc1 is released** +**2025-12-03 - MapServer 8.6.0 is released** -The first release candidate for MapServer 8.6 has been released. The list of +The major version MapServer 8.6 has been released. The list of major changes for this release can be found in the :ref:`8.6 announcement `. -See the :ref:`changelog ` +See the :ref:`changelog ` for the full list of changes and head to :ref:`download` to obtain a copy. **2025-09-19 - MapServer 8.4.1 is released** diff --git a/en/mapfile/scalebar.txt b/en/mapfile/scalebar.txt index d98c7e7720b..9db1aeee97e 100644 --- a/en/mapfile/scalebar.txt +++ b/en/mapfile/scalebar.txt @@ -7,6 +7,12 @@ SCALEBAR ***************************************************************************** + .. note:: + + MapServer supports only cartesian distances (straight-line distance measured + on a flat surface), it does not convert distances into an ellipsoidal + distance (measured on spherical shape). + Scalebars currently do not make use of TrueType fonts. The size of the scalebar image is NOT known prior to rendering, so be careful not to hard-code width and height in the tag in the template file. Future diff --git a/en/mapscript/index.txt b/en/mapscript/index.txt index 821cb4bfdac..1f0ca163363 100644 --- a/en/mapscript/index.txt +++ b/en/mapscript/index.txt @@ -9,13 +9,8 @@ .. warning:: As of the MapServer 8.0.0 release PHP support is only available through - MapServer's :ref:`SWIG API `. - - .. note:: - - As of the MapServer 7.4.0 release PHP is available through - MapServer's :ref:`SWIG API `. PHP 8.2 and PHP 8.1 are currently - supported with MapServer 8.0.1. + MapServer's :ref:`SWIG API `. Supported versions are PHP 8.5 and + PHP 8.4 with MapServer 8.6.0 .. toctree:: :maxdepth: 2 diff --git a/en/utilities/scalebar.txt b/en/utilities/scalebar.txt index 08b371bf37f..22730877f03 100644 --- a/en/utilities/scalebar.txt +++ b/en/utilities/scalebar.txt @@ -7,14 +7,21 @@ scalebar ***************************************************************************** + .. note:: + + MapServer supports only cartesian distances (straight-line distance measured + on a flat surface), it does not convert distances into an ellipsoidal + distance (measured on spherical shape). + Purpose ------------------------------------------------------------------------------ +------- -Creates a scalebar from a mapfile. Output is either PNG or GIF depending -on what version of the GD library used. +Creates a scalebar image from a mapfile. Output format of the image (such as +PNG, JPEG, etc.) depends on your defined :ref:`IMAGETYPE ` in +your mapfile. Syntax ------------------------------------------------------------------------------ +------ :: From 9f0f39ea661fccd56333d2b20f684d6f7e19ae15 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Wed, 3 Dec 2025 14:10:50 -0400 Subject: [PATCH 16/64] update for 8.6.0 release [build_translations] --- en/mapfile/scalebar.txt | 2 +- en/utilities/scalebar.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/en/mapfile/scalebar.txt b/en/mapfile/scalebar.txt index 9db1aeee97e..3fa2606d7cd 100644 --- a/en/mapfile/scalebar.txt +++ b/en/mapfile/scalebar.txt @@ -11,7 +11,7 @@ MapServer supports only cartesian distances (straight-line distance measured on a flat surface), it does not convert distances into an ellipsoidal - distance (measured on spherical shape). + distance (measured on a spherical shape). Scalebars currently do not make use of TrueType fonts. The size of the scalebar image is NOT known prior to rendering, so be careful not to diff --git a/en/utilities/scalebar.txt b/en/utilities/scalebar.txt index 22730877f03..69ad87e1360 100644 --- a/en/utilities/scalebar.txt +++ b/en/utilities/scalebar.txt @@ -11,7 +11,7 @@ MapServer supports only cartesian distances (straight-line distance measured on a flat surface), it does not convert distances into an ellipsoidal - distance (measured on spherical shape). + distance (measured on a spherical shape). Purpose ------- From 5751faf51eb96c82e4a57d3d8717d919e82033d1 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Wed, 3 Dec 2025 14:33:44 -0400 Subject: [PATCH 17/64] update for 8.6.0 release [build_translations] --- en/mapscript/index.txt | 4 ++-- en/mapscript/mapscript-api/index.rst | 15 +++++---------- en/mapscript/php/index.txt | 8 ++------ 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/en/mapscript/index.txt b/en/mapscript/index.txt index 1f0ca163363..0abd9e193be 100644 --- a/en/mapscript/index.txt +++ b/en/mapscript/index.txt @@ -6,9 +6,9 @@ :Release: |release| - .. warning:: + .. note:: - As of the MapServer 8.0.0 release PHP support is only available through + Since the MapServer 8.0.0 release PHP support is only available through MapServer's :ref:`SWIG API `. Supported versions are PHP 8.5 and PHP 8.4 with MapServer 8.6.0 diff --git a/en/mapscript/mapscript-api/index.rst b/en/mapscript/mapscript-api/index.rst index 73db4225ecd..0bdd728cff7 100644 --- a/en/mapscript/mapscript-api/index.rst +++ b/en/mapscript/mapscript-api/index.rst @@ -24,7 +24,7 @@ :Contact: jmckenna at gatewaygeomatics.com :Author: Seth Girvin :Contact: sethg at geographika.co.uk -:Last Updated: 2023-06-13 +:Last Updated: 2025-12-03 ============================================================================= Introduction @@ -43,16 +43,11 @@ is read-only. Note that because of the way that MapScript is generated many confusing, meaningless, and even dangerous attributes might be exposed by objects. -.. warning:: +.. note:: - As of the MapServer 8.0.0 release PHP support is only available through - MapServer's :ref:`SWIG API `. The unmaintained `native` PHP MapScript - support was removed. - - .. note:: - - PHP support is included in the SWIG API as of the MapServer 7.4.0 release. - PHP 8.2 and PHP 8.1 are currently supported with MapServer 8.0.1. + Since the MapServer 8.0.0 release PHP support is only available through + MapServer's :ref:`SWIG API `. Supported versions are PHP 8.5 and + PHP 8.4 with MapServer 8.6.0 ============================================================================= Appendices diff --git a/en/mapscript/php/index.txt b/en/mapscript/php/index.txt index aeb85702f78..d1468ffe387 100644 --- a/en/mapscript/php/index.txt +++ b/en/mapscript/php/index.txt @@ -20,11 +20,7 @@ .. warning:: - As of the MapServer 8.0.0 release PHP support is only available through + Since the MapServer 8.0.0 release PHP support is only available through MapServer's :ref:`SWIG API `. The unmaintained `native` PHP MapScript - support was removed. - -.. note:: + support (referred to in this section of the documentation) was removed. - As of the 7.4.0 release PHP 7 is available through - MapServer's :ref:`SWIG API `. From c266a787bdf9174c857f7b8eb9b27a699ff9cb7a Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Wed, 3 Dec 2025 14:56:58 -0400 Subject: [PATCH 18/64] update for 8.6.0 release [build_translations] --- en/mapscript/php/index.txt | 12 +++++------- en/mapscript/php/php_intro.txt | 2 +- en/mapscript/php/phpmapscript.txt | 10 ++-------- 3 files changed, 8 insertions(+), 16 deletions(-) diff --git a/en/mapscript/php/index.txt b/en/mapscript/php/index.txt index d1468ffe387..433439d498a 100644 --- a/en/mapscript/php/index.txt +++ b/en/mapscript/php/index.txt @@ -7,7 +7,11 @@ PHP MapScript ***************************************************************************** -:Release: |release| +.. warning:: + + Since the MapServer 8.0.0 release PHP support is only available through + MapServer's :ref:`SWIG API `. The unmaintained `native` PHP MapScript + support (referred to in this section of the documentation) was removed. .. toctree:: :maxdepth: 2 @@ -16,11 +20,5 @@ phpmapscript migration_guide by_example - - -.. warning:: - Since the MapServer 8.0.0 release PHP support is only available through - MapServer's :ref:`SWIG API `. The unmaintained `native` PHP MapScript - support (referred to in this section of the documentation) was removed. diff --git a/en/mapscript/php/php_intro.txt b/en/mapscript/php/php_intro.txt index 9b63532bc95..b938e4daf5a 100644 --- a/en/mapscript/php/php_intro.txt +++ b/en/mapscript/php/php_intro.txt @@ -11,7 +11,7 @@ PHP MapScript As of the MapServer 8.0.0 release PHP support is only available through MapServer's :ref:`SWIG API `. The unmaintained `native` PHP MapScript - support was removed. + support (referred to in this section of the documentation) was removed. Introduction ************* diff --git a/en/mapscript/php/phpmapscript.txt b/en/mapscript/php/phpmapscript.txt index d8f104ea31a..b0796173aad 100644 --- a/en/mapscript/php/phpmapscript.txt +++ b/en/mapscript/php/phpmapscript.txt @@ -14,20 +14,14 @@ .. warning:: - As of the MapServer 8.0.0 release PHP support is only available through + Since the MapServer 8.0.0 release PHP support is only available through MapServer's :ref:`SWIG API `. The unmaintained `native` PHP MapScript - support was removed. + support (referred to in this section of the documentation) was removed. .. note:: If you are using MapServer 5.6 and older, please refer to the :ref:`PHP MapScript 5.6 documentation ` instead. - - .. tip:: - - PHP 7 native support is included as of the MapServer 7.4.0 release. - Also, as of the 7.4.0 release PHP 7 is available through - MapServer's :ref:`SWIG ` API. .. contents:: :depth: 3 From a241c8a1cfc92b38f077e8a17a891ff42322a807 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Wed, 3 Dec 2025 15:15:01 -0400 Subject: [PATCH 19/64] update for 8.6.0 release [build_translations] --- en/development/announce/8-6.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/development/announce/8-6.txt b/en/development/announce/8-6.txt index 547e30ccc07..c44bb970c92 100644 --- a/en/development/announce/8-6.txt +++ b/en/development/announce/8-6.txt @@ -71,7 +71,7 @@ Documentation ------------- The entire 8.6.0 documentation is also available as a `PDF document `__ |image| -(1150 pages, with clickable table of contents as well). +(1155 pages, with clickable table of contents as well). .. |image| image:: ../../../_static/pdf.png :height: 15 From 912c72df7fab9424f929363917ad93cb83c57169 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Fri, 12 Dec 2025 14:47:55 -0400 Subject: [PATCH 20/64] document OGCAPI_HTML_TEMPLATE_DIRECTORY [build_translations] --- en/ogc/ogc_api.txt | 43 ++++++++++++++++------- en/optimization/environment_variables.txt | 30 ++++++++++++++-- requirements.txt | 2 +- 3 files changed, 60 insertions(+), 15 deletions(-) diff --git a/en/ogc/ogc_api.txt b/en/ogc/ogc_api.txt index 734a5906b6a..561ea763c1d 100644 --- a/en/ogc/ogc_api.txt +++ b/en/ogc/ogc_api.txt @@ -9,7 +9,7 @@ :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2025-11-19 +:Last Updated: 2025-12-12 .. contents:: Table of Contents :depth: 3 @@ -104,10 +104,11 @@ Example 1. On Unix: :: $ ./mapserv -v - MapServer version 8.1-dev OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ - SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS SUPPORTS=RSVG - SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT - SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER + MapServer version 8.7-dev PROJ version 9.7 GDAL version 3.11 OUTPUT=PNG + OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE + SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS SUPPORTS=RSVG SUPPORTS=ICONV + SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER + SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=OGCAPI_SERVER SUPPORTS=GEOS SUPPORTS=PBF INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE INPUT=FLATGEOBUF @@ -116,13 +117,14 @@ Example 2. On Windows: :: C:\ms4w> mapserv -v - MapServer version 8.1.0-dev (MS4W 5.0.0-dev) OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML - SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO - SUPPORTS=SVG_SYMBOLS SUPPORTS=SVGCAIRO SUPPORTS=ICONV SUPPORTS=FRIBIDI - SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT - SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=OGCAPI_SERVER SUPPORTS=FASTCGI - SUPPORTS=THREADS SUPPORTS=GEOS SUPPORTS=PBF INPUT=JPEG INPUT=POSTGIS INPUT=OGR - INPUT=GDAL INPUT=SHAPEFILE INPUT=FLATGEOBUF + MapServer version 8.7.0-dev (MS4W 5.2.0) PROJ version 9.8 + GDAL version 3.13 OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG + SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS SUPPORTS=SVGCAIRO + SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT + SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER + SUPPORTS=OGCAPI_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS + SUPPORTS=PBF INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE + INPUT=FLATGEOBUF .. index:: pair: WMS Server; Mapfile @@ -141,6 +143,23 @@ mapfile such as:: localdemo "/ms4w/apps/ogcapi-demo/ogcapi-demo.map" END +You can also point to the location of the HTML templates to use for +`ogcapi?f=html` requests, by setting the `OGCAPI_HTML_TEMPLATE_DIRECTORY` +environment variable in your CONFIG file, such as:: + + ENV + # + # OGC API + # + OGCAPI_HTML_TEMPLATE_DIRECTORY "/ms4w/share/ogcapi/templates/html-bootstrap/" + END + +.. NOTE:: + If the `OGCAPI_HTML_TEMPLATE_DIRECTORY` environment variable is not set, or + the mapfile's WEB.METADATA parameter `oga_html_template_directory` is not set, + then no HTML output will be generated (you may see a `"Template directory not + set."` error message for `ogcapi?f=html` requests). + .. TIP:: For Ubuntu users, by default MapServer will install a sample config file at */usr/local/etc/mapserver-sample.conf*, and you must diff --git a/en/optimization/environment_variables.txt b/en/optimization/environment_variables.txt index 5d6f3c3289a..6b9919f0e0d 100644 --- a/en/optimization/environment_variables.txt +++ b/en/optimization/environment_variables.txt @@ -362,9 +362,9 @@ MS_OPENLAYERS_JS_URL pair: Environment variables; MS_TEMPPATH MS_TEMPPATH - Set the :ref:`WEB` `TEMPPATH`. - .. versionadded:: 6.0 + + Set the :ref:`WEB` `TEMPPATH`. .. index:: pair: Environment variables; MS_XMLMAPFILE_XSLT @@ -377,6 +377,32 @@ MS_XMLMAPFILE_XSLT .. index:: pair: Environment variables; PROJ_DATA + +.. index:: + pair: Environment variables; OGCAPI_HTML_TEMPLATE_DIRECTORY + +OGCAPI_HTML_TEMPLATE_DIRECTORY + .. versionadded:: 8.0 + + The `OGCAPI_HTML_TEMPLATE_DIRECTORY` environment variable can be set + to point to the template files to use for HTML output for the + OGCAPI: Features service. + + If this variable is not set, or the mapfile's WEB.METADATA parameter + `oga_html_template_directory` is not set, then no HTML output will be generated + (you may see a `"Template directory not set."` error message for `ogcapi?f=html` + requests). + + Example CONFIG file contents:: + + ENV + # + # OGC API + # + OGCAPI_HTML_TEMPLATE_DIRECTORY "/ms4w/share/ogcapi/templates/html-bootstrap/" + END + + .. seealso:: :ref:`ogcapi` & :ref:`rfc134` PROJ_DATA The `PROJ_DATA` environment variable or `CONFIG` directive can be diff --git a/requirements.txt b/requirements.txt index 7d211ec819a..4ca4b925108 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ alabaster==1.0.0 docutils==0.22.3 -sphinx==9.0.1 +sphinx==9.0.4 sphinx-copybutton==0.5.2 sphinxcontrib-jquery==4.1 --extra-index-url https://test.pypi.org/simple/ From 3740d6a025b30c9f7170278b143ddb866789c999 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Mon, 5 Jan 2026 11:58:53 -0400 Subject: [PATCH 21/64] update copyright year --- conf.py | 2 +- en/copyright.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/conf.py b/conf.py index 30f85a3629c..b2692cce69b 100644 --- a/conf.py +++ b/conf.py @@ -85,7 +85,7 @@ def __getattr__(cls, name): # General information about the project. project = u'MapServer' -copyright = u'2025, Open Source Geospatial Foundation' +copyright = u'2026, Open Source Geospatial Foundation' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the diff --git a/en/copyright.txt b/en/copyright.txt index a293122eb1c..a7ce608b2ef 100644 --- a/en/copyright.txt +++ b/en/copyright.txt @@ -15,7 +15,7 @@ MapServer Source Code :: - Copyright (c) 2008-2025 Open Source Geospatial Foundation. + Copyright (c) 2008-2026 Open Source Geospatial Foundation. Copyright (c) 1996-2008 Regents of the University of Minnesota. Permission is hereby granted, free of charge, to any person obtaining a copy From d5c2474e09df30e2788290d7a1f662f76bfbfa69 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 7 Jan 2026 11:21:24 -0400 Subject: [PATCH 22/64] [Backport branch-8-6] upgrade to Sphinx 9.1.0 release (#1058) * upgrade to Sphinx 9.1.0 release * upgrade Python MapScript version --------- Co-authored-by: Jeff McKenna --- requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index 4ca4b925108..341e338d88a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ alabaster==1.0.0 -docutils==0.22.3 -sphinx==9.0.4 +docutils==0.22.4 +sphinx==9.1.0 sphinx-copybutton==0.5.2 sphinxcontrib-jquery==4.1 --extra-index-url https://test.pypi.org/simple/ -mapscript==8.4.0 +mapscript==8.6.0 From 96705008566b26eb2488b36362fdb883c6e5f39a Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Wed, 14 Jan 2026 14:53:49 -0400 Subject: [PATCH 23/64] minor Rendermode change --- en/mapfile/layer.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/mapfile/layer.txt b/en/mapfile/layer.txt index a1162af9f3c..3cd4dbb29fb 100644 --- a/en/mapfile/layer.txt +++ b/en/mapfile/layer.txt @@ -52,7 +52,7 @@ BINDVALS Inside a layer, only a single class will be used for the rendering of a feature. Each feature is tested against each class in the order in which they are defined in the mapfile. The first class that matches - the its min/max scale constraints and its :ref:`EXPRESSION ` + its min/max scale constraints and its :ref:`EXPRESSION ` check for the current feature will be used for rendering. This can be controlled with From 445c9baddaf0e0eefe234cd4a2b35b5723d687f9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 6 Feb 2026 14:16:41 -0400 Subject: [PATCH 24/64] Add new RFC (#1060) Co-authored-by: sethg --- en/development/rfc/index.txt | 1 + en/development/rfc/ms-rfc-141.txt | 180 ++++++++++++++++++++++++++++++ 2 files changed, 181 insertions(+) create mode 100644 en/development/rfc/ms-rfc-141.txt diff --git a/en/development/rfc/index.txt b/en/development/rfc/index.txt index d82def17df3..63853ae29b4 100644 --- a/en/development/rfc/index.txt +++ b/en/development/rfc/index.txt @@ -152,3 +152,4 @@ the project. ms-rfc-138 ms-rfc-139 ms-rfc-140 + ms-rfc-141 diff --git a/en/development/rfc/ms-rfc-141.txt b/en/development/rfc/ms-rfc-141.txt new file mode 100644 index 00000000000..ecedb23bdfe --- /dev/null +++ b/en/development/rfc/ms-rfc-141.txt @@ -0,0 +1,180 @@ +.. _rfc141: + +================================================ +MS RFC 141: MapServer CONFIG MS_ONLINERESOURCE +================================================ + +:Author: Seth Girvin +:Contact: sethg@geographika.co.uk +:Last Updated: 2026-02-06 +:Version: MapServer 8.8 +:Status: Proposed + +Overview +-------- + +This RFC proposes adding a new environment variable, ``MS_ONLINERESOURCE``, to +the MapServer :ref:`CONFIG file `. + +The variable acts as a global fallback when no service-specific +``*_onlineresource`` metadata (defined in the Mapfile +:ref:`mapfile-web-metadata`) is provided. For background on service-specific +usage, see :ref:`online_resource_wms`. + +The ``*_onlineresource`` settings define the public-facing URLs that MapServer +advertises in GetCapabilities and related responses for accessing its OGC +services (WMS, WFS, WCS, OGC Features API, etc.). These URLs are consumed by clients and must resolve correctly. + +Introducing a global ``MS_ONLINERESOURCE`` addresses the following issues: + +1. Mapfiles currently require service-specific ``*_onlineresource`` values, + or an ``ows_onlineresource`` to be modified for each deployment environment + (for example, local development, staging, and production). + This RFC allows these environment-specific settings + to be defined once in a single ``CONFIG`` file. + +2. When a Mapfile does not define ``*_onlineresource`` metadata, MapServer + attempts to construct the service URL from request headers and server + variables. This approach can produce incorrect or inconsistent URLs in more + complex deployments, particularly when reverse proxies are used. As a + result, explicitly defining ``*_onlineresource`` metadata is currently + strongly recommended. + +Current Implementation +---------------------- + +When a Mapfile does not define ``*_onlineresource`` metadata, MapServer uses +the ``msBuildOnlineResource()`` function (in ``maputil.c``) to construct the +base **online resource URL**. + +The URL is generated dynamically from CGI request data and server environment +variables, and relies on CGI and proxy headers; this can produce incorrect +results in some server or reverse-proxy configurations. + +The function determines the URL components as follows: + +- **Hostname** + + - Uses ``HTTP_X_FORWARDED_HOST`` if present + - Falls back to ``SERVER_NAME`` + - If multiple forwarded hosts are provided, only the first is used + +- **Port** + + - Uses ``HTTP_X_FORWARDED_PORT`` if present + - Otherwise uses ``SERVER_PORT`` + +- **Protocol** + + - Defaults to ``http`` + - Uses ``https`` if ``HTTPS=on`` or ``SERVER_PORT=443`` + - ``HTTP_X_FORWARDED_PROTO`` overrides all other logic + +- **Path** + + - Uses ``SCRIPT_NAME`` + - Appends ``PATH_INFO`` if present + +- **Query parameters** + + - If the request is a GET request and includes a ``map=`` parameter, it is + appended as ``map=...&`` + +The port is omitted when it matches the protocol default (``80`` for HTTP, +``443`` for HTTPS); otherwise it is included explicitly. + +The resulting URL has the general form: + +:: + + [protocol]://[hostname][:port][script][pathinfo]?[map=...&] + +Examples: + +:: + + https://maps.example.com/mapserv? + https://maps.example.com/mapserv/ogc?map=/data/example.map& + http://localhost:8080/cgi-bin/mapserv? + +If the hostname, port, or script name cannot be determined, the function +fails with a CGI error: + +:: + + Impossible to establish server URL. + + +Proposed Implementation +----------------------- + +Users will be able to add the new environment variable to the ``CONFIG`` file as follows: + +:: + + CONFIG + ENV + MS_ONLINERESOURCE "http://localhost/test/" + +Notes: + +- Existing ``*_onlineresource`` metadata in a Mapfile will take precedence over + the ``CONFIG`` setting. + +- If ``MS_ONLINERESOURCE`` is set to an empty string, the resulting base URL + will be empty. Users are responsible for providing a valid URL for their + environment. + +- There are no plans to support separate ``MS_ONLINERESOURCE`` values for + different services. While this could be useful in some scenarios, having + multiple variables such as ``MS_WMS_ONLINERESOURCE`` or + ``MS_WFS_ONLINERESOURCE`` would add unnecessary complexity. + +Testing +------- + +The ``msautotests`` test suite will be updated to validate various ``CONFIG`` +and Mapfile setups, including: + +- Cases with and without a ``MS_ONLINERESOURCE`` setting +- The case where ``MS_ONLINERESOURCE`` is set to an empty string + +Security Concerns +----------------- + +There are no known security concerns at the moment. + +MapScript +--------- + +MapScript already supports ``CONFIG`` files, so no changes are required. + +Example usage: + +:: + + # Create a new map object with a CONFIG file + config = mapscript.configObj(r"C:\MapServer\apps\mapserver.conf") + map = mapscript.mapObj(r"C:\MapServer\my.map", config) + + # The CONFIG file can also be passed to the fromstring helper method + mapscript.fromstring("MAP NAME TEST END", r"C:/MapfileResources/", config_file) + + +Affected files +-------------- + ++ ``maputil.c`` + +Ticket Reference +---------------- + +TODO + +Documentation +------------- + +Voting History +-------------- + +TODO \ No newline at end of file From 99f053deb4dc812a63c3238bb05ec6bfc9f299d6 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Fri, 6 Feb 2026 14:43:19 -0400 Subject: [PATCH 25/64] update FOSS4G link --- _templates/indexsidebar.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_templates/indexsidebar.html b/_templates/indexsidebar.html index 01e37676eb1..38c9144c704 100644 --- a/_templates/indexsidebar.html +++ b/_templates/indexsidebar.html @@ -16,7 +16,7 @@

Navigation

MapServer is a project of the Open Source Geospatial Foundation.

- + FOSS4G

From ab8a8e61741f02e1cc8a1b5a223bccf8e9d585a0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 27 Feb 2026 09:55:29 +0100 Subject: [PATCH 26/64] [Backport branch-8-6] Update RFC141 with implementation details and voting (#1065) * Update RFC with implementation details and voting * Add doc link and update status --------- Co-authored-by: sethg --- en/development/rfc/ms-rfc-141.txt | 66 +++++++++++++++++++++++++++---- 1 file changed, 59 insertions(+), 7 deletions(-) diff --git a/en/development/rfc/ms-rfc-141.txt b/en/development/rfc/ms-rfc-141.txt index ecedb23bdfe..4242e18c8e2 100644 --- a/en/development/rfc/ms-rfc-141.txt +++ b/en/development/rfc/ms-rfc-141.txt @@ -6,9 +6,9 @@ MS RFC 141: MapServer CONFIG MS_ONLINERESOURCE :Author: Seth Girvin :Contact: sethg@geographika.co.uk -:Last Updated: 2026-02-06 +:Last Updated: 2026-02-27 :Version: MapServer 8.8 -:Status: Proposed +:Status: Adopted Overview -------- @@ -114,12 +114,44 @@ Users will be able to add the new environment variable to the ``CONFIG`` file as CONFIG ENV - MS_ONLINERESOURCE "http://localhost/test/" + MS_ONLINERESOURCE "https://maps.example.com/" + END + MAPS + EXAMPLE "/data/mapfiles/example.map" + END + END + +When accessing the Mapfile using its key (``EXAMPLE`` in the above example), a request +such as https://maps.example.com/example/?service=wms&version=1.3.0&request=GetCapabilities will return a +GetCapabilities response with the base URL set to ``https://maps.example.com/``. + +.. code-block:: xml + + + + WMS + Example + + +When accessing a Mapfile using the ``&map=`` parameter, this will be appended to the ``MS_ONLINERESOURCE`` URL. +For example, a request to https://maps.example.com/?map=/data/mapfiles/example.map&service=wms&version=1.3.0&request=GetCapabilities +will return a GetCapabilities response including the following: + +.. code-block:: xml + + + + + + +For OGC API URLs requests such as https://maps.example.com/example/ogcapi/?f=json will return URLs in +the format https://maps.example.com/example/ogcapi/collections?f=html. Notes: -- Existing ``*_onlineresource`` metadata in a Mapfile will take precedence over - the ``CONFIG`` setting. +- In any of the above examples, if the ``example.map`` contained ``ows_onlineresource`` + (or a more specific variant such as ``wms_onlineresource`` or ``oga_onlineresource``) + then these would take precedence over the ``CONFIG`` setting and be used instead. - If ``MS_ONLINERESOURCE`` is set to an empty string, the resulting base URL will be empty. Users are responsible for providing a valid URL for their @@ -130,6 +162,21 @@ Notes: multiple variables such as ``MS_WMS_ONLINERESOURCE`` or ``MS_WFS_ONLINERESOURCE`` would add unnecessary complexity. +- ``?`` will be appended to the end of the URL for building OWS URLs, to ensure that query parameters are appended correctly. + +- MAP keys are resolved relative to MS_ONLINERESOURCE, and only one root URL can be configured per CGI instance. + For example, you cannot simultaneously use: + + + https://maps.example.com/dev/example/ + + https://maps.example.com/prod/example/ + + or separate hostnames such as: + + + https://wms.example.com + + https://wfs.example.com + + To support these scenarios, you would need to deploy separate MapServer CGI applications with different CONFIG files. + Testing ------- @@ -138,6 +185,7 @@ and Mapfile setups, including: - Cases with and without a ``MS_ONLINERESOURCE`` setting - The case where ``MS_ONLINERESOURCE`` is set to an empty string +- Use of ``map=`` parameter in requests Security Concerns ----------------- @@ -169,12 +217,16 @@ Affected files Ticket Reference ---------------- -TODO ++ https://github.com/MapServer/MapServer/pull/7434 Documentation ------------- ++ https://github.com/MapServer/MapServer-documentation/pull/1062 + Voting History -------------- -TODO \ No newline at end of file ++1 from PSC members TomK, SethG, MikeS, DanielM, JeromeB, SteveL, EvenR, JeffM, JukkaR + +See https://lists.osgeo.org/pipermail/mapserver-dev/2026-February/017342.html for discussion and voting. From 8117dcef9ec032c376e46bd7b3eda843a8128c32 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 17 Mar 2026 18:21:52 +0100 Subject: [PATCH 27/64] Add note about SLD_VERSION (#1069) Co-authored-by: sethg --- en/ogc/wms_server.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/en/ogc/wms_server.txt b/en/ogc/wms_server.txt index 1a36eabf310..da0983e4886 100644 --- a/en/ogc/wms_server.txt +++ b/en/ogc/wms_server.txt @@ -565,7 +565,9 @@ The following are valid parameters for this GetLegendGraphic request: - **SLD_BODY** - (Optional) The body (code) of the SLD, instead of specifying a URL (as in the 'SLD' parameter). - - **SLD_VERSION** - (Optional) The SLD version. + - **SLD_VERSION** - (Optional) Version of the SLD specification used when + SLD or SLD_BODY is provided. When using WMS VERSION=1.3.0, MapServer + requires this parameter, and it must be set to "1.1.0". - **SCALE** - (Optional) Specify a scale so that only layers that fall into that scale will have a legend. From d8c837379357af2f458e497bbaf2fe1215e69104 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 23 Mar 2026 15:57:05 -0300 Subject: [PATCH 28/64] [Backport branch-8-6] update for 8.6.1 release [build_translations] (#1071) --------- Co-authored-by: Jeff McKenna --- conf.py | 2 +- en/announcements/announcements_archive.txt | 14 ++++++++++++++ en/development/changelog/changelog-8-6.txt | 20 ++++++++++++++++++++ en/development/documentation.txt | 4 ++-- en/download.txt | 2 +- en/download_archives.txt | 2 ++ en/include/announcements.inc | 16 ++++++++++++++++ en/ogc/filter_encoding.txt | 4 ++-- en/ogc/sld.txt | 4 ++-- en/ogc/sos_server.txt | 2 +- en/ogc/wcs_server.txt | 10 +++++----- en/output/kml_output.txt | 8 ++++---- en/output/svg.txt | 22 +++++++++++----------- 13 files changed, 81 insertions(+), 29 deletions(-) diff --git a/conf.py b/conf.py index b2692cce69b..f41d0eefb5f 100644 --- a/conf.py +++ b/conf.py @@ -94,7 +94,7 @@ def __getattr__(cls, name): # The short X.Y version. version = '8.6' # The full version, including alpha/beta/rc tags. -release = '8.6.0' +release = '8.6.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None diff --git a/en/announcements/announcements_archive.txt b/en/announcements/announcements_archive.txt index a2fdc849b14..8039a4d03a9 100644 --- a/en/announcements/announcements_archive.txt +++ b/en/announcements/announcements_archive.txt @@ -4,6 +4,20 @@ MapServer Announcement Archives ***************************************************************************** +**2026-03-23 - MapServer 8.6.1 is released** + +.. important:: + Security release available + +The maintenance release of MapServer 8.6.1 has been issued in order to fix +a security flaw in the SLD parser. +See the :ref:`changelog ` for the list of changes. +You may also review this `Security Advisory `__, +as well as MapServer's `Security Policy `__. +As security for the 7.6 branch has ended, and branches 8.4, 8.2 & 8.0 are not supported, +all users are strongly encouraged to upgrade to the MapServer 8.6.1 release (see the +:ref:`Migration Guide `). + **2025-12-03 - MapServer 8.6.0 is released** The major version MapServer 8.6 has been released. The list of diff --git a/en/development/changelog/changelog-8-6.txt b/en/development/changelog/changelog-8-6.txt index 7b51da93965..8a7d33efa4c 100644 --- a/en/development/changelog/changelog-8-6.txt +++ b/en/development/changelog/changelog-8-6.txt @@ -7,6 +7,26 @@ The summary of major changes for this release can be found in the `HISTORY.md `__ file from the source directory. +.. _changelog-8-6-1: + +Changes from 8.6.0 to 8.6.1 +=========================== + +* msSLDParseRasterSymbolizer(): fix potential heap buffer overflow ( `#7461 `__ ) (github-actions[bot]) : `fb08dad `__ +* mapwcs20.cpp: remove debug fprintf (Even Rouault) : `90bae9f `__ +* Fix C5208 warning ( `#7455 `__ ) (github-actions[bot]) : `9698439 `__ +* Define _USE_MATH_DEFINES so that M_PI is available when include math.h (Even Rouault) : `ba08945 `__ +* GetFeatureInfo with IDENTIFY CLASSAUTO: take into account SYMBOL.ANCHORPOINT (Even Rouault) : `90590e5 `__ +* No longer depend on GDAL's cpl_port.h MIN/MAX/ABS macros (Even Rouault) : `a2cedd5 `__ +* [Backport branch-8-6] CI: upgrade PHPUnit version to 13 ( `#7428 `__ ) (github-actions[bot]) : `e272938 `__ +* WCS 2.0: fix issue when input raster in a rotated pole lon/lat CRS with lon_0 > 180 ( `#7429 `__ ) (github-actions[bot]) : `ff1f23e `__ +* [Backport branch-8-6] Contour: fix 2 reprojection related issues ( `#7424 `__ ) (github-actions[bot]) : `045cced `__ +* Fix memory allocation for bool ( `#7419 `__ ) (github-actions[bot]) : `9bba2a2 `__ +* Build: fix build against GDAL 3.13.0dev ( `#7416 `__ ) (github-actions[bot]) : `883a7a7 `__ +* UVRaster: fix WMS-Time support on layers with TILEINDEX pointing to a shapefile ( `#7411 `__ ) (github-actions[bot]) : `1f754fc `__ +* update copyright year (Jeff McKenna) : `3cd4fa0 `__ +* WMS GetCapabilities response: use group title and abstract when using wms_layer_group instead of GROUP ( `#7403 `__ ) (github-actions[bot]) : `7a49268 `__ + .. _changelog-8-6-0: Changes from 8.6.0-rc1 to 8.6.0 diff --git a/en/development/documentation.txt b/en/development/documentation.txt index 1376a3e690f..8de249a84da 100644 --- a/en/development/documentation.txt +++ b/en/development/documentation.txt @@ -8,7 +8,7 @@ :Contact: hobu.inc at gmail.com :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2025-06-27 +:Last Updated: 2026-03-23 .. contents:: Table of Contents :depth: 4 @@ -272,7 +272,7 @@ Installing and Using Sphinx for rst-html Generation python -m pip install -r requirements.txt -#. install MacTex from http://www.tug.org/mactex/ if you want to build pdfs +#. install MacTex from https://www.tug.org/mactex/ if you want to build pdfs #. to process the documentation, from the MapServer /MapServer-documentation directory, run: diff --git a/en/download.txt b/en/download.txt index 147f211fa0b..38c83b99edc 100644 --- a/en/download.txt +++ b/en/download.txt @@ -18,7 +18,7 @@ Current Release(s) * MapServer - * **2025-12-03** MapServer-8.6.0 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` + * **2026-03-23** MapServer-8.6.1 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` * **2025-09-19** MapServer-8.4.1 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` * **2024-09-02** MapServer-8.2.2 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` * **2024-06-11** MapServer-8.0.2 `tar.gz `__ | :ref:`Changelog ` diff --git a/en/download_archives.txt b/en/download_archives.txt index 0118a877630..d8e172047ff 100644 --- a/en/download_archives.txt +++ b/en/download_archives.txt @@ -15,6 +15,8 @@ Past Releases .............................................................................. +* **2026-03-23** MapServer-8.6.1 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` + * **2025-12-03** MapServer-8.6.0 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` * **2025-09-19** MapServer-8.4.1 `tar.gz `__ | `.zip `__ | :ref:`Changelog ` diff --git a/en/include/announcements.inc b/en/include/announcements.inc index 15f0b650260..4406a4a0d35 100644 --- a/en/include/announcements.inc +++ b/en/include/announcements.inc @@ -1,3 +1,19 @@ +**2026-03-23 - MapServer 8.6.1 is released** + +.. important:: + Security release available + +The maintenance release of MapServer 8.6.1 has been issued in order to fix +a security flaw in the SLD parser. +See the :ref:`changelog ` for the list of changes. +You may also review this `Security Advisory `__, +as well as MapServer's `Security Policy `__. +As security for the 7.6 branch has ended, and branches 8.4, 8.2 & 8.0 are not supported, +all users are strongly encouraged to upgrade to the MapServer 8.6.1 release (see the +:ref:`Migration Guide `). + +Head to :ref:`download` to obtain a copy. + **2025-12-03 - MapServer 8.6.0 is released** The major version MapServer 8.6 has been released. The list of diff --git a/en/ogc/filter_encoding.txt b/en/ogc/filter_encoding.txt index 5dc0d393648..8e13bde7c55 100644 --- a/en/ogc/filter_encoding.txt +++ b/en/ogc/filter_encoding.txt @@ -10,7 +10,7 @@ :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com :Author: Yewondwossen Assefa -:Last Updated: 2024-06-27 +:Last Updated: 2026-03-23 .. contents:: Table of Contents :depth: 2 @@ -44,7 +44,7 @@ Links to SLD-related Information - `MapServer OGC Web Services Workshop`_. - `Open GIS Consortium (OGC) home page`_. -.. _`Filter Encoding Implementation Specification`: https://www.ogc.org/standard/filter/ +.. _`Filter Encoding Implementation Specification`: https://www.ogc.org/standards/filter/ .. _`Open GIS Consortium (OGC) home page`: https://www.ogc.org .. _`MapServer OGC Web Services Workshop`: https://mapserver.github.io/ms-ogc-workshop/ diff --git a/en/ogc/sld.txt b/en/ogc/sld.txt index a17bebdcc84..58a02c53014 100644 --- a/en/ogc/sld.txt +++ b/en/ogc/sld.txt @@ -10,7 +10,7 @@ :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com :Author: Yewondwossen Assefa -:Last Updated: 2025-08-18 +:Last Updated: 2026-03-23 .. contents:: :depth: 2 @@ -42,7 +42,7 @@ Links to SLD-related Information - `MapServer OGC Web Services Workshop`_. - `Open GIS Consortium (OGC) home page`_. -.. _`Styled Layer Descriptor Implementation Specification`: https://www.ogc.org/standard/sld/ +.. _`Styled Layer Descriptor Implementation Specification`: https://www.ogc.org/standards/sld/ .. _`MapServer OGC Web Services Workshop`: https://mapserver.github.io/ms-ogc-workshop/ .. _`Open GIS Consortium (OGC) home page`: https://www.ogc.org diff --git a/en/ogc/sos_server.txt b/en/ogc/sos_server.txt index aaecc1a2a86..95f767b4bc1 100644 --- a/en/ogc/sos_server.txt +++ b/en/ogc/sos_server.txt @@ -42,7 +42,7 @@ Links to SOS-Related Information -------------------------------- - `SOS specification documents `__ -- OGC's `Sensor Web Enablement `__ working group +- OGC's `Sensor Web Enablement `__ overview Relevant Definitions -------------------- diff --git a/en/ogc/wcs_server.txt b/en/ogc/wcs_server.txt index 9fce168ea5c..6917faee2a5 100644 --- a/en/ogc/wcs_server.txt +++ b/en/ogc/wcs_server.txt @@ -13,7 +13,7 @@ :Contact: stephan.meissl at eox.at :Author: Fabian Schindler :Contact: fabian.schindler at eox.at -:Last Updated: 2025-08-02 +:Last Updated: 2026-03-23 .. contents:: Table of Contents :depth: 2 @@ -1781,8 +1781,8 @@ Arcview. WCS 2.0 Application Profile - Earth Observation (EO-WCS) ======================================================== -OGC is currently discussing the adoption of an Earth Observation -(EO) Application Profile for WCS 2.0 (EO-WCS) (see `public RFC on EO-WCS`_). +OGC adopted an Earth Observation +(EO) Application Profile for WCS 2.0 (EO-WCS) (see `Earth Observation Application Profile`_). For an implementation please refer to the Open Source project `EOxServer`_ which already implements this proposed EO-WCS based on MapServer. @@ -1837,8 +1837,8 @@ Service of Canada. .. _`WCS 2.0 tests in msautotest`: https://github.com/MapServer/MapServer/blob/main/msautotest/wxs/wcs_simple.map .. _`WCS GRIB output in msautotest`: https://github.com/MapServer/MapServer/blob/main/msautotest/wxs/wcs_grib_output.map .. _`MS RFC 67`: https://mapserver.org/development/rfc/ms-rfc-67.html -.. _`public RFC on EO-WCS`: https://www.ogc.org/standards/requests/81 -.. _`EOxServer`: http://eoxserver.org +.. _`Earth Observation Application Profile`: https://docs.ogc.org/is/10-140r2/10-140r2.html +.. _`EOxServer`: https://eoxserver.org .. _`WCS DescribeCoverage live example`: https://demo.mapserver.org/cgi-bin/wcs?SERVICE=WCS&VERSION=1.0.0&REQUEST=DescribeCoverage&COVERAGE=modis .. _`WCS GetCapabilities live example`: https://demo.mapserver.org/cgi-bin/wcs?SERVICE=WCS&VERSION=1.0.0&REQUEST=GetCapabilities .. _`WCS GetCoverage live example`: https://demo.mapserver.org/cgi-bin/wcs?SERVICE=WCS&VERSION=1.0.0&REQUEST=GetCoverage&COVERAGE=modis-001&CRS=EPSG:26915&BBOX=159707,4597395,1400707,5501395&WIDTH=400&HEIGHT=300&FORMAT=GEOTIFF_RGB diff --git a/en/output/kml_output.txt b/en/output/kml_output.txt index 6f86e443cc3..e4821b7c103 100755 --- a/en/output/kml_output.txt +++ b/en/output/kml_output.txt @@ -8,7 +8,7 @@ KML Output :Authors: Thomas.Bonfort (thomas.bonfort at gmail.com) :Authors: Yewondwossen Assefa :Authors: Michael Smith (michael.smith at usace.army.mil) -:Last Updated: 2019-12-13 +:Last Updated: 2026-03-23 Introduction ------------------------------------------------------------------------------- @@ -255,13 +255,13 @@ General notes on layers - The user can use metadata KML_ALTITUDEMODE to specify how altitude components in the element are interpreted. Possible values are: absolute, relativeToGround, - clampToGround. http://code.google.com/apis/kml/documentation/kmlreference.html#altitudemode + clampToGround. https://developers.google.com/kml/documentation/kmlreference?csw=1#altitudemode - The user can use metedata KML_EXTRUDE to specify whether to connect the LinearRing to the - ground. http://code.google.com/apis/kml/documentation/kmlreference.html#tessellate + ground. https://developers.google.com/kml/documentation/kmlreference?csw=1#tessellate - The user can use metedata KML_TESSELLATE to specify whether to allow the LinearRing to follow the - terrain. http://code.google.com/apis/kml/documentation/kmlreference.html#extrude + terrain. https://developers.google.com/kml/documentation/kmlreference?csw=1#extrude - The user can specify an attribute to be used as the elevation value using a layer level metedata: 'kml_elevation_attribute' ''. The value will be used as the z value when the diff --git a/en/output/svg.txt b/en/output/svg.txt index f10244f79a6..852905a4b20 100644 --- a/en/output/svg.txt +++ b/en/output/svg.txt @@ -406,19 +406,19 @@ Below is a sample goSVG file of a point layer with labels: .. _`World Wide Web Consortium's (W3C) Scalable Vector Graphics (SVG) 1.1 Specification`: http://www.w3.org/TR/SVG/ .. _`SVG 1.1 specification`: http://www.w3.org/TR/SVG/ .. _`SVG Discussion Paper`: https://old.carto.net/papers/svg/index_e.shtml -.. _`SVG Tiny Profile`: http://www.w3.org/TR/2003/REC-SVGMobile-20030114/ -.. _`polyline`: http://www.w3.org/TR/SVG/shapes.html#PolylineElement -.. _`stroke-dasharray`: http://www.w3.org/TR/SVG/painting.html -.. _`polygon`: http://www.w3.org/TR/SVG/shapes.html#PolygonElement -.. _`patterns`: http://www.w3.org/TR/SVG/pservers.html#Patterns -.. _`text`: http://www.w3.org/TR/SVG/text.html#TextElement -.. _`font-family`: http://www.w3.org/TR/SVG/text.html#FontFamilyProperty -.. _`font-style`: http://www.w3.org/TR/SVG/text.html#FontStyleProperty -.. _`font-weight`: http://www.w3.org/TR/SVG/text.html#FontWeightProperty -.. _`list of SVG implementations`: http://www.w3.org/Graphics/SVG/SVG-Implementations +.. _`SVG Tiny Profile`: https://www.w3.org/TR/2003/REC-SVGMobile-20030114/ +.. _`polyline`: https://www.w3.org/TR/SVG/shapes.html#PolylineElement +.. _`stroke-dasharray`: https://www.w3.org/TR/SVG/painting.html +.. _`polygon`: https://www.w3.org/TR/SVG/shapes.html#PolygonElement +.. _`patterns`: https://www.w3.org/TR/SVG/pservers.html#Patterns +.. _`text`: https://www.w3.org/TR/SVG/text.html#TextElement +.. _`font-family`: https://www.w3.org/TR/SVG/text.html#FontFamilyProperty +.. _`font-style`: https://www.w3.org/TR/SVG/text.html#FontStyleProperty +.. _`font-weight`: https://www.w3.org/TR/SVG/text.html#FontWeightProperty +.. _`list of SVG implementations`: https://www.w3.org/Graphics/SVG/SVG-Implementations .. _`Adobe Viewer plugin`: http://www.adobe.com/svg/viewer/install/main.html .. _`here`: http://www.svgopen.org/2004/papers/goSVGauthoringtool-1/ .. _`G-XML`: http://gisclh.dpc.or.jp/gxml/contents-e/index.htm -.. _`SVG 1.1`: http://www.w3.org/TR/SVG/ +.. _`SVG 1.1`: https://www.w3.org/TR/SVG/ From d5c03bebcac94b947dbdc793a96e3b7083928b8c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 11:40:20 -0300 Subject: [PATCH 29/64] [Backport branch-8-6] mention security policy & vulnerabilities (#1073) * mention security policy & vulnerabilities * minor --------- Co-authored-by: Jeff McKenna --- en/MIGRATION_GUIDE.txt | 10 +++++++++- en/development/bugs.txt | 9 +++++++-- en/documentation.txt | 7 ++++++- en/mapscript/index.txt | 2 +- en/mapscript/mapscript-api/index.rst | 2 +- en/ogc/wms_client.txt | 4 ++-- 6 files changed, 26 insertions(+), 8 deletions(-) diff --git a/en/MIGRATION_GUIDE.txt b/en/MIGRATION_GUIDE.txt index 58e1c9f0f2c..ee52ee9d5db 100644 --- a/en/MIGRATION_GUIDE.txt +++ b/en/MIGRATION_GUIDE.txt @@ -6,17 +6,25 @@ MapServer Migration Guide ***************************************************************************** -:Last Updated: 2025-11-19 +:Last Updated: 2026-03-24 .. contents:: Table of Contents :depth: 2 :backlinks: top +.. tip:: + + Review MapServer's `Security Policy `__, + and also review any recent published `vulnerabilities `__. + .. _migration-8-6: MapServer 8.4 to 8.6 Migration ============================== +- The 8.6.1 release includes a fix for a security flaw in the SLD parser + (see MapServer's `Security Advisory `__) + - You can now enable an automatically generated index page, that lists all of your OGC services and endpoints, for each mapfile that you defined in your CONFIG file. To enable the index, add `MS_INDEX_TEMPLATE_DIRECTORY` diff --git a/en/development/bugs.txt b/en/development/bugs.txt index e1df4eac753..184f4db2905 100644 --- a/en/development/bugs.txt +++ b/en/development/bugs.txt @@ -16,6 +16,11 @@ Please keep the following issues in mind when submitting a bug/issue: Security/vulnerability reports should not be submitted through GitHub, but instead please send your report to the email address: `mapserver-security nospam @ osgeo.org` (remove the blanks and 'nospam'). + +.. tip:: + + Review MapServer's `Security Policy `__, + and also review any recent published `vulnerabilities `__. 1. Set a meaningful yet reasonably brief title of your ticket. @@ -36,7 +41,7 @@ Please keep the following issues in mind when submitting a bug/issue: The most important thing when reporting a bug is to boil down a minimum example that is needed to reproduce the bug. That means a minimal mapfile + -any data files it depends on. Remove everything from the map file that isn't +any data files it depends on. Remove everything from the mapfile that isn't needed to reproduce the bug. The developers often dislike having to spend the first 30 minutes working on a @@ -44,7 +49,7 @@ bug, having to fix paths, remove unnecessary layers, removing references to external symbols or fonts that were not included or even needed and otherwise doctoring your test case to get it to a point when they can actually use it. -If the bug is easily demonstrated with ":ref:`map2img`", without the need to +If the bug is easily demonstrated with :ref:`map2img`, without the need to setup a proper web service and test it through http, then please show it that way. If a standalone :ref:`mapscript` script can demonstrate a problem without it having to be a web service, likewise submit it that way. If your problem diff --git a/en/documentation.txt b/en/documentation.txt index 3ef249a67a2..8ce701f9419 100644 --- a/en/documentation.txt +++ b/en/documentation.txt @@ -19,7 +19,12 @@ :height: 15 :width: 15 :alt: PDF icon - :target: https://download.osgeo.org/mapserver/docs/MapServer.pdf + :target: https://download.osgeo.org/mapserver/docs/MapServer.pdf + +.. tip:: + + Review MapServer's `Security Policy `__, + and also review any recent published `vulnerabilities `__. Introduction ....................................................... diff --git a/en/mapscript/index.txt b/en/mapscript/index.txt index 0abd9e193be..69ddd4a58d9 100644 --- a/en/mapscript/index.txt +++ b/en/mapscript/index.txt @@ -10,7 +10,7 @@ Since the MapServer 8.0.0 release PHP support is only available through MapServer's :ref:`SWIG API `. Supported versions are PHP 8.5 and - PHP 8.4 with MapServer 8.6.0 + PHP 8.4 with MapServer 8.6.1 .. toctree:: :maxdepth: 2 diff --git a/en/mapscript/mapscript-api/index.rst b/en/mapscript/mapscript-api/index.rst index 0bdd728cff7..2f8db486b07 100644 --- a/en/mapscript/mapscript-api/index.rst +++ b/en/mapscript/mapscript-api/index.rst @@ -47,7 +47,7 @@ meaningless, and even dangerous attributes might be exposed by objects. Since the MapServer 8.0.0 release PHP support is only available through MapServer's :ref:`SWIG API `. Supported versions are PHP 8.5 and - PHP 8.4 with MapServer 8.6.0 + PHP 8.4 with MapServer 8.6.1 ============================================================================= Appendices diff --git a/en/ogc/wms_client.txt b/en/ogc/wms_client.txt index da27e9f4079..6625b92d597 100755 --- a/en/ogc/wms_client.txt +++ b/en/ogc/wms_client.txt @@ -9,7 +9,7 @@ :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2024-07-08 +:Last Updated: 2026-03-24 .. contents:: Table of Contents :depth: 4 @@ -313,7 +313,7 @@ Optional Layer Parameters and Metadata - basic - digest - ntlm - - any (the underlying http library picks the best among the opotions supported by the remote server) + - any (the underlying http library picks the best among the options supported by the remote server) - anysafe (the underlying http library picks only safe methods among the options supported by the remote server) .. code-block:: mapfile From c11348b63003ab8366064b8eff61254adc4b8573 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Wed, 25 Mar 2026 14:48:17 -0300 Subject: [PATCH 30/64] minor security wording [build_translations] --- en/MIGRATION_GUIDE.txt | 4 ++-- en/development/bugs.txt | 2 +- en/documentation.txt | 2 +- en/faq.txt | 3 ++- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/en/MIGRATION_GUIDE.txt b/en/MIGRATION_GUIDE.txt index ee52ee9d5db..dcbb2bcb276 100644 --- a/en/MIGRATION_GUIDE.txt +++ b/en/MIGRATION_GUIDE.txt @@ -6,7 +6,7 @@ MapServer Migration Guide ***************************************************************************** -:Last Updated: 2026-03-24 +:Last Updated: 2026-03-25 .. contents:: Table of Contents :depth: 2 @@ -15,7 +15,7 @@ MapServer Migration Guide .. tip:: Review MapServer's `Security Policy `__, - and also review any recent published `vulnerabilities `__. + and also check if there are any recently published `vulnerabilities `__. .. _migration-8-6: diff --git a/en/development/bugs.txt b/en/development/bugs.txt index 184f4db2905..e660a94b543 100644 --- a/en/development/bugs.txt +++ b/en/development/bugs.txt @@ -20,7 +20,7 @@ Please keep the following issues in mind when submitting a bug/issue: .. tip:: Review MapServer's `Security Policy `__, - and also review any recent published `vulnerabilities `__. + and also check if there are any recently published `vulnerabilities `__. 1. Set a meaningful yet reasonably brief title of your ticket. diff --git a/en/documentation.txt b/en/documentation.txt index 8ce701f9419..42cfda76ad1 100644 --- a/en/documentation.txt +++ b/en/documentation.txt @@ -24,7 +24,7 @@ .. tip:: Review MapServer's `Security Policy `__, - and also review any recent published `vulnerabilities `__. + and also check if there are any recently published `vulnerabilities `__. Introduction ....................................................... diff --git a/en/faq.txt b/en/faq.txt index 77a2401c28d..b635e16029b 100644 --- a/en/faq.txt +++ b/en/faq.txt @@ -638,4 +638,5 @@ What versions of MapServer will be patched for security vulnerabilities? The MapServer team will provide security patches for the two most recent release series. Patches will be provided for a period of three years from the release date of the current series. Review the MapServer `Security Policy `__ -for more details. \ No newline at end of file +for more details. You can also check if there are any recently published MapServer +`vulnerabilities `__. \ No newline at end of file From fff49c7a1e4e1292d424ad52b91378837942ef57 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Fri, 27 Mar 2026 16:06:47 -0300 Subject: [PATCH 31/64] add initial spelling wordlist --- conf.py | 3 + en/cgi/controls.txt | 4 +- en/development/changelog/changelog-8-0.txt | 2 +- en/development/changelog/changelog-8-4.txt | 4 +- en/development/rfc/ms-rfc-124.txt | 2 +- en/development/rfc/ms-rfc-65.txt | 4 +- en/development/rfc/ms-rfc-91.txt | 4 +- en/input/vector/contour.txt | 4 +- en/spelling_wordlist.md | 224 +++++++++++++++++++++ 9 files changed, 239 insertions(+), 12 deletions(-) create mode 100644 en/spelling_wordlist.md diff --git a/conf.py b/conf.py index f41d0eefb5f..80210871c3a 100644 --- a/conf.py +++ b/conf.py @@ -128,6 +128,9 @@ def __getattr__(cls, name): # check for broken reference targets nitpicky = True +# set filename used by spelling extension +spelling_word_list_filename='spelling_wordlist.md' + # Options for HTML output # ----------------------- diff --git a/en/cgi/controls.txt b/en/cgi/controls.txt index f308af5808d..ee4053f0880 100644 --- a/en/cgi/controls.txt +++ b/en/cgi/controls.txt @@ -430,7 +430,7 @@ SCALE [number] - deprecated SEARCHMAP It is possible to do pan/zoom interfaces using querymaps. In these cases - you will likey want information about the contents of the new map rather + you will likely want information about the contents of the new map rather than the previous map which is the normal way queries work. When searchmap is specified the new map is created and it's extent is used to query layers. Useful with NQUERY mode only. @@ -521,7 +521,7 @@ this is fairly straightforward, and depends on what version of MapServer you are using. One potentially very powerful use of this ability to change mapfile parameters through a URL involves changing class expressions on-the-fly. `VALIDATION` is used to control -run-time substition. Try it out. +run-time substitution. Try it out. .. warning:: diff --git a/en/development/changelog/changelog-8-0.txt b/en/development/changelog/changelog-8-0.txt index f45129748fa..51b9e6d5a55 100644 --- a/en/development/changelog/changelog-8-0.txt +++ b/en/development/changelog/changelog-8-0.txt @@ -745,7 +745,7 @@ Changes from 7.6.4 to 8.0.0-beta1 * remove USE_PROJ check (Jeff McKenna) : `d11da8d `__ * Contour layer: take into account nodata value from GDAL raster (fixes `#6182 `__ ) (Even Rouault) : `a484345 `__ * FindOracle.cmake: complementary fix to find OCI 19 (Even Rouault) : `9bd402c `__ -* WFS 1.1/2.0: do not write empty ows:WGS84BoundingBox element when layer extent is unkown, which is non-conformant with WFS XML schema (fix `#6170 `__ ) (Even Rouault) : `4a5bc7c `__ +* WFS 1.1/2.0: do not write empty ows:WGS84BoundingBox element when layer extent is unknown, which is non-conformant with WFS XML schema (fix `#6170 `__ ) (Even Rouault) : `4a5bc7c `__ * remove myself from travis notifications (Thomas Bonfort) : `2502fb3 `__ * Metadata: remove unused function and erroneous default date output (Tom Kralidis) : `c0d2b75 `__ * Metadata: use attribution_title if available ( `#6166 `__ ) (Tom Kralidis) : `d319595 `__ diff --git a/en/development/changelog/changelog-8-4.txt b/en/development/changelog/changelog-8-4.txt index 38f48954702..ad0b3527cc5 100644 --- a/en/development/changelog/changelog-8-4.txt +++ b/en/development/changelog/changelog-8-4.txt @@ -81,12 +81,12 @@ Changes from 8.2.2 to 8.4.0-beta1 * [CI] add PHP 8.4 to workflows ( `#7196 `__ ) (Jeff McKenna) : `2fb2911 `__ * WCS 1.0: do not emit twice HTTP headers in case of error on SECTION parameter of GetCapabilities (Even Rouault) : `8c37d02 `__ * Update Windows CI and Python Versions ( `#7171 `__ ) (Seth G) : `cb21366 `__ -* msProjectRect(): cache whether source projection is polar when repeatdly projecting from it ( `#7190 `__ ) (Even Rouault) : `47f19e3 `__ +* msProjectRect(): cache whether source projection is polar when repeatedly projecting from it ( `#7190 `__ ) (Even Rouault) : `47f19e3 `__ * Allow <> to be used as a logical operator in expressions ( `#7182 `__ ) (Seth G) : `751fdde `__ * mapuvraster: fix hDS file descriptor leak in msUVRASTERLayerGetExtent (Sander Jansen) : `e133f4e `__ * Make interpolation and countour compatible of GDAL 3.10 (Even Rouault) : `7fc1930 `__ * Allow encryption key files to use paths relative to a Mapfile ( `#7181 `__ ) (Seth G) : `ea2f4b2 `__ -* SLD Filters missing due to logicial keywords in expressions ( `#7178 `__ ) (Seth G) : `4726b9c `__ +* SLD Filters missing due to logical keywords in expressions ( `#7178 `__ ) (Seth G) : `4726b9c `__ * Update to check-jsonschema and fix URL (sethg) : `31d66d7 `__ * SLD: fix having a TextSymbolizer rule after a PolygonSymbolizer one (Even Rouault) : `12dfa91 `__ * Avoid hanging loop when applying SLD with duplicated NamedLayers ( `#7166 `__ ) (Seth G) : `e6a3c9e `__ diff --git a/en/development/rfc/ms-rfc-124.txt b/en/development/rfc/ms-rfc-124.txt index d39d3c41f51..61f3b5cd018 100644 --- a/en/development/rfc/ms-rfc-124.txt +++ b/en/development/rfc/ms-rfc-124.txt @@ -29,7 +29,7 @@ following issues have been identified: present in the request. 3. **Style layering**: When several styling rules apply to a feature, only the - first one is taken into account, instead of appliyng them all by following + first one is taken into account, instead of applying them all by following the *painters model* as described in Symbology Encoding specification. 4. **Mark or ExternalGraphic in LineSymbolizer**: MapServer implementation of diff --git a/en/development/rfc/ms-rfc-65.txt b/en/development/rfc/ms-rfc-65.txt index cdae4e541f4..81e5602474c 100644 --- a/en/development/rfc/ms-rfc-65.txt +++ b/en/development/rfc/ms-rfc-65.txt @@ -4,7 +4,7 @@ MS RFC 65 - Single-pass Query Changes for 6.0 =============================================================== -:Date: 2010/11/18 +:Date: 2010-11-18 :Author: Steve Lime :Contact: sdlime at comcast.net :Last Edited: 2010-11-18 @@ -48,7 +48,7 @@ Cleaning up the query result portion of the code. and msLayerGetShape() into a new msLayerGetShape(). 3) Remove resultsGetShape() and getFeature() methods from MapScript. 4) Refactor getShape() MapScript method to a) return a shapeObj * like getFeature() does and to b) take a resultCacheMemberObj as input - instead of the shape and tile indexes. That simplifies the inferface and abstracts the indexes so that we have more flexibility moving + instead of the shape and tile indexes. That simplifies the interface and abstracts the indexes so that we have more flexibility moving forward. We wouldn't necessarily have to change the driver implementations to take a resultCacheMemberObj at this point, that could be done later. diff --git a/en/development/rfc/ms-rfc-91.txt b/en/development/rfc/ms-rfc-91.txt index 7e8a40a03c0..aa788dfef16 100644 --- a/en/development/rfc/ms-rfc-91.txt +++ b/en/development/rfc/ms-rfc-91.txt @@ -4,7 +4,7 @@ MS RFC 91: Layer Filter Normalization ========================================================================= -:Date: 2014/7/14 +:Date: 2014-07-14 :Author: Steve Lime :Contact: sdlime@comcast.net :Status: Draft @@ -121,7 +121,7 @@ implementation approach, instead it offers an opportunity for more complete tran 3.2 Overview ------------ -* limited additions to logial expression syntax are recommended: +* limited additions to logical expression syntax are recommended: - spatial operator syntax (e.g. A INTERSECTS B) will be deprecated in favor of a functional notation (e.g. INTERSECTS(A, B) = TRUE). This is more consistent with spatialally enabled SQL syntax and easer to translate. - BEYOND/DWITHIN operators will *only* exist in the functional form, they are useless in logical expressions as they site now diff --git a/en/input/vector/contour.txt b/en/input/vector/contour.txt index ee01a808dd4..33bf9632974 100644 --- a/en/input/vector/contour.txt +++ b/en/input/vector/contour.txt @@ -52,9 +52,9 @@ PROCESSING settings: * CONTOUR_ITEM: provides a name for the item (attribute) in which to put the elevation. (optional) - You can also provide explicit min/max scaledenom in the CONTOUR_iNTERVAL or + You can also provide explicit min/max scaledenom in the CONTOUR_INTERVAL or CONTOUR_LEVELS values if you wish to use scale-dependent contour spacing. This - is done by adding an optional "miscaledenom,maxscaledenom:" prefix to the + is done by adding an optional "minscaledenom,maxscaledenom:" prefix to the value or list of values. See the example below. .. warning:: diff --git a/en/spelling_wordlist.md b/en/spelling_wordlist.md new file mode 100644 index 00000000000..d8bc37e4b26 --- /dev/null +++ b/en/spelling_wordlist.md @@ -0,0 +1,224 @@ +apache +api +Appveyor +autotools +backend +backends +backport +backported +basemap +basemaps +bbox +behaviour +bugfix +cairo +cgi +CGI +Changelog +classObj +clusterObj +CMake +cmake +codebase +colorObj +colour +colours +coloured +commandline +conda +config +connectiontype +coshp +cpp +crs +CRS +csharp +datasource +datasources +dll +drawquery +env +epsg +EPSG +errorObj +Esri +fastcgi +FastCGI +featureinfo +FeatureInfo +filesystem +filesystems +fontset +fuzzer +fuzzers +GDAL +geodata +geodatabase +geodatabases +geospatial +gdalinfo +geotiff +getCapabilities +gif +github +gml +geopackage +geoparquet +gridObj +hashtable +heatmap +heatmaps +htdocs +html +jpeg +jpg +imagemap +iis +img +javascript +json +labelCacheObj +labelLeaderObj +labelling +labelObj +lat +layername +layerObj +legendObj +linebreak +linebreaks +lineObj +logfile +lon +makefile +map2img +mapcache +mapcontext +mapextent +mapfile +mapfiles +maplexer +mapObj +mapscript +MapScript +mapscripts +mapserv +mapserver +MapServer +maxscale +maxscaledenom +maxx +maxy +minscale +minscaledenom +minx +miny +msautotest +msDebug +msencrypt +msError +mssql +multiline +mysql +namespace +oci +ogc +OGC +ogcapi +OGCAPI +OGR +ogr2ogr +ogrinfo +ogrtindex +onlineresource +osm +OSM +outputformat +outputformats +ovf +OWS +ows +parquet +pdf +PHP +php +phpinfo +pixmap +png +postgis +PostGIS +PROJ +proj +projectionObj +qix +quadtree +README +referenceMapObj +renderer +renderers +reprojection +reprojectionObj +reproject +resultcache +resultCacheObj +resultObj +scalebar +scalebarObj +seeder +shp +SHP +shptree +shptreetst +shptreevis +shapefile +shapefiles +shapeObj +SLD +sld +sortshp +SOS +Spatialite +srid +SRID +SRS +srs +stdin +stdout +styleObj +svg +sym2img +symbolObj +symbolset +symbolSetObj +symbolsets +threadsafe +tile4ms +tileindex +tileset +tilesets +tinyows +tmp +Transifex +travis +truetype +uncomment +url +uri +URL +util +UTFGrid +virtualbox +WCS +wcs +webmapping +webObj +wfs +WFS +WFS-T +wkt +WKT +WMS +wms +xml +XML +yml From 739f9bab58058a40d2c9d14da06e3b6f87839a2f Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Fri, 27 Mar 2026 16:07:15 -0300 Subject: [PATCH 32/64] add initial spelling wordlist --- en/MIGRATION_GUIDE.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/MIGRATION_GUIDE.txt b/en/MIGRATION_GUIDE.txt index dcbb2bcb276..2770fd70c5f 100644 --- a/en/MIGRATION_GUIDE.txt +++ b/en/MIGRATION_GUIDE.txt @@ -1070,7 +1070,7 @@ for EPSG codes between 4000 and 5000. Change of mime-type for the imagemap outputformat ------------------------------------------------- -RFC 36 added support for templated outptformats, but this new feature +RFC 36 added support for templated outputformats, but this new feature was not available for WMS GetFeatureInfo output (see ticket #3024). In MapServer 5.6 this has been resolved by implementing lookup of output formats for query templates by mime-type. However this caused a conflict From 509a542368ecce36dcbf478bd7368fb882aefe17 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Fri, 27 Mar 2026 16:16:01 -0300 Subject: [PATCH 33/64] add initial spelling wordlist --- conf.py | 2 +- en/{spelling_wordlist.md => spelling_wordlist.dict} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename en/{spelling_wordlist.md => spelling_wordlist.dict} (100%) diff --git a/conf.py b/conf.py index 80210871c3a..2489b6d8bc1 100644 --- a/conf.py +++ b/conf.py @@ -129,7 +129,7 @@ def __getattr__(cls, name): nitpicky = True # set filename used by spelling extension -spelling_word_list_filename='spelling_wordlist.md' +spelling_word_list_filename='spelling_wordlist.dict' # Options for HTML output # ----------------------- diff --git a/en/spelling_wordlist.md b/en/spelling_wordlist.dict similarity index 100% rename from en/spelling_wordlist.md rename to en/spelling_wordlist.dict From e35a96368395df4e3d3da59fcadb7bc7733df25d Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Sat, 28 Mar 2026 11:45:24 -0300 Subject: [PATCH 34/64] add initial spelling wordlist --- conf.py | 14 ++ en/development/documentation.txt | 4 +- en/development/tests/autotest.txt | 4 +- en/input/vector/kml.txt | 2 +- en/input/vector/oracle.txt | 4 +- en/installation/oracle.txt | 6 +- en/installation/win32.txt | 2 +- en/mapcache/caches.txt | 4 +- en/mapcache/formats.txt | 4 +- en/mapcache/install.txt | 14 +- en/ogc/filter_encoding.txt | 4 +- en/ogc/sos_server.txt | 8 +- en/ogc/wms_time.txt | 4 +- en/optimization/limit_mapfile_access.txt | 4 +- en/spelling_wordlist.dict | 251 +++++++++++++++++++++-- en/tinyows/configfile.txt | 2 +- 16 files changed, 278 insertions(+), 53 deletions(-) diff --git a/conf.py b/conf.py index 2489b6d8bc1..f2543bf33e6 100644 --- a/conf.py +++ b/conf.py @@ -131,6 +131,20 @@ def __getattr__(cls, name): # set filename used by spelling extension spelling_word_list_filename='spelling_wordlist.dict' +# spelling extension options +# -------------------------- + +# set filename used by spelling extension +spelling_word_list_filename='spelling_wordlist.dict' + +# ignore changelogs and RFCs +spelling_exclude_patterns = [ + 'development/changelog/*', + 'development/changelog/mapcache/*', + 'development/changelog/tinyows/*', + 'development/rfc/*' +] + # Options for HTML output # ----------------------- diff --git a/en/development/documentation.txt b/en/development/documentation.txt index 8de249a84da..68ea74e3544 100644 --- a/en/development/documentation.txt +++ b/en/development/documentation.txt @@ -8,7 +8,7 @@ :Contact: hobu.inc at gmail.com :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2026-03-23 +:Last Updated: 2026-03-28 .. contents:: Table of Contents :depth: 4 @@ -457,7 +457,7 @@ Please for both parameter, keep the alphabetical order to kept them readable. **Structure of the i18n files in the MapServer-documentation root directory** -The structure you need to make all the transaltion process is like below (an +The structure you need to make all the translation process is like below (an excerpt to give you the main required structure) :: diff --git a/en/development/tests/autotest.txt b/en/development/tests/autotest.txt index 4316ca1dbd5..6f5ccaa12ff 100644 --- a/en/development/tests/autotest.txt +++ b/en/development/tests/autotest.txt @@ -8,7 +8,7 @@ :Contact: warmerdam at pobox.com :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2024-06-20 +:Last Updated: 2026-03-28 .. contents:: Table of Contents :depth: 2 @@ -245,7 +245,7 @@ REQUIRES - Handling Build Options Because MapServer can be built with many possible extensions, such as support for OGR, GDAL, and PROJ.4, it is desirable to have the testsuite automatically -detect which tests should be run based on the configuratio of MapServer. This +detect which tests should be run based on the configuration of MapServer. This is accomplished by capturing the version output of "map2img -v" and using the various keys in that to decide which tests can be run. A directory can have a file called "all_require.txt" with a "REQUIRES:" line indicating components diff --git a/en/input/vector/kml.txt b/en/input/vector/kml.txt index 2a580899090..54dc7f88c0e 100644 --- a/en/input/vector/kml.txt +++ b/en/input/vector/kml.txt @@ -10,7 +10,7 @@ Keyhole Markup Language (KML) is an XML-based language for managing the display of 3D geospatial data. KML is a standard maintained by the Open -Geospatial Consoritum (OGC). +Geospatial Consortium (OGC). Links to KML-Related Information -------------------------------- diff --git a/en/input/vector/oracle.txt b/en/input/vector/oracle.txt index 87c818bb4ec..3e742ad5dcd 100644 --- a/en/input/vector/oracle.txt +++ b/en/input/vector/oracle.txt @@ -7,7 +7,7 @@ :Author: Bart van den Eijnden :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2021-05-05 +:Last Updated: 2026-03-28 .. contents:: Table of Contents :depth: 4 @@ -344,7 +344,7 @@ Syntax for your MAP file: .. note:: Make sure you set the wms_extent METADATA for the LAYER, as otherwise the - "Getcapabilities" request takes a lot of time. + "getCapabilities" request takes a lot of time. What MapServer Components are related to Oracle Spatial access -------------------------------------------------------------- diff --git a/en/installation/oracle.txt b/en/installation/oracle.txt index 73ab7ae6ba4..5382c384000 100644 --- a/en/installation/oracle.txt +++ b/en/installation/oracle.txt @@ -207,9 +207,9 @@ Testing & Error handling ........................ So you are fine now. Load the mapfile in your application and try it. If -everything goes well: Great, if not, possibly this ugly error-emssage occurs -(this one cmae by querying MapServer through the WMS interface as a -GetMap-request): +everything goes well: great, if not, possibly this ugly error message occurs +(this one was made by querying MapServer through the WMS interface as a +GetMap request): :: diff --git a/en/installation/win32.txt b/en/installation/win32.txt index 0ffbfb760d3..15bd581b15f 100644 --- a/en/installation/win32.txt +++ b/en/installation/win32.txt @@ -139,7 +139,7 @@ Interim Builds title. The absolute latest copy of the source code can be obtained from :ref:`git`; however, the GitHub repository does not contain several important source files (maplexer.c, mapparser.c and mapparser.h) normally generated on unix, so if possible, using a nightly -snaphot is substantially easier than working directly from :ref:`git`. +snapshot is substantially easier than working directly from :ref:`git`. **Required Libraries** ---------------------- diff --git a/en/mapcache/caches.txt b/en/mapcache/caches.txt index ddf0a5a339f..7f5c11580b1 100644 --- a/en/mapcache/caches.txt +++ b/en/mapcache/caches.txt @@ -331,7 +331,7 @@ Blank Tile Detection MapCache's SQLite caches support the detection and storage of blank (i.e. uniform color) tiles, and will store a quadruplet of the rgba color component in the data blob instead of the compressed image data itself. That quadruplet will be -transformed on-the-fly to a 1-bit palleted PNG before being returned to the client. +transformed on-the-fly to a 1-bit paletted PNG before being returned to the client. .. code-block:: xml @@ -589,7 +589,7 @@ You can add multiple entries. To limit the memory used by blank tiles inside the memcache instance, you may enable blank tile detection, in which case a `#rgba` quadruplet will be stored to the cache instead of the actual image data. MapCache will convert -that on-the-fly to a 1-bit palleted PNG image before returning it to the client. +that on-the-fly to a 1-bit paletted PNG image before returning it to the client. .. code-block:: xml diff --git a/en/mapcache/formats.txt b/en/mapcache/formats.txt index eb49dffb401..4172f838313 100644 --- a/en/mapcache/formats.txt +++ b/en/mapcache/formats.txt @@ -42,7 +42,7 @@ PNG Format -------------------------------------------------------------------------------- The PNG format creates PNG images, with optional quantization (reduction of -the number of colors to create an 8-bit palleted PNG). +the number of colors to create an 8-bit paletted PNG). .. code-block:: xml @@ -56,7 +56,7 @@ the number of colors to create an 8-bit palleted PNG). zlib compression. - *colors*: Number of colors to use for quantization. Omit this key to produce 24 or 32 bit RGB/RGBA PNGs, or set to a value between 2 and 256 - to create an 8-bit palleted PNG. The quantization step is destructive: + to create an 8-bit paletted PNG. The quantization step is destructive: There is no guarantee that pixels will not have a noticeable shift in color in the case when the tile contains many colors. diff --git a/en/mapcache/install.txt b/en/mapcache/install.txt index 2cf4da402f6..21ef181688f 100644 --- a/en/mapcache/install.txt +++ b/en/mapcache/install.txt @@ -69,10 +69,10 @@ functionalities: run MapCache as an Apache module - **gdal / geos**: *libgdal1-dev* *libgeos-dev*. Needed to enable advanced seeding options (for only seeding tiles that intersect a given geographical feature) -- **sqlite**: *libsqlite3-dev*. For enabling the SQLite backend storages -- **tiff**: *libtiff4-dev*. For enabling the TIFF backend storages -- **berkeley db** *libdb4.8-dev* : For enabling the Berkeley DB backend storages -- **lmdb** *liblmdb-dev* : For enabling the Lightning Memory-Mapped Database backend storages +- **sqlite**: *libsqlite3-dev*. For enabling the SQLite backend storage +- **tiff**: *libtiff4-dev*. For enabling the TIFF backend storage +- **berkeley db** *libdb4.8-dev* : For enabling the Berkeley DB backend storage +- **lmdb** *liblmdb-dev* : For enabling the Lightning Memory-Mapped Database backend storage (available since MapCache 1.14.0 release) .. note:: @@ -540,7 +540,7 @@ Here is a list of supported options that can be enabled/disabled at build. When writing TIFF files, MapCache can also optionally add georeferencing information if compiled with libtiff support. GeoTiff writing does not - produce the full tags needed for defining which preojection the grid is + produce the full tags needed for defining which projection the grid is in, but will only produce those defining the pixel scale and the tiepoints (i.e. the equivalent information found in the accompanying .tfw files). @@ -638,8 +638,8 @@ Optional: MapCache as an Apache module - **GDAL / GEOS**: Needed to enable advanced seeding options (for only seeding tiles that intersect a given geographical feature) -- **SQLITE**: For enabling the SQLite backend storages -- **TIFF**: For enabling the TIFF backend storages +- **SQLITE**: For enabling the SQLite backend storage +- **TIFF**: For enabling the TIFF backend storage Configure Your Makefile ----------------------- diff --git a/en/ogc/filter_encoding.txt b/en/ogc/filter_encoding.txt index 8e13bde7c55..9a1156d7055 100644 --- a/en/ogc/filter_encoding.txt +++ b/en/ogc/filter_encoding.txt @@ -10,7 +10,7 @@ :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com :Author: Yewondwossen Assefa -:Last Updated: 2026-03-23 +:Last Updated: 2026-03-28 .. contents:: Table of Contents :depth: 2 @@ -547,7 +547,7 @@ Following are some MapServer specific notes on this test suite: 5. *Test number 1.3.6.1*: - The returned feature xml won't validate because the validation is done - against a specific xsd (geomatry.xsd). + against a specific xsd (geometry.xsd). - The data conversion on multipoints and multilayers are not supported within GDAL. diff --git a/en/ogc/sos_server.txt b/en/ogc/sos_server.txt index 95f767b4bc1..19df10ebbac 100644 --- a/en/ogc/sos_server.txt +++ b/en/ogc/sos_server.txt @@ -9,7 +9,7 @@ :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2021-03-27 +:Last Updated: 2026-03-28 .. contents:: Table of Contents :depth: 2 @@ -861,12 +861,12 @@ Layer Object Metadata The logic for the bounding box returned as part of the offering is the following: - - note that it is a mandatory element that needs an espg code and + - note that it is a mandatory element that needs an EPSG code and lower/upper corner coordinates - - looks for the espg parameter in the first layer of the offering + - looks for the EPSG parameter in the first layer of the offering (this could be an ows/sos_srs or a projection object with the - epsg code (mandatory) + EPSG code (mandatory) - looks for sos_offering_extent. If the metadata is not available, the extents of all layers in the offering will be used to compute it. diff --git a/en/ogc/wms_time.txt b/en/ogc/wms_time.txt index 4dde7e901aa..bb18420fadc 100644 --- a/en/ogc/wms_time.txt +++ b/en/ogc/wms_time.txt @@ -9,7 +9,7 @@ :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2023-01-09 +:Last Updated: 2026-03-28 .. contents:: Table of Contents :depth: 2 @@ -95,7 +95,7 @@ metadata (see Annex C.3 in the `WMS 1.1.1 specification`_ document for a full description): 1. *value* - a single value. This is not directly supported in MapServer but - there is an easy workwound by specifying the same value as min and max. + there is an easy workaround by specifying the same value as min and max. 2. *value1,value2,value3,...* - a list of multiple values. diff --git a/en/optimization/limit_mapfile_access.txt b/en/optimization/limit_mapfile_access.txt index de082806f29..75daac94d75 100644 --- a/en/optimization/limit_mapfile_access.txt +++ b/en/optimization/limit_mapfile_access.txt @@ -11,10 +11,10 @@ :Contact: sdlime at gmail.com :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2022-08-16 +:Last Updated: 2026-03-28 The MapServer CGI, by default, will happily attempt to process any mapfile it is -asked to. While this might be desireable in a development environment, it is not +asked to. While this might be desirable in a development environment, it is not acceptable for public-facing installations. MapServer supports the use of specific **environment variables**, set at the web server tier, to limit access. Since the MapServer 7.6.3 release, you are **required** to use (a combination of) diff --git a/en/spelling_wordlist.dict b/en/spelling_wordlist.dict index d8bc37e4b26..bdfb8bcec0e 100644 --- a/en/spelling_wordlist.dict +++ b/en/spelling_wordlist.dict @@ -1,102 +1,199 @@ +advertize +advertizing +agg +AGG +antialiased +antialiasing apache api Appveyor +arcgis +arial +autoconf +automagically autotools backend backends +backgroundcolor backport backported basemap basemaps bbox behaviour +bing bugfix +bugfixes cairo -cgi +cartesian +cellsize +centerline +centre CGI +cgi Changelog +Changelogs +checkbox +checkboxes +classitem classObj clusterObj CMake cmake codebase +colormap colorObj +colorspace colour -colours coloured +colours commandline conda config connectiontype coshp cpp -crs +croudsource +croudsourced +croudsourcing CRS +crs csharp +customizable datasource datasources +dev dll +dlls +downsample +downsampled +downsampling +drawmap drawquery +eg env epsg EPSG errorObj +esri Esri +exe +executables fastcgi FastCGI -featureinfo +fcgi +fcgid FeatureInfo +featureinfo filesystem filesystems fontset +formalised fuzzer fuzzers +gdal GDAL +gdalinfo +gdaltindex +generalised +geo +geocoded +geocoder +geocoders +geocoding geodata geodatabase geodatabases +geojson +geomtransform +geopackage +geoparquet +georeference +georeferenced +georeferencing +geos +GEOS geospatial -gdalinfo geotiff getCapabilities +getfeature +getFeature +getFeatureInfo +getfeatureinfo +GetMap +getmap gif github gml -geopackage -geoparquet +grayscale +greyscale gridObj +gtiff +guestimate +gzip +gzipped +hardcode +hardcoded hashtable heatmap heatmaps +honour +honoured +hostname +howto +howtos htdocs html -jpeg -jpg -imagemap +http +httpd +https +ie iis +imagemap +imagemaps +imagetype img +itemnquery +itemquery javascript +jpeg +jpg json +kml +KML +kmz +KMZ labelCacheObj labelLeaderObj +labelled labelling labelObj lat +latlon +latlong layername layerObj legendObj +libmap +libtool linebreak linebreaks lineObj +linestring +linux +listserv +localhost logfile lon makefile +makefiles map2img mapcache mapcontext mapextent mapfile mapfiles +mapinfo maplexer mapObj mapscript @@ -109,109 +206,215 @@ maxscale maxscaledenom maxx maxy +memcache +memcached +mercator +mimetype minscale minscaledenom minx miny +mosaicing msautotest msDebug msencrypt msError +msLoadMap +msplugin +msProcessProjection +msQueryByPoint mssql +multigeometry multiline +multilinestring +multipoint +multipolygon +multispectral +multithreaded mysql namespace +namespaces +neighbour +neighbouring +nginx +nmake +nquery oci +offsetted +oga ogc OGC ogcapi OGCAPI +ogr OGR ogr2ogr ogrinfo ogrtindex +ok onlineresource +onwards +optimisation +oraclespatial +organisational +orthos +osgeo +OSGEO osm OSM +outlinecolor outputformat outputformats ovf -OWS ows +OWS +paletted +param +params parquet pdf +pdfs +Photoshop PHP php phpinfo pixmap png +pointObj +polyline postgis PostGIS +pre +precompiled +preconfigured +pregenerated +preprocessing +programmatically PROJ proj projectionObj +protip +proxied +proxying +pygeoapi +qformat +QGIS qix +qstring quadtree +queryability +queryable +queryables +queryfile +querymap README +reaspect referenceMapObj renderer renderers +reproject +reprojecting reprojection reprojectionObj -reproject +reprojections +reprojects +reStructuredText resultcache resultCacheObj resultObj +rgb +RGB +ruleset scalebar scalebarObj +scaledenom +scaletoken +sde seeder +shapefile +shapefiles +shapeObj shp SHP shptree shptreetst shptreevis -shapefile -shapefiles -shapeObj SLD sld sortshp +sos SOS -Spatialite -srid +spatialite +specialised +sql +SQL +sqlite +src SRID -SRS +srid srs +SRS +stderr stdin stdout +styleitem styleObj +subquery +substring svg sym2img +symbolizer +symbolizers symbolObj symbolset symbolSetObj symbolsets +symlink +symlinks +templating +testsuite threadsafe +tif +tiff tile4ms tileindex +tileindexes +tileindexing +tilemode tileset tilesets tinyows tmp Transifex +transifex travis truetype +txt +uncheck uncomment -url +uncommenting +uncompress +unix +unprojected +untiled uri +url URL -util +urls +usr UTFGrid +util +uv +UVraster virtualbox +waypoint +waypoints WCS wcs webmapping webObj +webserver +webservers wfs WFS WFS-T @@ -221,4 +424,12 @@ WMS wms xml XML +xsd yml +YML +zip +zipped +zoomin +zoomlevel +zoomlevels +zoomout \ No newline at end of file diff --git a/en/tinyows/configfile.txt b/en/tinyows/configfile.txt index ac78e52ad6f..773e977916c 100644 --- a/en/tinyows/configfile.txt +++ b/en/tinyows/configfile.txt @@ -200,7 +200,7 @@ individual_name optional Web Service Contact Individual Name position optional Web Service Contact Position phone optional Web Service Contact Phone fax optional Web Service Contact Fax -online_resource optional Web Service Contact URL (e.g additional Metadatas) +online_resource optional Web Service Contact URL (e.g additional metadata) address optional Web Service Contact Postal Address postcode optional Web Service Contact Postcode city optional Web Service Contact City From cd09f501ef595c8d44ee13ca67a11c2e1247167c Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Sat, 28 Mar 2026 11:46:22 -0300 Subject: [PATCH 35/64] add initial spelling wordlist --- conf.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/conf.py b/conf.py index f2543bf33e6..7fc93fb2769 100644 --- a/conf.py +++ b/conf.py @@ -128,9 +128,6 @@ def __getattr__(cls, name): # check for broken reference targets nitpicky = True -# set filename used by spelling extension -spelling_word_list_filename='spelling_wordlist.dict' - # spelling extension options # -------------------------- From 04c4abbd366e1fd89b0c503215b31120d2640dd1 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Sun, 29 Mar 2026 11:13:54 -0300 Subject: [PATCH 36/64] add initial spelling wordlist [build_translations] --- conf.py | 3 +- en/MIGRATION_GUIDE.txt | 2 +- en/cgi/runsub.txt | 2 +- en/development/documentation.txt | 31 +++++++- en/development/rfc/ms-rfc-58.txt | 12 +-- en/download.txt | 2 +- en/input/raster.txt | 2 +- en/input/vector/ogr.txt | 2 +- en/input/vector/oracle.txt | 2 +- en/mapfile/encoding.txt | 4 +- en/mapfile/geomtransform.txt | 8 +- en/mapfile/label.txt | 2 +- en/mapfile/layer.txt | 12 +-- en/mapfile/map.txt | 2 +- en/mapfile/symbology/construction.txt | 2 +- en/mapfile/template.txt | 2 +- en/mapfile/union.txt | 2 +- en/mapscript/mapfile.txt | 2 +- en/ogc/sos_server.txt | 2 +- en/ogc/wcs_format.txt | 2 +- en/ogc/wfs_server.txt | 2 +- en/ogc/wms_server.txt | 6 +- en/optimization/fastcgi.txt | 6 +- en/optimization/mapfile.txt | 2 +- en/optimization/vector.txt | 2 +- en/output/kml_output.txt | 12 +-- en/spelling_wordlist.dict | 105 ++++++++++++++++++++++++++ en/tinyows/index.txt | 2 +- en/tutorial/example1-6.txt | 2 +- en/tutorial/example1-7.txt | 2 +- 30 files changed, 186 insertions(+), 53 deletions(-) diff --git a/conf.py b/conf.py index 7fc93fb2769..020abae900d 100644 --- a/conf.py +++ b/conf.py @@ -139,7 +139,8 @@ def __getattr__(cls, name): 'development/changelog/*', 'development/changelog/mapcache/*', 'development/changelog/tinyows/*', - 'development/rfc/*' + 'development/rfc/*', + 'mapscript/php/*' ] # Options for HTML output diff --git a/en/MIGRATION_GUIDE.txt b/en/MIGRATION_GUIDE.txt index 2770fd70c5f..57e22608966 100644 --- a/en/MIGRATION_GUIDE.txt +++ b/en/MIGRATION_GUIDE.txt @@ -6,7 +6,7 @@ MapServer Migration Guide ***************************************************************************** -:Last Updated: 2026-03-25 +:Last Updated: 2026-03-29 .. contents:: Table of Contents :depth: 2 diff --git a/en/cgi/runsub.txt b/en/cgi/runsub.txt index 80a927f2490..db15c11e4b7 100644 --- a/en/cgi/runsub.txt +++ b/en/cgi/runsub.txt @@ -9,7 +9,7 @@ :Author: Steve Lime :Contact: sdlime at gmail.com -:Last Updated: 2023-04-19 +:Last Updated: 2026-03-29 .. contents:: Table of Contents :depth: 2 diff --git a/en/development/documentation.txt b/en/development/documentation.txt index 68ea74e3544..92e5745c24e 100644 --- a/en/development/documentation.txt +++ b/en/development/documentation.txt @@ -8,7 +8,7 @@ :Contact: hobu.inc at gmail.com :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2026-03-28 +:Last Updated: 2026-03-29 .. contents:: Table of Contents :depth: 4 @@ -297,8 +297,14 @@ Installing and Using Sphinx for rst-html Generation If there are more than one translation, the above commands will automatically build all translations. +Spelling tools +-------------- + +There are several methods to check and/or correct spelling issues in the +documentation files: + (English) typo fixing script ----------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (Tested on Linux. Should also likely run on MacOSX. Windows users might need to install Cygwin, Python 3, git, curl, sed, grep, awk) @@ -332,6 +338,27 @@ from CRLF to LF might be needed). scripts/typos_whitelist.txt should be used rat than WORDS_WHITE_LIST, only when a word is not a typo in a given context, but might be a typo in another context. +sphinxcontrib.spelling extension +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Here some important steps for using Sphinx's spelling extension: + +- install the `extension `__, such as: + + :: + + python -m pip install sphinxcontrib-spelling==8.0.2 + +- the wordlist for MapServer is located in `/en/spelling_wordlist.dict `__ + +- edit the `options `__ + for the extension in your local `conf.py` (see the "spelling extension options" section), + and make sure that the extension is enabled (see the "General configuration" section) + +- run the spellcheck with: + + :: + + make spelling How translations are handled ---------------------------- diff --git a/en/development/rfc/ms-rfc-58.txt b/en/development/rfc/ms-rfc-58.txt index 136e1545642..7acdc3304bd 100644 --- a/en/development/rfc/ms-rfc-58.txt +++ b/en/development/rfc/ms-rfc-58.txt @@ -128,7 +128,7 @@ Supported Folder elements are: +-------------------------------------------------------------+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | TimePrimitive | No | | +-------------------------------------------------------------+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| styleUrl | Yes | The user can use the kml_folder_display layer or map level metedata to choose a setting. Possible values are 'check' (default), 'radioFolder', 'checkOffOnly', 'checkHideChildren'. | +| styleUrl | Yes | The user can use the kml_folder_display layer or map level metadata to choose a setting. Possible values are 'check' (default), 'radioFolder', 'checkOffOnly', 'checkHideChildren'. | +-------------------------------------------------------------+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | RegionMetadataExtendedData | No | | +-------------------------------------------------------------+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -206,11 +206,11 @@ General notes on layers - Labelcache is turned off on each layer - Projection block should be set. If not set It will be assumed that the data is in lat/lon projection (a debug message will be sent to the user: Debug Message 1) - Possible to output vector layers as raster using metadata: "KML_OUTPUTASRASTER" "true" -- The user can use the KML_FOLDER_DSIPLAY layer or map level metedata to choose a setting. Possible values are 'check' (default), 'radioFolder', 'checkOffOnly', 'checkHideChildren'. -- The user can use metedata KML_DESCRIPTION or KML_INCLUDE_ITEMS to define the description attached to each feature. -- The user can use metedata KML_ALTITUDEMODE to specify how altitude components in the element are interpreted. Possible values are: absolute, relativeToGround, clampToGround. https://developers.google.com/kml/documentation/kmlreference?csw=1#altitudemode -- The user can use metedata KML_EXTRUDE to specify whether to connect the LinearRing to the ground. https://developers.google.com/kml/documentation/kmlreference?csw=1#tessellate -- The user can use metedata KML_TESSELLATE to specify whether to allow the LinearRing to follow the terrain. https://developers.google.com/kml/documentation/kmlreference?csw=1#extrude +- The user can use the KML_FOLDER_DSIPLAY layer or map level metadata to choose a setting. Possible values are 'check' (default), 'radioFolder', 'checkOffOnly', 'checkHideChildren'. +- The user can use metadata KML_DESCRIPTION or KML_INCLUDE_ITEMS to define the description attached to each feature. +- The user can use metadata KML_ALTITUDEMODE to specify how altitude components in the element are interpreted. Possible values are: absolute, relativeToGround, clampToGround. https://developers.google.com/kml/documentation/kmlreference?csw=1#altitudemode +- The user can use metadata KML_EXTRUDE to specify whether to connect the LinearRing to the ground. https://developers.google.com/kml/documentation/kmlreference?csw=1#tessellate +- The user can use metadata KML_TESSELLATE to specify whether to allow the LinearRing to follow the terrain. https://developers.google.com/kml/documentation/kmlreference?csw=1#extrude diff --git a/en/download.txt b/en/download.txt index 38c83b99edc..eb7ed3e3a4d 100644 --- a/en/download.txt +++ b/en/download.txt @@ -244,7 +244,7 @@ MapServer 7.x (Itasca) Demo The original MapServer Itasca demo (which does not work with recent MapServer versions) can still be `downloaded `__. -MapServer 7.x Tutoral + data +MapServer 7.x Tutorial + data The MapServer 7 tutorial, including all working mapfiles, highway shield icons, and data, is available for `download `__. More info can be found on the :ref:`Tutorial Background ` page. diff --git a/en/input/raster.txt b/en/input/raster.txt index dc81d062c3a..fc11eddc9de 100644 --- a/en/input/raster.txt +++ b/en/input/raster.txt @@ -11,7 +11,7 @@ :Contact: warmerdam at pobox.com :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2022-08-20 +:Last Updated: 2026-03-29 .. contents:: Table of Contents :depth: 2 diff --git a/en/input/vector/ogr.txt b/en/input/vector/ogr.txt index ef4b4bea80a..4045d28d23d 100644 --- a/en/input/vector/ogr.txt +++ b/en/input/vector/ogr.txt @@ -9,7 +9,7 @@ OGR Vector Layers Through MapServer :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2021-05-06 +:Last Updated: 2026-03-29 .. contents:: Table of Contents :depth: 3 diff --git a/en/input/vector/oracle.txt b/en/input/vector/oracle.txt index 3e742ad5dcd..6609a64965d 100644 --- a/en/input/vector/oracle.txt +++ b/en/input/vector/oracle.txt @@ -7,7 +7,7 @@ :Author: Bart van den Eijnden :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2026-03-28 +:Last Updated: 2026-03-29 .. contents:: Table of Contents :depth: 4 diff --git a/en/mapfile/encoding.txt b/en/mapfile/encoding.txt index 89316899cfd..a6437baba99 100644 --- a/en/mapfile/encoding.txt +++ b/en/mapfile/encoding.txt @@ -9,7 +9,7 @@ :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2020-10-28 +:Last Updated: 2026-03-29 .. contents:: Table of Contents :depth: 3 @@ -42,7 +42,7 @@ Requirements .. note:: In terms of map labels with international characters, since the MapServer 7.0 release, - other important dependant libaries besides libiconv are `Freetype `__ + other important dependent libraries besides libiconv are `Freetype `__ (to get information about glyph sizes), `Fribidi `__ (to handle bidirectional text), and `Harfbuzz `__ (for text shaping). diff --git a/en/mapfile/geomtransform.txt b/en/mapfile/geomtransform.txt index 8c1e631caa9..c09d32f9412 100644 --- a/en/mapfile/geomtransform.txt +++ b/en/mapfile/geomtransform.txt @@ -583,7 +583,7 @@ centerline - an example showing a generated red centerline that is used to label lakes, from a polygon datasource `lakes.db` (and uses - `densify()` to add more verticies to the generated red line, so it + `densify()` to add more vertices to the generated red line, so it follows the lake's shape) : .. code-block:: mapfile @@ -627,10 +627,10 @@ densify .. versionadded:: 8.0 densify() -- *(densify([shape],tolerance)*: Add more verticies to the +- *(densify([shape],tolerance)*: Add more vertices to the feature (`[shape]`). Requires a positive tolerance value. Might be useful in combination with `centerline()` to - add more verticies to the generated labeled line. + add more vertices to the generated labeled line. .. index:: pair: GEOMTRANSFORM; generalize @@ -739,7 +739,7 @@ One of the :ref:`STYLE` definitions for the example (tolerance 40): - an example showing a generated red centerline that is used to label a province, from a polygon datasource `ns.db` (and uses - `simplify()` to reduce the verticies in the generated line) : + `simplify()` to reduce the vertices in the generated line) : .. code-block:: mapfile diff --git a/en/mapfile/label.txt b/en/mapfile/label.txt index 248f823f8dc..6de17aa4649 100644 --- a/en/mapfile/label.txt +++ b/en/mapfile/label.txt @@ -553,7 +553,7 @@ SHADOWCOLOR [r] [g] [b] | [hexadecimal string] Color of drop shadow. A label with the same text will be rendered in this color before the main label is drawn, resulting in a shadow effect on the the label characters. The offset of the - renderered shadow is set with SHADOWSIZE. + rendered shadow is set with SHADOWSIZE. - `r`, `g` and `b` shall be integers [0..255]. To specify green, the following is used: diff --git a/en/mapfile/layer.txt b/en/mapfile/layer.txt index 3cd4dbb29fb..951425d7217 100644 --- a/en/mapfile/layer.txt +++ b/en/mapfile/layer.txt @@ -101,7 +101,7 @@ CLASSITEM [attribute] One or more COMPOSITE blocks can be used to signal that rendering should be done in a temporary image and merged onto the final map image in a final step. The options defined inside the COMPOSITE block - will determine how this merging should be done (e.g. by appying opacity, + will determine how this merging should be done (e.g. by applying opacity, composition operator, or pixel filters) .. seealso:: @@ -481,7 +481,7 @@ GEOMTRANSFORM [|] - an example showing a generated red centerline that is used to label lakes, from a polygon datasource `lakes.db` (and uses - `densify()` to add more verticies to the generated red line, so it + `densify()` to add more vertices to the generated red line, so it follows the lake's shape) : .. code-block:: mapfile @@ -522,10 +522,10 @@ GEOMTRANSFORM [|] .. versionadded:: 8.0 densify() - - *(densify([shape],tolerance)*: Add more verticies to the + - *(densify([shape],tolerance)*: Add more vertices to the feature (`[shape]`). Requires a positive tolerance value. Might be useful in combination with `centerline()` to - add more verticies to the generated labeled line. + add more vertices to the generated labeled line. .. index:: triple: LAYER; GEOMTRANSFORM; generalize @@ -552,7 +552,7 @@ GEOMTRANSFORM [|] - an example showing a generated red centerline that is used to label a province, from a polygon datasource `ns.db` (and uses - `simplify()` to reduce the verticies in the generated line) : + `simplify()` to reduce the vertices in the generated line) : .. code-block:: mapfile @@ -618,7 +618,7 @@ GEOMTRANSFORM [|] There is a difference between STYLE and LAYER GEOMTRANSFORM. LAYER-level will receive ground coordinates - (meters, degress, etc) and STYLE-level will receive pixel + (meters, degrees, etc) and STYLE-level will receive pixel coordinates. The argument to methods such as simplify() must be in the same units as the coordinates of the shapes at that point of the rendering workflow, i.e. pixels at the STYLE-level and in diff --git a/en/mapfile/map.txt b/en/mapfile/map.txt index 295f3d81b2c..ccc01b566dd 100644 --- a/en/mapfile/map.txt +++ b/en/mapfile/map.txt @@ -47,7 +47,7 @@ ANGLE [double] map rotation, use an almost zero value like 0.0001) - Starting with MapServer 7.2, if using the :ref:`STYLE` . ANGLE parameter - of a ponctual symbol, that parameter is relative to the map's orientation + of a punctual symbol, that parameter is relative to the map's orientation (i.e. it is computed after the `MAP` object's `ANGLE`). For example, if you have specified an `ANGLE` for the map of 45, and then have a symbol diff --git a/en/mapfile/symbology/construction.txt b/en/mapfile/symbology/construction.txt index 3e1b7efb27c..56c70f3bd4d 100644 --- a/en/mapfile/symbology/construction.txt +++ b/en/mapfile/symbology/construction.txt @@ -92,7 +92,7 @@ coloured lane will have a width of (7-1)/2 = 3 units. Combining symbols can be a solution for many kinds of cartographical questions. A combination of different geometry types is also possible. A polygon data set can be rendered as lines to frame the -polygons with a line signature. It can also be rendred as polygons +polygons with a line signature. It can also be rendered as polygons with a symbol filling the polygon. When the polygon fill is rendered on top of the lines, the inner part of the underlying outline is covered by the fill symbol of the polygon. What is observed here is a diff --git a/en/mapfile/template.txt b/en/mapfile/template.txt index 0da334b7c4f..33fd0480e38 100644 --- a/en/mapfile/template.txt +++ b/en/mapfile/template.txt @@ -11,7 +11,7 @@ :Contact: frank.koormann at intevation.de :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2024-01-25 +:Last Updated: 2026-03-29 .. contents:: Table of Contents :depth: 2 diff --git a/en/mapfile/union.txt b/en/mapfile/union.txt index b3fc4eb5864..e232fbb56ae 100644 --- a/en/mapfile/union.txt +++ b/en/mapfile/union.txt @@ -11,7 +11,7 @@ :Contact: szekerest at gmail.com :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2021-03-30 +:Last Updated: 2026-03-29 .. contents:: Table of Contents :depth: 3 diff --git a/en/mapscript/mapfile.txt b/en/mapscript/mapfile.txt index c9843d45d77..22fe7932e70 100644 --- a/en/mapscript/mapfile.txt +++ b/en/mapscript/mapfile.txt @@ -12,7 +12,7 @@ :Author: Sean Gillies :Author: Seth Girvin :Contact: sethg at geographika.co.uk -:Last Updated: 2021-05-22 +:Last Updated: 2026-03-29 .. contents:: :depth: 2 diff --git a/en/ogc/sos_server.txt b/en/ogc/sos_server.txt index 19df10ebbac..0797580ecc0 100644 --- a/en/ogc/sos_server.txt +++ b/en/ogc/sos_server.txt @@ -9,7 +9,7 @@ :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2026-03-28 +:Last Updated: 2026-03-29 .. contents:: Table of Contents :depth: 2 diff --git a/en/ogc/wcs_format.txt b/en/ogc/wcs_format.txt index 59ffc79bda6..2713a0fbe73 100644 --- a/en/ogc/wcs_format.txt +++ b/en/ogc/wcs_format.txt @@ -11,7 +11,7 @@ :Contact: nbarker at ittvis.com :Author: Gail Millin :Contact: nbarker at ittvis.com -:Last Updated: 2024-02-28 +:Last Updated: 2026-03-29 .. contents:: diff --git a/en/ogc/wfs_server.txt b/en/ogc/wfs_server.txt index 2fabe38948f..c116094a4d7 100644 --- a/en/ogc/wfs_server.txt +++ b/en/ogc/wfs_server.txt @@ -11,7 +11,7 @@ :Contact: jmckenna at gatewaygeomatics.com :Author: Even Rouault :Contact: even.rouault at mines-paris.org -:Last Updated: 2025-11-09 +:Last Updated: 2026-03-29 .. contents:: :depth: 2 diff --git a/en/ogc/wms_server.txt b/en/ogc/wms_server.txt index da0983e4886..aad41d9b9f1 100644 --- a/en/ogc/wms_server.txt +++ b/en/ogc/wms_server.txt @@ -9,7 +9,7 @@ :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2025-11-18 +:Last Updated: 2026-03-29 .. contents:: Table of Contents :depth: 3 @@ -885,7 +885,7 @@ oriented South-to-North. The WMS portrayal operation shall account for axis order. This affects some of the EPSG codes that were commonly used such as ESPG:4326. MapServer 5.x makes sure that coordinates passed to the server (as part of the GetMap BBOX parameter) as well as -those advertised in the capabilities document reflect the inverse axe +those advertised in the capabilities document reflect the inverse axis orders for EPSG codes between 4000 and 5000. MapServer 6.0 and up holds a list of EPSG codes with inverted axis @@ -2202,7 +2202,7 @@ HTTP status error codes ----------------------- The OGC WMS specification is not explicit about which HTTP status error code -servers should return in case of errors. Traditionaly most WMS implementation +servers should return in case of errors. Traditionally most WMS implementation return "200 OK" in those situations. Starting with MapServer 8.4, it is possible to define the ``MS_WMS_ERROR_STATUS_CODE`` configuration option to ``ON`` in the CONFIG.ENV section of the MapServer configuration file to ask MapServer diff --git a/en/optimization/fastcgi.txt b/en/optimization/fastcgi.txt index 1ff01929f00..2a623292dd0 100644 --- a/en/optimization/fastcgi.txt +++ b/en/optimization/fastcgi.txt @@ -11,7 +11,7 @@ :Contact: warmerdam at pobox.com :Author: Howard Butler :Contact: hobu.inc at gmail.com -:Last Updated: 2008-07-15 +:Last Updated: 2026-03-29 .. contents:: Table of Contents :depth: 2 @@ -37,13 +37,13 @@ high startup costs (like heavy database connections) over many requests. *configure* command a --prefix=/usr to put it in a location that is already visible to ldconfig. -2. Assuming you are running `Apache `__, the next +2. Assuming you are running `Apache `__, the next piece you need is the fastcgi module. There are two fastcgi implementations for apache: - *mod_fcgid*: mod_fcgid is the newer and recommended way to run fastcgi programs under recent apache versions. It can be downloaded from the - `Apache fcgid homepage `__ + `Apache fcgid homepage `__ - **deprecated** *mod_fcgi*: Mod_fcgi depends on the version of Apache you are running, so make sure to download the correct fork (Apache 1.3 vs. Apache 2). diff --git a/en/optimization/mapfile.txt b/en/optimization/mapfile.txt index 407ffc99a14..26814aaa622 100644 --- a/en/optimization/mapfile.txt +++ b/en/optimization/mapfile.txt @@ -11,7 +11,7 @@ :Contact: david.fawcett at gmail.com :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2024-06-20 +:Last Updated: 2026-03-29 .. contents:: Table of Contents :depth: 3 diff --git a/en/optimization/vector.txt b/en/optimization/vector.txt index dd442a0aad9..717329e4f59 100644 --- a/en/optimization/vector.txt +++ b/en/optimization/vector.txt @@ -10,7 +10,7 @@ :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com :Original Author: HostGIS -:Last Updated: 2025-07-29 +:Last Updated: 2026-03-29 .. contents:: Table of Contents :depth: 3 diff --git a/en/output/kml_output.txt b/en/output/kml_output.txt index e4821b7c103..be499a4311c 100755 --- a/en/output/kml_output.txt +++ b/en/output/kml_output.txt @@ -8,7 +8,7 @@ KML Output :Authors: Thomas.Bonfort (thomas.bonfort at gmail.com) :Authors: Yewondwossen Assefa :Authors: Michael Smith (michael.smith at usace.army.mil) -:Last Updated: 2026-03-23 +:Last Updated: 2026-03-29 Introduction ------------------------------------------------------------------------------- @@ -146,7 +146,7 @@ Supported Folder elements are: +-------------------------------------------------------------+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | TimePrimitive | No | | +-------------------------------------------------------------+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| styleUrl | Yes | The user can use the kml_folder_display layer or map level metedata to choose a setting. Possible values are 'check' (default), 'radioFolder', 'checkOffOnly', 'checkHideChildren'. | +| styleUrl | Yes | The user can use the kml_folder_display layer or map level metadata to choose a setting. Possible values are 'check' (default), 'radioFolder', 'checkOffOnly', 'checkHideChildren'. | +-------------------------------------------------------------+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | RegionMetadataExtendedData | No | | +-------------------------------------------------------------+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -242,7 +242,7 @@ General notes on layers the user: Debug Message 1) - Possible to output vector layers as raster using metadata: "KML_OUTPUTASRASTER" "true" -- The user can use the KML_FOLDER_DSIPLAY layer or map level metedata +- The user can use the KML_FOLDER_DSIPLAY layer or map level metadata to choose a setting. Possible values are 'check' (default), 'radioFolder', 'checkOffOnly', 'checkHideChildren'. - The user can use metadata KML/OWS_DESCRIPTION or @@ -256,14 +256,14 @@ General notes on layers components in the element are interpreted. Possible values are: absolute, relativeToGround, clampToGround. https://developers.google.com/kml/documentation/kmlreference?csw=1#altitudemode -- The user can use metedata KML_EXTRUDE to specify whether to connect +- The user can use metadata KML_EXTRUDE to specify whether to connect the LinearRing to the ground. https://developers.google.com/kml/documentation/kmlreference?csw=1#tessellate -- The user can use metedata KML_TESSELLATE to specify whether to allow +- The user can use metadata KML_TESSELLATE to specify whether to allow the LinearRing to follow the terrain. https://developers.google.com/kml/documentation/kmlreference?csw=1#extrude - The user can specify an attribute to be used as the elevation value - using a layer level metedata: 'kml_elevation_attribute' ''. The value will be used as the z value when the coordinates are written. diff --git a/en/spelling_wordlist.dict b/en/spelling_wordlist.dict index bdfb8bcec0e..a8d91bd56f2 100644 --- a/en/spelling_wordlist.dict +++ b/en/spelling_wordlist.dict @@ -1,3 +1,4 @@ +accessconstraints advertize advertizing agg @@ -7,6 +8,7 @@ antialiasing apache api Appveyor +apr arcgis arial autoconf @@ -22,6 +24,7 @@ basemaps bbox behaviour bing +bonfort bugfix bugfixes cairo @@ -35,6 +38,7 @@ Changelog Changelogs checkbox checkboxes +classindex classitem classObj clusterObj @@ -47,33 +51,43 @@ colorspace colour coloured colours +columnname commandline conda config connectiontype +coord coshp cpp +cpu croudsource croudsourced croudsourcing CRS crs csharp +csv +cURL customizable datasource datasources +dbf +dbname dev +distro dll dlls downsample downsampled downsampling +draggable drawmap drawquery eg env epsg EPSG +errorfile errorObj esri Esri @@ -81,22 +95,28 @@ exe executables fastcgi FastCGI +favour fcgi fcgid FeatureInfo featureinfo +filepaths filesystem filesystems +flavours fontset formalised +formatlist fuzzer fuzzers +gatewaygeomatics gdal GDAL gdalinfo gdaltindex generalised geo +geobbox geocoded geocoder geocoders @@ -104,7 +124,9 @@ geocoding geodata geodatabase geodatabases +geographika geojson +geomatics geomtransform geopackage geoparquet @@ -123,25 +145,32 @@ getfeatureinfo GetMap getmap gif +Girvin github +gmail gml +gpx grayscale greyscale gridObj gtiff guestimate gzip +GZip gzipped hardcode hardcoded +harfbuzz hashtable heatmap heatmaps +hobu honour honoured hostname howto howtos +href htdocs html http @@ -151,7 +180,9 @@ ie iis imagemap imagemaps +imagepath imagetype +imageurl img itemnquery itemquery @@ -159,6 +190,9 @@ javascript jpeg jpg json +Jukka +kerneldensity +keywordlist kml KML kmz @@ -174,20 +208,34 @@ latlong layername layerObj legendObj +libcurl +libfcgi +libiconv +libjpeg libmap +libpng +libpq +librsvg +libsvg +libtiff libtool +libxml linebreak linebreaks lineObj linestring +linter +linters linux listserv localhost logfile lon +lookups makefile makefiles map2img +Mapbox mapcache mapcontext mapextent @@ -209,11 +257,13 @@ maxy memcache memcached mercator +metatile mimetype minscale minscaledenom minx miny +modis mosaicing msautotest msDebug @@ -225,17 +275,26 @@ msProcessProjection msQueryByPoint mssql multigeometry +multilayer +multilayers multiline multilinestring multipoint +multipoints multipolygon +multipolygons multispectral multithreaded mysql +nad namespace namespaces +natively +nauticalmiles +neatlines neighbour neighbouring +netCDF nginx nmake nquery @@ -257,6 +316,8 @@ onwards optimisation oraclespatial organisational +organise +organised orthos osgeo OSGEO @@ -273,22 +334,35 @@ param params parquet pdf +pdflib pdfs +Peucker +pgsql Photoshop PHP php phpinfo +pixman pixmap +placemark +pnaciona png pointObj polyline +posix postgis PostGIS +postgres +PostgreSQL +postgresql +pramsey pre precompiled preconfigured pregenerated +preprocess preprocessing +prj programmatically PROJ proj @@ -296,6 +370,10 @@ projectionObj protip proxied proxying +psc +PSC +pseudocolored +psql pygeoapi qformat QGIS @@ -307,12 +385,16 @@ queryable queryables queryfile querymap +querymaps +Rahkonen README reaspect +recompression referenceMapObj renderer renderers reproject +reprojected reprojecting reprojection reprojectionObj @@ -325,15 +407,20 @@ resultObj rgb RGB ruleset +Savard scalebar scalebarObj +scalebars scaledenom scaletoken +scanline +schemas sde seeder shapefile shapefiles shapeObj +shapepath shp SHP shptree @@ -345,6 +432,7 @@ sortshp sos SOS spatialite +spatio specialised sql SQL @@ -354,13 +442,19 @@ SRID srid srs SRS +ssl stderr stdin stdout styleitem styleObj +subfolder +subqueries subquery substring +subtiles +superoverlay +supervisord svg sym2img symbolizer @@ -371,7 +465,10 @@ symbolSetObj symbolsets symlink symlinks +tablename +tbonfort templating +terriscope testsuite threadsafe tif @@ -385,11 +482,15 @@ tileset tilesets tinyows tmp +tms +tradeoffs Transifex transifex travis truetype +ttf txt +uk uncheck uncomment uncommenting @@ -407,6 +508,7 @@ util uv UVraster virtualbox +warmerdam waypoint waypoints WCS @@ -422,9 +524,12 @@ wkt WKT WMS wms +wordlist +www xml XML xsd +xy yml YML zip diff --git a/en/tinyows/index.txt b/en/tinyows/index.txt index e9de3a963cd..58f691e1356 100644 --- a/en/tinyows/index.txt +++ b/en/tinyows/index.txt @@ -33,7 +33,7 @@ TinyOWS strictly implements OGC standards and successfully passes all WFS OGC CITE tests (and even beta ones). TinyOWS is part of the MapServer Suite, but provided as a distinct -module (i.e you could use it in conjonction with MapServer and +module (i.e you could use it in conjunction with MapServer and MapCache, or as a standalone app) But both MapServer and TinyOWS could use the same configuration file, if you want to (or native TinyOWS XML config file). diff --git a/en/tutorial/example1-6.txt b/en/tutorial/example1-6.txt index 4acd9feb3ce..3ed689395eb 100644 --- a/en/tutorial/example1-6.txt +++ b/en/tutorial/example1-6.txt @@ -58,7 +58,7 @@ and the following values are returned:: 1285308.08 632638.93 0.000 You will notice that "cs2cs" returns a set of three values. You can ignore the -third value, 0.000, as it means to represent altitute (which we're not using). +third value, 0.000, as it means to represent altitude (which we're not using). Anyway, we can now present the EXTENT as:: EXTENT 208398.01 -372335.44 1285308.08 632638.93 diff --git a/en/tutorial/example1-7.txt b/en/tutorial/example1-7.txt index 6008f2a684a..50c296f81ef 100644 --- a/en/tutorial/example1-7.txt +++ b/en/tutorial/example1-7.txt @@ -62,7 +62,7 @@ Let's have a look at the WMS layer: .. note:: If we have to be explicit, we would add CONNECTIONTYPE LOCAL to - all othe vector and raster layers in our mapfile. Instead we only + all of the vector and raster layers in our mapfile. Instead we only define connection types that are external. WMS is an external data layer, coming from another map server. From c54f5a8cc55ad47e135c1fe8a594a96e2c47ed0e Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Mon, 30 Mar 2026 12:44:03 -0300 Subject: [PATCH 37/64] update 8.6.1 news [build_translations] --- en/MIGRATION_GUIDE.txt | 3 ++- en/announcements/announcements_archive.txt | 1 + en/include/announcements.inc | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/en/MIGRATION_GUIDE.txt b/en/MIGRATION_GUIDE.txt index 57e22608966..5660fae908e 100644 --- a/en/MIGRATION_GUIDE.txt +++ b/en/MIGRATION_GUIDE.txt @@ -23,7 +23,8 @@ MapServer 8.4 to 8.6 Migration ============================== - The 8.6.1 release includes a fix for a security flaw in the SLD parser - (see MapServer's `Security Advisory `__) + (see CVE record: `CVE-2026-33721 `__, + or see MapServer's `Security Advisory `__) - You can now enable an automatically generated index page, that lists all of your OGC services and endpoints, for each mapfile that you diff --git a/en/announcements/announcements_archive.txt b/en/announcements/announcements_archive.txt index 8039a4d03a9..364ac5fe47f 100644 --- a/en/announcements/announcements_archive.txt +++ b/en/announcements/announcements_archive.txt @@ -13,6 +13,7 @@ The maintenance release of MapServer 8.6.1 has been issued in order to fix a security flaw in the SLD parser. See the :ref:`changelog ` for the list of changes. You may also review this `Security Advisory `__, +the CVE record: `CVE-2026-33721 `__, as well as MapServer's `Security Policy `__. As security for the 7.6 branch has ended, and branches 8.4, 8.2 & 8.0 are not supported, all users are strongly encouraged to upgrade to the MapServer 8.6.1 release (see the diff --git a/en/include/announcements.inc b/en/include/announcements.inc index 4406a4a0d35..3be887e36f4 100644 --- a/en/include/announcements.inc +++ b/en/include/announcements.inc @@ -7,6 +7,7 @@ The maintenance release of MapServer 8.6.1 has been issued in order to fix a security flaw in the SLD parser. See the :ref:`changelog ` for the list of changes. You may also review this `Security Advisory `__, +the CVE record: `CVE-2026-33721 `__, as well as MapServer's `Security Policy `__. As security for the 7.6 branch has ended, and branches 8.4, 8.2 & 8.0 are not supported, all users are strongly encouraged to upgrade to the MapServer 8.6.1 release (see the From 19a1aed003d6234f40b40a653527b7c611061c20 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Thu, 9 Apr 2026 15:41:39 -0300 Subject: [PATCH 38/64] update OGC services --- en/images/qgis-network-logger.png | Bin 38124 -> 141757 bytes en/ogc/mapscript.txt | 6 +- en/ogc/sos_server.txt | 56 +++++++++------- en/ogc/wcs_format.txt | 4 +- en/ogc/wcs_server.txt | 11 ++-- en/ogc/wfs_client.txt | 104 ++++++++++++++++++++---------- en/ogc/wfs_server.txt | 51 ++++++++++++--- en/ogc/wms_client.txt | 67 ++++++++++--------- en/ogc/wms_server.txt | 32 +++++---- en/optimization/debugging.txt | 6 +- en/optimization/mapfile.txt | 14 ++-- en/spelling_wordlist.dict | 22 +++++++ 12 files changed, 241 insertions(+), 132 deletions(-) diff --git a/en/images/qgis-network-logger.png b/en/images/qgis-network-logger.png index 9e1145e06d2eb0caa3f95380ed644f797dd570e8..125f8ab457d93fef615ed8430879cd59358d0fc1 100644 GIT binary patch literal 141757 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 literal 38124 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%0Dsr=Pg(yEK`bdI#{)eIf){kA|(YUJ6mA0u} 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. Use in Non-CGI Environments (mod_php, etc) ============================================================================= -The loadParams() call establish parses the cgi environment varabiables +The loadParams() call establish parses the cgi environment variables (QUERY_STRING, and REQUEST_METHOD) into parameters in the OWSRequest object. In non-cgi environments, such as when php, python and perl are used as "loaded modules" in Apache, or Java with Tomcat, the loadParams() call diff --git a/en/ogc/sos_server.txt b/en/ogc/sos_server.txt index 0797580ecc0..08cf8cb1f42 100644 --- a/en/ogc/sos_server.txt +++ b/en/ogc/sos_server.txt @@ -9,7 +9,7 @@ :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2026-03-29 +:Last Updated: 2026-04-09 .. contents:: Table of Contents :depth: 2 @@ -72,33 +72,39 @@ Setting Up an SOS Server Using MapServer Install the Required Software ----------------------------- -SOS requests are handled by the ":ref:`mapserv`" CGI program. The +SOS requests are handled by the :ref:`mapserv` CGI program. The first step is to check that your mapserv executable includes SOS support. One way to verify this is to use the "-v" command-line switch and look for "SUPPORTS=SOS_SERVER". Example 1. On Unix: -:: +.. code-block:: bash $ ./mapserv -v - MapServer version 4.9 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP - OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER - SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT - SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=THREADS INPUT=JPEG - INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE DEBUG=MSDEBUG + MapServer version 8.7-dev PROJ version 9.8 GDAL version 3.12 + OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG + SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS SUPPORTS=RSVG + SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT + SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER + SUPPORTS=SOS_SERVER SUPPORTS=OGCAPI_SERVER SUPPORTS=GEOS SUPPORTS=PBF + INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE + INPUT=FLATGEOBUF Example 2. On Windows: -:: - - C:\MS4W\Apache\cgi-bin> mapserv -v - MapServer version 4.9 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP - OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER - SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT - SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=THREADS INPUT=JPEG - INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE DEBUG=MSDEBUG +.. code-block:: bash + + C:\ms4w> mapserv -v + MapServer version 8.7.0-dev (MS4W 5.2.0) PROJ version 9.9 + GDAL version 3.13 OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ + SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS + SUPPORTS=SVGCAIRO SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER + SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT + SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=OGCAPI_SERVER + SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS SUPPORTS=PBF INPUT=JPEG + INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE INPUT=FLATGEOBUF .. note:: Windows users can install `MS4W `__ which supports SOS server. @@ -106,13 +112,13 @@ Example 2. On Windows: If you don't have SOS support in your MapServer build, then you must compile MapServer with the following in mind: -- flag *-DUSE_SOS_SVR* is required +- CMake flag *-DWITH_SOS* is required -- requires either *-DUSE_WMS_SVR* or *-DUSE_WFS_SVR* flags to be enabled +- requires either *-DWITH_WMS* or *-DWITH_WFS* flags to be enabled - requires libxml2 and proj libraries -- requires ICONV support (*-DUSE_ICONV*) on Windows +- requires ICONV support (*-DWITH_ICONV*) on Windows For more help with MapServer compilation see the appropriate HowTo: :ref:`Unix ` / :ref:`Windows ` @@ -288,6 +294,7 @@ things are likely not going to work. .. note:: The SERVICE parameter is required for all SOS requests. +`SOS GetCapabilities live example `__ GetObservation Request ###################### @@ -388,7 +395,11 @@ Example 4: http://127.0.0.1/cgi-bin/mapserv.exe?map=D:/ms4w/apps/sos/sos_test.map& Request=GetObservation&service=SOS&Offering=WQ1289& observedproperty=Water Quality&version=1.0.0& - responseFormat=text/xml; subtype="om/1.0.0"&resultModel=om:Observation + responseFormat=text/xml; subtype="om/1.0.0"&resultModel=om:Observation + +Example 5: + +`SOS GetObservation live example `__ DescribeSensor Request ###################### @@ -948,7 +959,7 @@ Layer Object Metadata All *sos_procedure* links from layers in the offerings will be - outputed together, such as the following taken from a + outputted together, such as the following taken from a GetCapabilities response: .. code-block:: xml @@ -996,7 +1007,8 @@ In MapServer 5.0 SOS support has been upgraded to use a new metadata called sos_procedure_item. The value for sos_procedure_item is the field/attribute name containing the procedure values. The use of this metadata as well as the sos_procedure is described here per type of request (refer to -https://github.com/MapServer/MapServer/issues/2050 for more description): +`issue #2050 `__ +for more description): It should be noted that, for very large datasets defined only with sos_procedure_item, this may result in costly processing, because MapServer diff --git a/en/ogc/wcs_format.txt b/en/ogc/wcs_format.txt index 2713a0fbe73..dae5c0b3259 100644 --- a/en/ogc/wcs_format.txt +++ b/en/ogc/wcs_format.txt @@ -11,7 +11,7 @@ :Contact: nbarker at ittvis.com :Author: Gail Millin :Contact: nbarker at ittvis.com -:Last Updated: 2026-03-29 +:Last Updated: 2026-04-09 .. contents:: @@ -318,7 +318,7 @@ and the actual layer The TempData coverage layer will now let you subset with the &bands=... &time=... subset parameters! -To do a coordinate reprojection specify in the request &Response_CRS=ESPG:xxxx +To do a coordinate reprojection specify in the request &Response_CRS=EPSG:xxxx When you start doing temporal subsetting with WCS and MapServer you can see the need for an automatic way of generating map files such as using an XSL diff --git a/en/ogc/wcs_server.txt b/en/ogc/wcs_server.txt index 6917faee2a5..093720f8f1b 100644 --- a/en/ogc/wcs_server.txt +++ b/en/ogc/wcs_server.txt @@ -13,7 +13,7 @@ :Contact: stephan.meissl at eox.at :Author: Fabian Schindler :Contact: fabian.schindler at eox.at -:Last Updated: 2026-03-23 +:Last Updated: 2026-04-09 .. contents:: Table of Contents :depth: 2 @@ -24,7 +24,7 @@ Introduction ============ A WCS (or Web Coverage Service) allows for the publication of -"coverages"- digital geospatial information representing space-varying +"coverages": digital geospatial information representing space-varying phenomena. In the MapServer world it allows for unfiltered access to raster data. Conceptually it is easy think of WCS as a raster equivalent of WFS. The following documentation is based on the `Open @@ -54,7 +54,7 @@ against certain libraries: - PROJ: The reprojection library. Version 4.4.3 or greater is required. - GDAL: raster support library. -- MapServer: version >= 4.4 (tested with 5.0.2 while updating this document) +- MapServer: version >= 4.4 (tested with 8.6.1 while updating this document) For WCS 1.1.x (MapServer 5.2) and WCS 2.0 (MapServer 6.0) support there is an additional requirement: @@ -88,9 +88,8 @@ layers that meet the following conditions: - LAYER metadata "wcs_rangeset_name" must be set - LAYER metadata "wcs_rangeset_label" must be set - LAYER is enabled to be served via WCS (see `MS RFC 67`_) - - LAYER PROJECTION must be set, even if PROJECTION is set at the MAP - level (a bug?) + level Example WCS Server Mapfile -------------------------- @@ -1841,4 +1840,4 @@ Service of Canada. .. _`EOxServer`: https://eoxserver.org .. _`WCS DescribeCoverage live example`: https://demo.mapserver.org/cgi-bin/wcs?SERVICE=WCS&VERSION=1.0.0&REQUEST=DescribeCoverage&COVERAGE=modis .. _`WCS GetCapabilities live example`: https://demo.mapserver.org/cgi-bin/wcs?SERVICE=WCS&VERSION=1.0.0&REQUEST=GetCapabilities -.. _`WCS GetCoverage live example`: https://demo.mapserver.org/cgi-bin/wcs?SERVICE=WCS&VERSION=1.0.0&REQUEST=GetCoverage&COVERAGE=modis-001&CRS=EPSG:26915&BBOX=159707,4597395,1400707,5501395&WIDTH=400&HEIGHT=300&FORMAT=GEOTIFF_RGB +.. _`WCS GetCoverage live example`: https://demo.mapserver.org/cgi-bin/wcs?SERVICE=WCS&VERSION=1.0.0&REQUEST=GetCoverage&COVERAGE=modis&TIME=2002-001&CRS=EPSG:26915&BBOX=159707,4597395,1400707,5501395&WIDTH=400&HEIGHT=300&FORMAT=geotiff diff --git a/en/ogc/wfs_client.txt b/en/ogc/wfs_client.txt index c171a3a95d6..87301500842 100644 --- a/en/ogc/wfs_client.txt +++ b/en/ogc/wfs_client.txt @@ -7,11 +7,10 @@ WFS Client ***************************************************************************** -:Author: Jean-François Doyon -:Contact: jdoyon at nrcan.gc.ca :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2020-06-09 +:Original Author: Jean-François Doyon +:Last Updated: 2026-04-09 .. contents:: :depth: 3 @@ -25,7 +24,7 @@ following document explains how to display data from a WFS server using the MapServer `CONNECTIONTYPE` `WFS`. WFS can also be accessed through OGR (`CONNECTIONTYPE` `OGR`). -See the :ref:`OGR` documentation for datails. +See the :ref:`OGR` documentation for details. A WFS ( Web Feature Service ) publishes feature-level geospatial data to the web. This means that it is possible to use this data as a data @@ -54,21 +53,50 @@ references (including a newly added OGC workshop with MapServer): Software Requirements --------------------- -In order to enable MapServer to serve WFS, it MUST be compiled against +In order to enable MapServer to connect through WFS, it MUST be compiled against certain libraries: -- PROJ: The reprojection library. Version 4.4.3 or greater is +- `PROJ `__: The reprojection library. Version 4.4.3 or greater is required. -- GDAL/OGR: I/O support libraries. Version 1.1.8 or greater is +- `GDAL `__: I/O support libraries. Version 1.1.8 or greater is required. -- LibCURL: Used to help MapServer act as an HTTP client. Version 7.10 +- `LibCURL `__: Used to help MapServer act as an HTTP client. Version 7.10 or greater is required. -Please see the MapServer UNIX Compilation and Installation HOWTO for -detailed instructions on compiling mapserver with support for these -libraries and features. For Windows users, look on the MapServer -website to see if there are any binaries available that meet these -requirements. +(Unix users should refer to the :ref:`unix` document for any compiling +instructions, and Windows users might want to use `MS4W `__, +which comes ready with WFS support) + +You can check that your mapserv executable includes WFS client support by using +the "-v" command-line switch and look for "SUPPORTS=WFS_CLIENT". + +Example 1. On Unix: + +.. code-block:: bash + + $ ./mapserv -v + MapServer version 8.7-dev PROJ version 9.8 GDAL version 3.12 + OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG + SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS SUPPORTS=RSVG + SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT + SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER + SUPPORTS=SOS_SERVER SUPPORTS=OGCAPI_SERVER SUPPORTS=GEOS SUPPORTS=PBF + INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE + INPUT=FLATGEOBUF + +Example 2. On Windows: + +.. code-block:: bash + + C:\ms4w> mapserv -v + MapServer version 8.7.0-dev (MS4W 5.2.0) PROJ version 9.9 + GDAL version 3.13 OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ + SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS + SUPPORTS=SVGCAIRO SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER + SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT + SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=OGCAPI_SERVER + SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS SUPPORTS=PBF INPUT=JPEG + INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE INPUT=FLATGEOBUF .. index:: pair: WFS Client; Mapfile @@ -82,7 +110,7 @@ Storing Temporary Files You must set the :ref:`IMAGEPATH ` parameter in your mapfile since MapServer uses this directory to store temporary files downloaded from the remote WFS server. **Windows** users must specify -a full path for IMAGEPATH, such as: *IMAGEPATH "C:/tmp/ms_tmp/"* +a full path for IMAGEPATH, such as: *IMAGEPATH "C:/ms4w/tmp/ms_tmp/"* .. code-block:: mapfile @@ -94,6 +122,20 @@ a full path for IMAGEPATH, such as: *IMAGEPATH "C:/tmp/ms_tmp/"* END ... END + +`MS4W `__ users should specify the following for IMAGEPATH +and IMAGEURL: + +.. code-block:: mapfile + + MAP + ... + WEB + IMAGEPATH "/ms4w/tmp/ms_tmp/" + IMAGEURL "/ms_tmp/" + END + ... + END Configuring for HTTPS Connections --------------------------------- @@ -107,19 +149,19 @@ WFS Layer A WFS layer is a regular mapfile layer, which can use CLASS objects, with expressions, etc. -As of MapServer 4.4, the suggested method to define a WFS Client layer +Since MapServer 4.4, the suggested method to define a WFS Client layer is through the CONNECTION parameter and the layer's METADATA. The necessary mapfile parameters are defined below: - *CONNECTIONTYPE*: must be "wfs" - *CONNECTION*: The URL to the WFS - Server. e.g. https://demo.mapserver.org/cgi-bin/wfs? The path to the - mapfile on the WFS server is required if it was required in the - GetCapabilities request e.g. you would have to specify the MAP - parameter in the CONNECTION for the following server: - `http://map.ns.ec.gc.ca/MapServer/mapserv.exe?MAP=/mapserver/services/envdat/config.map`_ - `&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetCapabilities`_ + Server. e.g. `https://demo.mapserver.org/cgi-bin/wfs? `__ + + .. note:: + The path to the mapfile on the WFS server is required if it was required in the + GetCapabilities request e.g. in that case the CONNECTION value could be + `https://somedomain/mapserv?MAP=/some/path/ttt.map` .. index:: triple: WFS Client; LAYER; METADATA @@ -139,9 +181,6 @@ necessary mapfile parameters are defined below: parameter in the getFeature request (see the :ref:`Filter Encoding Howto ` for more information on filtering). The content of the wfs_filter is a valid filter encoding element. - - .. _`http://map.ns.ec.gc.ca/MapServer/mapserv.exe?MAP=/mapserver/services/envdat/config.map`: http://map.ns.ec.gc.ca/MapServer/mapserv.exe?MAP=/mapserver/services/envdat/config.map&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetCapabilities - .. _`&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetCapabilities`: http://map.ns.ec.gc.ca/MapServer/mapserv.exe?MAP=/mapserver/services/envdat/config.map&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetCapabilities .. code-block:: mapfile @@ -178,11 +217,9 @@ necessary mapfile parameters are defined below: ... - *wfs_typename* (required): the of the layer found in the - GetCapabilities. An example GetCapabilities request is: - `https://demo.mapserver.org/cgi-bin/wfs?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetCapabilities`__ + GetCapabilities. See an example GetCapabilities + `request `__. - __ https://demo.mapserver.org/cgi-bin/wfs?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetCapabilities - - *wfs_version* (required): WFS version, currently "1.0.0" .. Note:: Each of the above metadata can also be referred to as @@ -249,7 +286,7 @@ Optional Layer Parameters and Metadata - digest - ntlm - any (the underlying http library picks the best among the - opotions supported by the remote server) + options supported by the remote server) - anysafe (the underlying http library picks only safe methods among the options supported by the remote server) @@ -314,7 +351,6 @@ Example WFS Layer "wfs_typename" "continents" "wfs_version" "1.0.0" "wfs_connectiontimeout" "60" - "wfs_maxfeatures" "10" END PROJECTION "init=epsg:4326" @@ -322,8 +358,8 @@ Example WFS Layer CLASS NAME "Continents" STYLE - COLOR 255 128 128 - OUTLINECOLOR 96 96 96 + COLOR 255 128 128 + OUTLINECOLOR 96 96 96 END END END # Layer @@ -331,8 +367,8 @@ Example WFS Layer Connection - deprecated ----------------------- -As of MapServer v4.4 the method of specifying all of the connection -information in the CONNECTION parameter has beendeprecated. The +Since MapServer v4.4 the method of specifying all of the connection +information in the CONNECTION parameter has been deprecated. The preferred method is mentioned above. If the metadata is not provided, VERSION, SERVICE, and TYPENAME will be fetched from the CONNECTION, as shown below diff --git a/en/ogc/wfs_server.txt b/en/ogc/wfs_server.txt index c116094a4d7..518d8e7226c 100644 --- a/en/ogc/wfs_server.txt +++ b/en/ogc/wfs_server.txt @@ -11,7 +11,7 @@ :Contact: jmckenna at gatewaygeomatics.com :Author: Even Rouault :Contact: even.rouault at mines-paris.org -:Last Updated: 2026-03-29 +:Last Updated: 2026-04-09 .. contents:: :depth: 2 @@ -67,14 +67,44 @@ Software Requirements In order to enable MapServer to serve WFS, it MUST be compiled against certain libraries: -- PROJ: The reprojection library. Version 4.4.3 or greater is required. +- `PROJ `__: The reprojection library. Version 4.4.3 or greater is required. -- GDAL/OGR: I/O support libraries. Version 1.6.0 or greater is required. +- `GDAL `__: I/O support libraries. Version 1.6.0 or greater is required. -Please see the MapServer :ref:`UNIX Compilation and Installation HowTo -` for detailed instructions on compiling MapServer with support -for these libraries and features. For Windows users, the `MS4W`_ -installer comes ready to serve both WFS and WMS. +(Unix users should refer to the :ref:`unix` document for any compiling +instructions, and Windows users might want to use `MS4W `__, +which comes ready with WFS support) + +You can check that your mapserv executable includes WFS server support by using +the "-v" command-line switch and look for "SUPPORTS=WFS_SERVER". + +Example 1. On Unix: + +.. code-block:: bash + + $ ./mapserv -v + MapServer version 8.7-dev PROJ version 9.8 GDAL version 3.12 + OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG + SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS SUPPORTS=RSVG + SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT + SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER + SUPPORTS=SOS_SERVER SUPPORTS=OGCAPI_SERVER SUPPORTS=GEOS SUPPORTS=PBF + INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE + INPUT=FLATGEOBUF + +Example 2. On Windows: + +.. code-block:: bash + + C:\ms4w> mapserv -v + MapServer version 8.7.0-dev (MS4W 5.2.0) PROJ version 9.9 + GDAL version 3.13 OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ + SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS + SUPPORTS=SVGCAIRO SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER + SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT + SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=OGCAPI_SERVER + SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS SUPPORTS=PBF INPUT=JPEG + INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE INPUT=FLATGEOBUF .. index:: pair: WFS Server; GML @@ -367,11 +397,13 @@ few pointers: - `QGIS`_ is a full GIS package which includes WFS client support. (recommended) + + .. tip:: + You can/should use the `QGIS Network Logger `__ + to get the exact GetFeature or GetCapabilities requests sent by QGIS. - `Deegree`_ provides a WFS client. -- `uDig`_ can add layers from WMS/WFS servers. - Test with an ogrinfo command **************************** @@ -1480,7 +1512,6 @@ To-do Items and Known Limitations .. _`WFS 1.0.0 specification`: https://portal.ogc.org/files/?artifact_id=7176 .. _`QGIS`: https://qgis.org/ .. _`Deegree`: https://www.deegree.org/ -.. _`uDig`: https://en.wikipedia.org/wiki/UDig .. _`WFS 1.0.0 spec`: https://portal.ogc.org/files/?artifact_id=7176 .. _`GeoServer`: https://geoserver.org .. _`TinyOWS`: https://mapserver.org/tinyows/ diff --git a/en/ogc/wms_client.txt b/en/ogc/wms_client.txt index 6625b92d597..f434d1d08de 100755 --- a/en/ogc/wms_client.txt +++ b/en/ogc/wms_client.txt @@ -9,7 +9,7 @@ :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2026-03-24 +:Last Updated: 2026-04-09 .. contents:: Table of Contents :depth: 4 @@ -47,21 +47,22 @@ WMS-Related Information Compilation / Installation ========================== -The WMS connection type is enabled by the *--with-wmsclient* configure switch. +The WMS connection type is enabled by the *-DWITH_CLIENT_WMS* CMake switch. It requires PROJ, GDAL and libcurl version 7.10.1 or more recent. Windows users who do not want to compile MapServer should use `MS4W`_ (which comes ready for WMS/WFS client and server use), or check for the availability of other :ref:`Windows binaries ` with WMS support. -- For PROJ and GDAL installation, see the MapServer Compilation HowTo (:ref:`unix` / :ref:`win32`) +- For `PROJ `__ and `GDAL `__ installation, + see the MapServer Compilation HowTo (:ref:`unix` / :ref:`win32`) - For `libcurl`_, make sure you have version 7.10.1 or more recent installed on your system. You can find out your libcurl version using *curl-config --version*. (if your system came with an older version of libcurl preinstalled then you MUST uninstall it prior to installing the new version) Once the required libraries are installed, then configure MapServer using the -*--with-wmsclient* switch (plus all the other switches you used to use) and recompile. -This will give you a new set of executables (and possibly php_mapscript.so if you +*-DWITH_CLIENT_WMS* CMake switch (plus all the other switches you used to use) and recompile. +This will give you a new set of executables (and possibly php_mapscriptng.so if you requested it). See the MapServer Compilation HowTo (links above) for installation details. Check your MapServer executable @@ -75,27 +76,28 @@ Example 1. Mapserv Version Info on Unix: .. code-block:: bash $ ./mapserv -v - MapServer version 7.7-dev OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML - SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO - SUPPORTS=SVG_SYMBOLS SUPPORTS=RSVG SUPPORTS=ICONV SUPPORTS=FRIBIDI - SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER - SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER - SUPPORTS=GEOS SUPPORTS=POINT_Z_M SUPPORTS=PBF INPUT=JPEG - INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE + MapServer version 8.7-dev PROJ version 9.8 GDAL version 3.12 + OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG + SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS SUPPORTS=RSVG + SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT + SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER + SUPPORTS=SOS_SERVER SUPPORTS=OGCAPI_SERVER SUPPORTS=GEOS SUPPORTS=PBF + INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE + INPUT=FLATGEOBUF Example 2. Mapserv Version Info on Windows: .. code-block:: bash C:\ms4w> mapserv -v - MapServer version 7.6.0-dev (MS4W 4.0.3) OUTPUT=PNG OUTPUT=JPEG - OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE - SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS SUPPORTS=SVGCAIRO - SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER + MapServer version 8.7.0-dev (MS4W 5.2.0) PROJ version 9.9 + GDAL version 3.13 OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ + SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS + SUPPORTS=SVGCAIRO SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT - SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI - SUPPORTS=THREADS SUPPORTS=GEOS SUPPORTS=POINT_Z_M SUPPORTS=PBF - INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE + SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=OGCAPI_SERVER + SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS SUPPORTS=PBF INPUT=JPEG + INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE INPUT=FLATGEOBUF .. index:: pair: WMS Client; Mapfile @@ -134,7 +136,8 @@ Example 3. Setting IMAGEPATH Parameter in Mapfile ... END -MS4W Users Should Specify the Following for IMAGEPATH and IMAGEURL: +`MS4W `__ users should specify the following for +IMAGEPATH and IMAGEURL: .. code-block:: mapfile @@ -190,6 +193,9 @@ example of a layer using this connection type: "wms_server_version" "1.1.1" "wms_format" "image/png" END + PROJECTION + "init=epsg:4326" + END END You can also combine remote WMS layers from a server into one layer, separated @@ -201,14 +207,18 @@ by a comma (,) such as: NAME "census_tracts" TYPE RASTER STATUS ON - CONNECTION "http://tigerweb.geo.census.gov/arcgis/services/TIGERweb/tigerWMS_ACS2015/MapServer/WMSServer?" + CONNECTION "https://tigerweb.geo.census.gov/arcgis/services/TIGERweb/tigerWMS_ACS2015/MapServer/WMSServer?" CONNECTIONTYPE WMS METADATA - "wms_srs" "EPSG:4326" - "wms_name" "Census Tracts,Census Tracts Labels" - "wms_server_version" "1.1.1" - "wms_format" "image/png24" + "wms_srs" "EPSG:4326" + #"wms_name" "Census Tracts,Census Tracts Labels" + "wms_name" "77,76" + "wms_server_version" "1.1.1" + "wms_format" "image/png24" END + PROJECTION + "init=epsg:4326" + END END .. NOTE:: @@ -427,7 +437,7 @@ Optional Layer Parameters and Metadata - basic - digest - ntlm - - any (the underlying http library picks the best among the opotions supported by the remote server) + - any (the underlying http library picks the best among the options supported by the remote server) - anysafe (the underlying http library picks only safe methods among the options supported by the remote server) .. code-block:: mapfile @@ -607,7 +617,6 @@ Limitations/TODO .. _`WMS 1.1.1 specification`: https://portal.ogc.org/files/?artifact_id=1081&version=1&format=pdf .. _`WMS 1.3.0 specification`: https://portal.ogc.org/files/?artifact_id=14416 .. _`MapServer OGC Web Services Workshop package`: https://mapserver.github.io/ms-ogc-workshop/ -.. _`libcurl`: https://curl.se/libcurl/c/ +.. _`libcurl`: https://curl.se/libcurl/ .. _`MS4W`: https://ms4w.com -.. _`download a custom Canadian epsg file`: http://www.maptools.org/dl/proj4-epsg-with-42xxx.zip -.. _`custom ESRI epsg file`: http://www.maptools.org/dl/proj4-epsg-with-42xxx-and-esri.zip + diff --git a/en/ogc/wms_server.txt b/en/ogc/wms_server.txt index aad41d9b9f1..4890c15774c 100644 --- a/en/ogc/wms_server.txt +++ b/en/ogc/wms_server.txt @@ -9,7 +9,7 @@ :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2026-03-29 +:Last Updated: 2026-04-09 .. contents:: Table of Contents :depth: 3 @@ -125,27 +125,28 @@ Example 1. On Unix: .. code-block:: bash $ ./mapserv -v - MapServer version 8.3-dev PROJ version 9.4 GDAL version 3.9 OUTPUT=PNG - OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE - SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS SUPPORTS=RSVG SUPPORTS=ICONV - SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER - SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER - SUPPORTS=OGCAPI_SERVER SUPPORTS=GEOS SUPPORTS=PBF INPUT=JPEG INPUT=POSTGIS - INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE INPUT=FLATGEOBU + MapServer version 8.7-dev PROJ version 9.8 GDAL version 3.12 + OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG + SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS SUPPORTS=RSVG + SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT + SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER + SUPPORTS=SOS_SERVER SUPPORTS=OGCAPI_SERVER SUPPORTS=GEOS SUPPORTS=PBF + INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE + INPUT=FLATGEOBUF Example 2. On Windows: .. code-block:: bash C:\ms4w> mapserv -v - MapServer version 8.3.0-dev (MS4W 5.0.0) PROJ version 9.5 - GDAL version 3.10 OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ + MapServer version 8.7.0-dev (MS4W 5.2.0) PROJ version 9.9 + GDAL version 3.13 OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS SUPPORTS=SVGCAIRO SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER - SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER - SUPPORTS=SOS_SERVER SUPPORTS=OGCAPI_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS - SUPPORTS=GEOS SUPPORTS=PBF INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL - INPUT=SHAPEFILE INPUT=FLATGEOBUF + SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT + SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=OGCAPI_SERVER + SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS SUPPORTS=PBF INPUT=JPEG + INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE INPUT=FLATGEOBUF .. index:: pair: WMS Server; Mapfile @@ -506,8 +507,6 @@ few pointers: - `OpenJUMP`_ is a desktop GIS package which includes WMS client support. -- `uDig`_ is a desktop package that allows users to add WMS layers. - - `Deegree`_ provides a WMS client. This list is not exhaustive, there are several Open Source or @@ -2473,7 +2472,6 @@ FAQ / Common Problems .. _`QGIS`: https://qgis.org/ .. _`OpenJUMP`: https://openjump.org .. _`Deegree`: https://www.deegree.org/ -.. _`uDig`: https://en.wikipedia.org/wiki/UDig .. _`WMS 1.1.1 section 6.2.2`: https://portal.ogc.org/files/?artifact_id=1081&version=1&format=pdf .. _`valid request`: https://demo.mapserver.org/cgi-bin/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&BBOX=-180,-90,180,90&SRS=EPSG:4326&WIDTH=953&HEIGHT=480&LAYERS=bluemarble,cities&STYLES=&FORMAT=image/png&TRANSPARENT=true .. _`text/plain`: https://demo.mapserver.org/cgi-bin/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetFeatureInfo&BBOX=-11.332970,24.121208,47.584718,57.965035&SRS=EPSG:4326&WIDTH=1001&HEIGHT=575&LAYERS=cities&STYLES=&FORMAT=image/png&TRANSPARENT=true&QUERY_LAYERS=cities&INFO_FORMAT=text/plain&X=229&Y=280 diff --git a/en/optimization/debugging.txt b/en/optimization/debugging.txt index daf5e50fa14..1e78385e2bc 100644 --- a/en/optimization/debugging.txt +++ b/en/optimization/debugging.txt @@ -9,7 +9,7 @@ :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2025-10-05 +:Last Updated: 2026-04-09 .. contents:: Table of Contents :depth: 3 @@ -644,9 +644,9 @@ steps on how to implement the network logger see then right-click on the request in the Network Logger and select "Open URL" to see the full request and resulting map image in your browser. -.. image:: ../images/qgis-network-logger2.png +.. image:: ../images/qgis-network-logger.png :width: 800 - :height: 443 + :height: 403 :class: no-scaled-link .. index:: diff --git a/en/optimization/mapfile.txt b/en/optimization/mapfile.txt index 26814aaa622..582c257411c 100644 --- a/en/optimization/mapfile.txt +++ b/en/optimization/mapfile.txt @@ -11,7 +11,7 @@ :Contact: david.fawcett at gmail.com :Author: Jeff McKenna :Contact: jmckenna at gatewaygeomatics.com -:Last Updated: 2026-03-29 +:Last Updated: 2026-04-09 .. contents:: Table of Contents :depth: 3 @@ -157,14 +157,16 @@ You can use this to also test problematic WMS GetMap requests as well: mapserv -nh "QUERY_STRING=SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=41.42710000000000292,-173.4329999999999927,83.74660000000000082,-13.04809999999999981&CRS=EPSG:4326&WIDTH=369&HEIGHT=98&LAYERS=park&STYLES=&FORMAT=image/png&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE" > test.png -**Note:** Besides checking your web server logs, you can also use QGIS to get the exact -request to your OWS (WMS/WFS etc.) service: see https://github.com/MapServer/MapServer/wiki/Get-the-Raw-WMS-Request-Generated-by-QGIS +.. NOTE:: + Besides checking your web server logs, you can also use the QGIS network tools + to get the exact request to your OWS (WMS/WFS etc.) service: see steps + `here `__ .. image:: ../images/qgis-network-logger.png :width: 800 - :height: 207 - :class: no-scaled-link - + :height: 403 + :class: no-scaled-link + 5. Projections -------------- diff --git a/en/spelling_wordlist.dict b/en/spelling_wordlist.dict index a8d91bd56f2..bb7ca302bd5 100644 --- a/en/spelling_wordlist.dict +++ b/en/spelling_wordlist.dict @@ -1,5 +1,6 @@ accessconstraints advertize +advertized advertizing agg AGG @@ -24,7 +25,9 @@ basemaps bbox behaviour bing +Bluemarble bonfort +BoundingBox bugfix bugfixes cairo @@ -73,6 +76,7 @@ datasource datasources dbf dbname +DescribeCoverage dev distro dll @@ -100,6 +104,7 @@ fcgi fcgid FeatureInfo featureinfo +featureInfo filepaths filesystem filesystems @@ -137,9 +142,12 @@ geos GEOS geospatial geotiff +geoTiff getCapabilities +GetCapabilities getfeature getFeature +GetFeature getFeatureInfo getfeatureinfo GetMap @@ -154,6 +162,7 @@ grayscale greyscale gridObj gtiff +GTiff guestimate gzip GZip @@ -184,6 +193,7 @@ imagepath imagetype imageurl img +ip itemnquery itemquery javascript @@ -231,6 +241,7 @@ listserv localhost logfile lon +lonlat lookups makefile makefiles @@ -250,6 +261,7 @@ mapscripts mapserv mapserver MapServer +maxfeatures maxscale maxscaledenom maxx @@ -257,6 +269,9 @@ maxy memcache memcached mercator +metadatalink +metadataurl +metafile metatile mimetype minscale @@ -268,6 +283,7 @@ mosaicing msautotest msDebug msencrypt +msEncrypt msError msLoadMap msplugin @@ -318,6 +334,7 @@ oraclespatial organisational organise organised +ortho orthos osgeo OSGEO @@ -387,10 +404,12 @@ queryfile querymap querymaps Rahkonen +rangeset README reaspect recompression referenceMapObj +refetching renderer renderers reproject @@ -428,6 +447,7 @@ shptreetst shptreevis SLD sld +sortables sortshp sos SOS @@ -451,6 +471,7 @@ styleObj subfolder subqueries subquery +subsetting substring subtiles superoverlay @@ -497,6 +518,7 @@ uncommenting uncompress unix unprojected +unreferenced untiled uri url From 118adefdb4ca8c8096d8ca738b14a5fae4cf394f Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Mon, 13 Apr 2026 16:51:56 -0300 Subject: [PATCH 39/64] update OGC services [build_translations] --- conf.py | 2 +- en/images/qgis-add-wcs-layer.png | Bin 0 -> 31063 bytes en/images/qgis-add-wcs-layer2.png | Bin 0 -> 46202 bytes en/images/wcs-index1.png | Bin 0 -> 39968 bytes en/images/wcs-index2.png | Bin 0 -> 46690 bytes en/ogc/ogc_api.txt | 2 +- en/ogc/sos_server.txt | 2 +- en/ogc/wcs_format.txt | 21 +- en/ogc/wcs_server.txt | 999 ++++++++++++++++++++++++------ en/ogc/wfs_client.txt | 6 +- en/ogc/wfs_server.txt | 2 +- en/ogc/wms_client.txt | 6 +- en/ogc/wms_server.txt | 2 +- en/spelling_wordlist.dict | 51 ++ requirements.txt | 1 + 15 files changed, 887 insertions(+), 207 deletions(-) create mode 100644 en/images/qgis-add-wcs-layer.png create mode 100644 en/images/qgis-add-wcs-layer2.png create mode 100644 en/images/wcs-index1.png create mode 100644 en/images/wcs-index2.png diff --git a/conf.py b/conf.py index 020abae900d..6686aa9fca6 100644 --- a/conf.py +++ b/conf.py @@ -50,7 +50,7 @@ def __getattr__(cls, name): #extensions = ['labels', 'sphinxcontrib.spelling'] extensions = ['labels', 'sphinx.ext.autodoc', 'sphinx.ext.autosummary', 'sphinx.ext.viewcode' - , 'sphinxcontrib.jquery', 'sphinx_copybutton'] + , 'sphinxcontrib.jquery', 'sphinx_copybutton', 'sphinx_collapse'] autosummary_generate = True # when True create a page for each mapscript class diff --git a/en/images/qgis-add-wcs-layer.png b/en/images/qgis-add-wcs-layer.png new file mode 100644 index 0000000000000000000000000000000000000000..18e75d87c953d798308da4e1b76a0a8cae513898 GIT binary patch literal 31063 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

3ePo_3(ffBc-83E{Zo0m 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 literal 0 HcmV?d00001 diff --git a/en/images/wcs-index1.png b/en/images/wcs-index1.png new file mode 100644 index 0000000000000000000000000000000000000000..24cd5e1fee8b11d3f68956b51786b904a53744ec GIT binary patch literal 39968 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 u>I&9IUGi6(5`XoV6x;@|j-rLyNjaaCT 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%0AqVM_=LKi-oIQR!5^|i|tO2l#BzuL@hgO%T{mQkP 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 literal 0 HcmV?d00001 diff --git a/en/ogc/ogc_api.txt b/en/ogc/ogc_api.txt index 561ea763c1d..391b7d94764 100644 --- a/en/ogc/ogc_api.txt +++ b/en/ogc/ogc_api.txt @@ -117,7 +117,7 @@ Example 2. On Windows: :: C:\ms4w> mapserv -v - MapServer version 8.7.0-dev (MS4W 5.2.0) PROJ version 9.8 + MapServer version 8.7-dev (MS4W 5.2.0) PROJ version 9.8 GDAL version 3.13 OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS SUPPORTS=SVGCAIRO SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT diff --git a/en/ogc/sos_server.txt b/en/ogc/sos_server.txt index 08cf8cb1f42..18fd6e5a66f 100644 --- a/en/ogc/sos_server.txt +++ b/en/ogc/sos_server.txt @@ -97,7 +97,7 @@ Example 2. On Windows: .. code-block:: bash C:\ms4w> mapserv -v - MapServer version 8.7.0-dev (MS4W 5.2.0) PROJ version 9.9 + MapServer version 8.7-dev (MS4W 5.2.0) PROJ version 9.9 GDAL version 3.13 OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS SUPPORTS=SVGCAIRO SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER diff --git a/en/ogc/wcs_format.txt b/en/ogc/wcs_format.txt index dae5c0b3259..e3b5ff0103f 100644 --- a/en/ogc/wcs_format.txt +++ b/en/ogc/wcs_format.txt @@ -11,7 +11,9 @@ :Contact: nbarker at ittvis.com :Author: Gail Millin :Contact: nbarker at ittvis.com -:Last Updated: 2026-04-09 +:Author: Jeff McKenna +:Contact: jmckenna at gatewaygeomatics.com +:Last Updated: 2026-04-13 .. contents:: @@ -24,6 +26,8 @@ Steve Lime and Frank Warmerdam for their assistance with these projects It also shows how to configure MapServer for GRIB2 output format. +.. seealso:: :ref:`WCS Server HowTo ` + Landsat ======= @@ -273,16 +277,23 @@ Define your output format as EXTENSION 'tif' END -Then you need to define your tile index within the map file +Then you need to define your tile index within the mapfile. + +.. NOTE:: + You must setup a :ref:`VALIDATION ` block for MapServer to + properly pass the *time* values in the WCS request. .. code-block:: mapfile LAYER NAME 'time_idx' TYPE TILEINDEX - DATA 'timeIndex' - FILTERITEM 'time' - FILTER '%time%' + DATA 'timeIndex.shp' + FILTER ("[time]" = '%time%') + VALIDATION + #handle time values of format YYYY-MM-DDT00:00:00 + 'time' '^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$' + END END and the actual layer diff --git a/en/ogc/wcs_server.txt b/en/ogc/wcs_server.txt index 093720f8f1b..d6264497327 100644 --- a/en/ogc/wcs_server.txt +++ b/en/ogc/wcs_server.txt @@ -13,7 +13,7 @@ :Contact: stephan.meissl at eox.at :Author: Fabian Schindler :Contact: fabian.schindler at eox.at -:Last Updated: 2026-04-09 +:Last Updated: 2026-04-13 .. contents:: Table of Contents :depth: 2 @@ -34,6 +34,7 @@ Implementation Specification version 1.0.0`_. Links to WCS-Related Information -------------------------------- +- :ref:`MapServer WCS Use Cases ` - `OGC'c WCS Standard page`_ - `WCS 1.0.0 specification`_ - `WCS 1.1.1c1 specification`_ @@ -44,27 +45,57 @@ Links to WCS-Related Information - `WCS 2.0 Specification - KVP Protocol Binding Extension`_ - `WCS 2.0 Specification - XML/POST Protocol Binding Extension`_ -- :ref:`WMS Server HowTo ` - Software Requirements --------------------- In order to enable MapServer to serve WCS data, it MUST be compiled against certain libraries: -- PROJ: The reprojection library. Version 4.4.3 or greater is required. -- GDAL: raster support library. +- `PROJ `__: The reprojection library. Version 4.4.3 or + greater is required. +- `GDAL `__: raster support library. - MapServer: version >= 4.4 (tested with 8.6.1 while updating this document) -For WCS 1.1.x (MapServer 5.2) and WCS 2.0 (MapServer 6.0) support +For WCS 1.1.x support (since MapServer 5.2) and WCS 2.0 support (since MapServer 6.0) there is an additional requirement: -- libxml2: An xml parser and generation library. +- `libxml2 `__: An xml + parser and generation library. + +(Unix users should refer to the :ref:`unix` document for any compiling +instructions, and Windows users might want to use `MS4W `__, +which comes ready with WCS support) + +You can check that your :ref:`mapserv` executable includes WCS server support +by using the "-v" command-line switch and look for "SUPPORTS=WCS_SERVER". + +Example 1. On Unix: + +.. code-block:: bash + + $ ./mapserv -v + MapServer version 8.7-dev PROJ version 9.8 GDAL version 3.12 + OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG + SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS SUPPORTS=RSVG + SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT + SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER + SUPPORTS=SOS_SERVER SUPPORTS=OGCAPI_SERVER SUPPORTS=GEOS SUPPORTS=PBF + INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE + INPUT=FLATGEOBUF -Please see the :ref:`MapServer UNIX Compilation and Installation HowTo -` for detailed instructions on compiling MapServer with support -for these libraries and features. For Windows users, `MapServer for -Windows (MS4W)`_ comes with WCS Server support. +Example 2. On Windows: + +.. code-block:: bash + + C:\ms4w> mapserv -v + MapServer version 8.7-dev (MS4W 5.2.0) PROJ version 9.9 + GDAL version 3.13 OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ + SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS + SUPPORTS=SVGCAIRO SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER + SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT + SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=OGCAPI_SERVER + SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS SUPPORTS=PBF INPUT=JPEG + INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE INPUT=FLATGEOBUF .. index:: pair: WCS Server; Mapfile @@ -72,97 +103,105 @@ Windows (MS4W)`_ comes with WCS Server support. Configuring Your Mapfile to Serve WCS Layers ============================================ -Much as in the WMS and WFS support, WCS publishing is enabled by -adding certain magic METADATA keyword/value pairs to a .map file. +Similar to configuring :ref:`WMS ` and :ref:`WFS ` +support, WCS publishing in MapServer is enabled by adding certain magic +METADATA keyword/value pairs to a `.map` file. MapServer will serve and include in its WCS capabilities only the layers that meet the following conditions: - Data source is a raster, which is processed using GDAL - (e.g GeoTIFF, Erdas Imagine, ...) + (e.g GeoTIFF, NetCDF, ...) - LAYER NAME must be set - LAYER TYPE is set to RASTER -- WEB metadata or LAYER metadata "wcs_enable_request" must be set +- WEB metadata or LAYER metadata "wcs_enable_request" must be set + (see `MS RFC 67`_) - WEB metadata "wcs_label" must be set - LAYER metadata "wcs_label" must be set - LAYER metadata "wcs_rangeset_name" must be set - LAYER metadata "wcs_rangeset_label" must be set -- LAYER is enabled to be served via WCS (see `MS RFC 67`_) -- LAYER PROJECTION must be set, even if PROJECTION is set at the MAP - level +- LAYER PROJECTION must be set (which tells MapServer the source projection + of the raster), and must also set the map-level PROJECTION (which + specifies the output projection) Example WCS Server Mapfile -------------------------- -The following is an example of a simple WCS Server mapfile. Note the -comments for the required parameters. +The following is an example of a simple WCS Server mapfile (that servers one +single raster). Note the comments for the required parameters. .. code-block:: mapfile - MAP - NAME WCS_server - STATUS ON - SIZE 400 300 - SYMBOLSET "../etc/symbols.txt" - EXTENT -2200000 -712631 3072800 3840000 - UNITS METERS - SHAPEPATH "../data" - IMAGECOLOR 255 255 255 - FONTSET "../etc/fonts.txt" - - - # - # Start of web interface definition - # - WEB - IMAGEPATH "/ms4w/tmp/ms_tmp/" - IMAGEURL "/ms_tmp/" - METADATA - "wcs_label" "GMap WCS Demo Server" ### required - "wcs_description" "Some text description of the service" - "wcs_onlineresource" "http://127.0.0.1/cgi-bin/mapserv.exe?" ### recommended - "wcs_fees" "none" - "wcs_accessconstraints" "none" - "wcs_keywordlist" "wcs,test" - "wcs_metadatalink_type" "TC211" - "wcs_metadatalink_format" "text/plain" - "wcs_metadatalink_href" "http://someurl.com" - "wcs_address" "124 Gilmour Street" - "wcs_city" "Ottawa" - "wcs_stateorprovince" "ON" - "wcs_postcode" "90210" - "wcs_country" "Canada" - "wcs_contactelectronicmailaddress" "blah@blah" - "wcs_contactperson" "me" - "wcs_contactorganization" "unemployed" - "wcs_contactposition" "manager" - "wcs_contactvoicetelephone" "613-555-1234" - "wcs_contactfacimiletelephone" "613-555-1235" - "wcs_service_onlineresource" "http://127.0.0.1/cgi-bin/mapserv.exe?" - "wcs_enable_request" "*" + MAP + NAME "WCS_server" + STATUS ON + SIZE 400 300 + SYMBOLSET "../etc/symbols.txt" + EXTENT -6661783 2801107 11407237 8055791 #for EPSG:3857, but useful only when testing mapfile through map2img (with WCS) + UNITS METERS + SHAPEPATH "./data" + IMAGECOLOR 255 255 255 + FONTSET "../etc/fonts.txt" + + CONFIG "MS_ERRORFILE" "/ms4w/tmp/ms_tmp/ms_error.txt" + DEBUG 5 + + WEB + IMAGEPATH "/ms4w/tmp/ms_tmp/" + IMAGEURL "/ms_tmp/" + METADATA + "wcs_label" "WCS Demo Server" ### required + "wcs_description" "Some text description of the service" ### recommended + "wcs_onlineresource" "http://127.0.0.1/cgi-bin/mapserv.exe?MAP=/ms4w/apps/wcs-demo/wcs.map" ### recommended + "wcs_service_onlineresource" "http://127.0.0.1/cgi-bin/mapserv.exe?MAP=/ms4w/apps/wcs-demo/wcs.map" ### recommended + "ows_title" "WCS Demo Server for MapServer" ### recommended + "ows_abstract" "This demonstration server showcases MapServer and its OGC support." ### recommended + "ows_contactperson" "me" + "ows_contactposition" "VIP" + "ows_contactorganization" "FOSS4G" + "ows_contactelectronicmailaddress" "blah@blah.com" + "ows_contactvoicetelephone" "+xx-xxx-xxx-xxxx" + "ows_contactfacsimiletelephone" "+xx-xxx-xxx-xxxx" + "ows_role" "developer" + "ows_addresstype" "postal" + "ows_address" "1234 Main Street" + "ows_city" "xxxxx" + "ows_stateorprovince" "xx" + "ows_postcode" "xxx xxx" + "ows_country" "Canada" + "ows_fees" "None" + "ows_accessconstraints" "None" + "ows_hoursofservice" "xxx" + "ows_contactinstructions" "xxx" + "wcs_keywordlist" "WCS,MODIS,NDVI,MapServer" + "wcs_enable_request" "*" ### required + END END - END - - PROJECTION - "init=epsg:3978" - END - - LAYER - NAME bathymetry - METADATA - "wcs_label" "Elevation/Bathymetry" ### required - "wcs_rangeset_name" "Range 1" ### required to support DescribeCoverage request - "wcs_rangeset_label" "My Label" ### required to support DescribeCoverage request - END - TYPE RASTER ### required - STATUS ON - DATA bath_mapserver.tif + #output projection PROJECTION - "init=epsg:3978" + "init=epsg:3857" #LCC, see https://spatialreference.org/ref/epsg/3857/ END - END - END # Map File + + LAYER + NAME "bluemarble-2004" + METADATA + "wcs_label" "Elevation/Bathymetry" ### required + "wcs_rangeset_name" "My range" ### required to support DescribeCoverage request + "wcs_rangeset_label" "My label" ### required to support DescribeCoverage request + "wcs_formats" "image/tiff" ### required + "ows_extent" "-180 -90 180 90" ### recommended + END + TYPE RASTER ### required + STATUS ON + DATA "world.topo.bathy.200401.3x5400x2700_geo.tif" + #the data's source projection + PROJECTION + "init=epsg:4326" #LCC, see https://spatialreference.org/ref/epsg/4326/ + END + DEBUG 5 + END # layer + END # mapfile .. index:: pair: WCS Server; Output formats @@ -171,13 +210,13 @@ Output Formats -------------- The raster formats supported by MapServer WCS are determined by the -wcs_formats metadata item on the LAYER. This should contain a space +*wcs_formats* metadata item on the LAYER. This should contain a space separated list of OUTPUTFORMAT driver names separated by spaces. If absent, all raster OUTPUTFORMATs are allowed. WCS is a "raw data" oriented format. So it often most suitable to use it with format using the BYTE, INT16 and FLOAT32 IMAGEMODEs with GDAL -related output formats rather than the built in "rendering oriented" +related output formats rather than the built-in "rendering oriented" output formats. By default the only GDAL format driver defined is the GTiff driver. The following are example output format declarations utilizing the raw image modes:: @@ -201,8 +240,288 @@ utilizing the raw image modes:: The FORMATOPTION FILENAME defines the preferred name of the result file when returned WCS GetCoverage results. + +Spatio/Temporal Indexes +----------------------- + +MapServer has long supported a method of breaking a dataset into smaller, more +manageable pieces or tiles. In this case a shapefile is used to store the +boundary of each tile, and an attribute holds the location of the actual data. +Within a MapServer mapfile the layer keywords *TILEINDEX* and *TILEITEM* are used +to activate tiling. + +Consider the example where an organization wants to serve hundreds or even +thousands of MODIS scenes in GeoTIFF format. Five images cover the spatial extent and each group +of five varies by date of acquisition. This turns out to be a fairly common +scenario for organizations interested in WCS, one that the existing tiling +support does not adequately address. In previous versions of MapServer a +developer would have to create one tileindex and one layer definition for +each group of five images. This could result in configuration files that are +prohibitively long and difficult to manage. + +In order to more efficiently support the WCS specification a new tiling scheme +has been implemented within MapServer. One that supports spatial sub-setting, +but also ad hoc sub-setting based on any attributes found within tileindex. +In many cases a temporal attribute could be used, but sub-setting is not +limited to that case. The new scheme introduces the concept of **tileindex +layers**, that is, *a separate layer definition is used to describe the tile +index dataset*. With this we get all the benefits of any MapServer layer, most +importantly we can apply MapServer filters to the data. Filters can be defined +at runtime using MapServer CGI, MapScript or via the WCS server interface. The +syntax for the layer using the index remains unchanged except that the value +for :ref:`TILEINDEX` refers to the index layer instead of an external shapefile. + +So, looking at the example above again we can reduce our MapServer +configuration to two layer definitions, one for the tileindex and one for the +imagery itself. Extracting a single date's worth of imagery is now a matter of +setting the appropriate filter within the tileindex layer. + +Building Spatio-Temporal TileIndexes +```````````````````````````````````` + +**Step 1: Create your spatial index** + +Taking the above example, the first step is to create the spatial index with the +GDAL utility `gdaltindex `__. +Simply point gdaltindex at the directory containing the +collection of images and it will build a shapefile index suitable for use with +MapServer. + +For example, the following command creates a shapefile index, for a folder +that contains many GeoTIFF images: + +.. code-block:: bash + + gdaltindex -of "ESRI Shapefile" index_bluemarble.shp *.tif - +Since GDAL 3.11 you can alternatively use the `gdal program `__ +such as: + +.. code-block:: bash + + gdal raster index --of "ESRI Shapefile" *.tif index_bluemarble.shp + +If you open that new spatial index in `QGIS `__ and then +view its attributes, you'll notice a single *location* field with all of the +GeoTIFF filenames, such as: + +.. image:: ../images/wcs-index1.png + :height: 330 + :width: 300 + :class: no-scaled-link + +**Step 2: Execute shptree on your spatial index file** + +Use MapServer's :ref:`shptree ` utility to make it faster for MapServer +to parse the index, with a command such as: + +.. code-block:: bash + + shptree index_bluemarble.shp + +You should notice that a new *.qix* file was created. + +**Step 3: Add the temporal information to the index** + +The next step would be to add the temporal (time) information to that index. + +You could either use QGIS again & manually add the time values to the index +attributes (in a new string field such as *imgdate*), or write a script to do +that: the pseudo code would look something like: + +- open the index .dbf file for reading + +- create a new column to hold the image acquisition date + +- for each image; 1) extract the image acquisition date and 2) insert it into + the new column + +- close the index .dbf file + +Whatever you choose, the resulting attributes of your spatial index file +may look like: + +.. image:: ../images/wcs-index2.png + :height: 323 + :width: 400 + :class: no-scaled-link + +Mapfile: define your Spatio/Temporal TileIndexes +```````````````````````````````````````````````` + +**Step 1: Setup your tileindex LAYER** + +The tileindex layer is where you point to the tileindex file that you +recently generated, and also define the FILTER for time requests, and +setup validation for that time format. + +.. NOTE:: + You must setup a :ref:`VALIDATION ` block for MapServer to + properly pass the *time* values in the WCS request. + +.. code-block:: mapfile + + /* tileindex layer */ + LAYER + NAME "bluemarble-idx" + TYPE TILEINDEX + DATA "index_bluemarble.shp" + FILTER ("[imgdate]" = '%time%') + VALIDATION + #handle time values of format YYYY-MM-DDT00:00:00 + 'time' '^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$' + END + PROJECTION + "init=epsg:4326" + END + END + +**Step 2: Setup your raster images LAYER** + +Now you can setup your raster images layer, that will point to the other tileindex +layer. + +.. NOTE:: + You must list all possible time values in the "wcs_timeposition" metadata. + +.. code-block:: mapfile + + /* raster layer, that points to the above tileindex layer */ + LAYER + NAME "bluemarble-2004" + METADATA + "wcs_label" "Elevation/Bathymetry" ### required + "wcs_description" "My WCS layer" ### recommended + "wcs_rangeset_name" "My range" ### required to support DescribeCoverage request + "wcs_rangeset_label" "My label" ### required to support DescribeCoverage request + "wcs_formats" "image/tiff" ### required + "ows_extent" "-180 -90 180 90" ### recommended + "wcs_resolution" "0.066666666700000 0.066666666700000" ### required + "wcs_nativeformat" "raw binary" + "wcs_bandcount" "3" + "wcs_timeposition" "2004-01-01T00:00:00,2004-02-01T00:00:00,2004-03-01T00:00:00,2004-04-01T00:00:00,2004-05-01T00:00:00,2004-06-01T00:00:00,2004-07-01T00:00:00,2004-08-01T00:00:00,2004-09-01T00:00:00,2004-10-01T00:00:00,2004-11-01T00:00:00,2004-12-01T00:00:00" ### required + "wcs_timeitem" "imgdate" ### required + "wcs_rangeset_axes" "bands" + "wcs_rangeset_label" "Bands" + "wcs_rangeset_name" "Bands" + END + TYPE RASTER ### required + STATUS ON + TILEINDEX "bluemarble-idx" + TILEITEM "location" + #the data's source projection + PROJECTION + "init=epsg:4326" #LCC, see https://spatialreference.org/ref/epsg/4326/ + END + DEBUG 5 + END # layer + +Example WCS Server Mapfile with Spatial/Temporal +------------------------------------------------ + +The following is an example of a WCS Server mapfile that serves raster images +by pointing to a separate tileindex layer. Note the comments for the +required parameters. + +.. code-block:: mapfile + + MAP + NAME "WCS_server" + STATUS ON + SIZE 400 300 + SYMBOLSET "../etc/symbols.txt" + EXTENT -6661783 2801107 11407237 8055791 #for EPSG:3857, but useful only when testing mapfile through map2img (with WCS) + UNITS METERS + SHAPEPATH "./data" + IMAGECOLOR 255 255 255 + FONTSET "../etc/fonts.txt" + + CONFIG "MS_ERRORFILE" "/ms4w/tmp/ms_tmp/ms_error.txt" + DEBUG 5 + + WEB + IMAGEPATH "/ms4w/tmp/ms_tmp/" + IMAGEURL "/ms_tmp/" + METADATA + "wcs_label" "WCS Demo Server" ### required + "wcs_description" "Some text description of the service" ### recommended + "wcs_onlineresource" "http://127.0.0.1/cgi-bin/mapserv.exe?MAP=/ms4w/apps/wcs-demo/wcs-tiled.map" ### recommended + "wcs_service_onlineresource" "http://127.0.0.1/cgi-bin/mapserv.exe?MAP=/ms4w/apps/wcs-demo/wcs-tiled.map" ### recommended + "ows_title" "WCS Demo Server for MapServer" ### recommended + "ows_abstract" "This demonstration server showcases MapServer and its OGC support." ### recommended + "ows_contactperson" "me" + "ows_contactposition" "VIP" + "ows_contactorganization" "FOSS4G" + "ows_contactelectronicmailaddress" "blah@blah.com" + "ows_contactvoicetelephone" "+xx-xxx-xxx-xxxx" + "ows_contactfacsimiletelephone" "+xx-xxx-xxx-xxxx" + "ows_role" "developer" + "ows_addresstype" "postal" + "ows_address" "1234 Main Street" + "ows_city" "xxxxx" + "ows_stateorprovince" "xx" + "ows_postcode" "xxx xxx" + "ows_country" "Canada" + "ows_fees" "None" + "ows_accessconstraints" "None" + "ows_hoursofservice" "xxx" + "ows_contactinstructions" "xxx" + "wcs_keywordlist" "WCS,MODIS,NDVI,MapServer" + "wcs_enable_request" "*" ### required + END + END + + #output projection + PROJECTION + "init=epsg:3857" #LCC, see https://spatialreference.org/ref/epsg/3857/ + END + + /* tileindex layer */ + LAYER + NAME "bluemarble-idx" + TYPE TILEINDEX + DATA "index_bluemarble.shp" + FILTER ("[imgdate]" = '%time%') + VALIDATION + #handle time values of format YYYY-MM-DDT00:00:00 + 'time' '^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$' + END + PROJECTION + "init=epsg:4326" + END + END + + /* raster layer, that points to the above tileindex layer */ + LAYER + NAME "bluemarble-2004" + METADATA + "wcs_label" "Elevation/Bathymetry" ### required + "wcs_description" "My WCS layer" ### recommended + "wcs_rangeset_name" "My range" ### required to support DescribeCoverage request + "wcs_rangeset_label" "My label" ### required to support DescribeCoverage request + "wcs_formats" "image/tiff" ### required + "ows_extent" "-180 -90 180 90" ### recommended + "wcs_resolution" "0.066666666700000 0.066666666700000" ### required + "wcs_nativeformat" "raw binary" + "wcs_bandcount" "3" + "wcs_timeposition" "2004-01-01T00:00:00,2004-02-01T00:00:00,2004-03-01T00:00:00,2004-04-01T00:00:00,2004-05-01T00:00:00,2004-06-01T00:00:00,2004-07-01T00:00:00,2004-08-01T00:00:00,2004-09-01T00:00:00,2004-10-01T00:00:00,2004-11-01T00:00:00,2004-12-01T00:00:00" ### required + "wcs_timeitem" "imgdate" ### required + "wcs_rangeset_axes" "bands" + "wcs_rangeset_label" "Bands" + "wcs_rangeset_name" "Bands" + END + TYPE RASTER ### required + STATUS ON + TILEINDEX "bluemarble-idx" + TILEITEM "location" + #the data's source projection + PROJECTION + "init=epsg:4326" #LCC, see https://spatialreference.org/ref/epsg/4326/ + END + DEBUG 5 + END # layer + END # mapfile + Test Your WCS 1.0 Server ======================== @@ -226,16 +545,33 @@ you add the parameters call to the MapServer executable, by setting *MS_MAP_PATTERN* or *MS_MAP_NO_PATH* or hiding the *MAP=* parameter on public servers, as recommended in the document :ref:`limit_mapfile_access`. All possible - environment variables to secure your server are listed in :ref:`environment_variables`. - + environment variables to secure your server are listed in :ref:`environment_variables`. If you get an error message in the XML output then take necessary actions. Common problems and solutions are listed in the FAQ at the end of this document. +.. TIP:: + To see MapServer error messages as you execute WCS requests, be sure + to set the `CONFIG "MS_ERRORFILE"` parameter, as well as `DEBUG 5` at in your + LAYER, such as: + + .. code-block:: mapfile + + MAP + ... + CONFIG "MS_ERRORFILE" "/ms4w/tmp/ms_error.txt" + DEBUG 5 + ... + LAYER + DEBUG 5 + ... + END + END + If everything went well, you should have a complete XML capabilities -document. Search it for the word "WARNING"... MapServer inserts XML -comments starting with "

MapServer is a project of the Open Source Geospatial Foundation.