MapServer 8.4 Changelog

The summary of major changes for this release can be found in the HISTORY.md file from the source directory.

Changes from 8.4.0-beta1 to 8.4.0-beta2

  • Emit explicit error message when proj.db cannot be found ( #7204 ) (Even Rouault) : 68576d0

Changes from 8.2.2 to 8.4.0-beta1

  • FIX: Alpha channel ignored in STYLE COLOR attribute binding ( #7200 ) (Seth G) : bb60312

  • Set layer extent to requested wms bbox ( #7159 ) (PatrikSylve) : 8f1835f

  • WMS GetFeatureInfo: fix handling of WEB.EMPTY that has been broken in 8.0 (Even Rouault) : 131979f

  • Allow use_default_extent_for_getfeature to be used for OGC Features API and PostGIS ( #7197 ) (Seth G) : 235b646

  • Avoid casting unique ID to string if the field is numeric in PostGIS Driver ( #7198 ) (Seth G) : d513339

  • Add HTTP status code for WMS requests, if MS_WMS_ERROR_STATUS_CODE config option/env variable are set to ON ( #7191 ) (Even Rouault) : a18b169

  • [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

  • 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

  • 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

  • Pin Python version for precommit action and update flake8 ( #7172 ) (Seth G) : fdb29c9

  • Don’t call xmlMemoryDump ( #7169 ) (Seth G) : df765a5

  • build(deps): bump mamba-org/setup-micromamba from 1 to 2 (dependabot[bot]) : f7819dd

  • fix links to licenses of FlatGeobuf & FlatBuffers ( #7163 ) (Marc Jansen) : c267853

  • msProjectionContextGetFromPool(): set thread_id to current thread (Even Rouault) : 22828f1

  • MS_LEGEND_KEYSIZE_MAX to 1000 ( #7154 ) (gu-LGB) : 893d9a4

  • msInterpolationDataset(): fix memory leak (Coverity CID 1599443) (Even Rouault) : 61801ef

  • msSLDGenerateTextSLD(): avoid crash on expressions of LABEL we can’t transform to SLD (Even Rouault) : 21101e1

  • Add CONNECTIONTYPE RASTERLABEL (Even Rouault) : 32b46a1

  • uvraster: improve efficiency of GetShape() (Even Rouault) : 2489fdb

  • CI: add build on Alpine edge (Even Rouault) : c976672

  • Fix compiler warnings with gcc 14.2 (Even Rouault) : 62879c4

  • MapScript: layerObj.executeWFSGetFeature(): do not take an extra layerObj* argument, but just use self (Even Rouault) : 6d57488

  • fix stripping epsgaxis= before importing OSR projection ( #7141 ) (Roel Arents) : f2a8fa9

  • Fix compilation error against FreeType 2.13.3 (Even Rouault) : 5422e65

  • fix proj epsgaxis= stripping to also work for +epsgaxis= (Roel Arents) : 5fba2b7

  • Use a GDAL CSL for layer->processing to simplify code (Even Rouault) : 3163794

  • Increase CMake minimum version to 3.16, which matches GDAL 3.9+ (Howard Butler) : 89d11e2

  • allow explicit override of MapScript output folder via CMake variable (Howard Butler) : 0d14226

  • Fix style scale factor inheritance ( #7115 ) (Māris Nartišs) : d1f4140

  • [Lint] Remove unused/commented stuff from mapuvraster.c (Even Rouault) : b8e856b

  • Fix CLUSTER layers to return EXTENT ( #7111 ) (Seth G) : d56f850

  • tests/unit/test.cpp: fix Coverity Scan false positives (Even Rouault) : c70579b

  • Update security policy to mention 8.2 release ( #7106 ) (Jeff McKenna) : 2d5007a

  • msProcessProjection(): strip epsgaxis= MapServer specific parameter that confuses PROJ < 9.5.0 (Even Rouault) : 6f03a7a

  • CMakeLists.txt: fix build of unit_test (Even Rouault) : eb64cc1

  • Add unit tests for msToString() (Even Rouault) : 6a1a7ef

  • tostring() expression function: validate format string, and make sure buffer is large enough (Even Rouault) : 2c802a8

  • msautotest: completely remove msautotest/misc/sde_*.map.old files ( #7117 ) (Even Rouault) : f9d9b08

  • Remove no-longer used scripts/astyle.sh (Even Rouault) : ab335bc

  • Fix build -DWITH_OGCAPI=1 -DWITH_WFS=0 (Even Rouault) : 580dc2b

  • mapogcfilter.cpp: fix inappropriate buffer size (CID 1595596, fix recent regression of d00f54e82780273f53329fff435a75de7f627e3d) (Even Rouault) : 1b38576

  • Set GDAL_DRIVER_PATH so the GIF driver is found and re-enable tests (sethg) : 6773985

  • ci/conda: remove explicit setting of SWIG_EXECUTABLE (Even Rouault) : c7f9efb

  • CI: enable MapScript for Conda builds ( #7105 ) (Howard Butler) : c66de90

  • agg_basics.h: try to avoid warning about use after free (Even Rouault) : b9665e3

  • mapwcs20.cpp: remove unused variable (Even Rouault) : 454a491

  • agg_font_freetype.cpp: replace sprintf() with snprintf() (Even Rouault) : f935f25

  • agg_pixfmt_rgba.h: avoid warnings about unused parameters (Even Rouault) : fef9dc9

  • mapogr.cpp: replace sprintf() with snprintf() (Even Rouault) : a07cae3

  • maputfgrid.h: avoid warnings about unused variable (Even Rouault) : 6adf12e

  • mapmvt.c: avoid warnings when MVT not enabled (Even Rouault) : 3f874d9

  • mapkml.cpp: avoid warning when KML not enabled (Even Rouault) : 9116686

  • mapwfs.cpp: replace sprintf() with snprintf() (Even Rouault) : 6ee09a3

  • mapgdal.cpp: replace sprintf() with snprintf() (Even Rouault) : 6985fe5

  • mapogcsld.cpp: replace sprintf() with snprintf() (Even Rouault) : 3bbe94b

  • mapwcs20.cpp: remove useless variable (Even Rouault) : 43e83bd

  • mapogcfiltercommon.cpp: replace sprintf() with snprintf() (Even Rouault) : 1fa0576

  • mapogcwcs.cpp: replace sprintf() with snprintf() (Even Rouault) : 27b8f4e

  • mapogcfilter.cpp: replace sprintf() with snprintf() (Even Rouault) : d00f54e

  • mapwcs11.cpp: replace sprintf() with snprintf() (Even Rouault) : ebc0b18

  • mapxmp.c: avoid warnings when libexempi is not available (Even Rouault) : fa1a091

  • mapquantization.c: avoid using pre-ANSI C which will no longer be valid in C2X (Even Rouault) : 30ea9c6

  • mappostgis.cpp: replace sprintf() with snprintf() (Even Rouault) : 6bbc076

  • mappostgis.h: correct declaration of C++ struct (Even Rouault) : 4c49eb2

  • mapparser.c: avoid warning about unused variable (Even Rouault) : d92ae04

  • mapcairo.c: avoid warning when libsvgcariro / rsvgcairo not available (Even Rouault) : 1c937ae

  • mapservutil.c: avoid warning about unused variable (Even Rouault) : d9a7dff

  • cgiutil.c: avoid warning about unused variable (Even Rouault) : 273ec3f

  • mappostgresql.c: avoid potential invalid use of strcpy() (Even Rouault) : f202bd5

  • handle PHP out of source builds (Jeff McKenna) : a693a3b

  • CMakeLists.txt: need zstd if we’re WIN32 and asking for mysql (Howard Butler) : 0100095

  • mapcompositingfilter.c: PCRE2 related fix (Howard Butler) : 350b752

  • CMakeLists.txt: define _XKEYCHECK_H to avoid build issue with older MSVC SDKs (Howard Butler) : c0772d7

  • CI: add conda-based builder (Howard Butler) : bb15578

  • msautotest: avoid failed tests on AppVeyor to break the build (Even Rouault) : 42174f7

  • move CI build/setup to ./ci/ubuntu (Howard Butler) : 2a72cd8

  • Use EPSGTreatsAsLatLong and EPSGTreatsAsNorthingEasting to determine inverted axis ( #7096 ) (PatrikSylve) : a56a91a

  • add PHP 8.3 to test matrix ( #7097 ) (Jeff McKenna) : 2088602

  • change to markdown (Jeff McKenna) : 0936f23

  • change to markdown (Jeff McKenna) : a9f78f3

  • Fix for the memory corruption issues in msUpdate…FromString ( #7038 ) ( #7094 ) (Tamas Szekeres) : acb3a9c

  • msautotest/README: add 20.04 requirement ( #7086 ) (Even Rouault) : 0c8435c

  • msProjectionInheritContextFrom(): do not reuse source PROJ context if called from different thread ( #7089 ) (Even Rouault) : 839a4ab

  • Fix SWIG mapscript failure with out of source builds ( #7090 ) ( #7091 ) (Tamas Szekeres) : b584c9b

  • Fix opacity calculation problem with the agg renderer ( #5697 ) ( #7085 ) (Tamas Szekeres) : a8f6aca

  • Python mapscript: remove deprecated SWIG t_output_helper ( #7083 ) (Seth G) : 661bde0

  • msCGILoadForm(): remove support for oboslete ROSA Java Applet (Even Rouault) : 0880059

  • msCGILoadForm(): validate INPUT_COORD for Rosa support (CID 1593918) (Even Rouault) : 8ee3ce0

  • msDrawPieChartLayer(): validate CHART_SIZE_RANGE format (CID 1593919) (Even Rouault) : b003f13

  • change to DOI from webhook (Jeff McKenna) : a32a97d

  • Add optional support for using PCRE2 regular expression library instead of POSIX regex (Even Rouault) : d67a94f

  • Modify ms_map_bad_pattern_default in a way that both please GNU regex and PCRE2 (Even Rouault) : 97fe80b

  • msIsValidRegex()/msEvalRegex(): use ms_regerror() to get more descriptive error message (Even Rouault) : 248dc63

  • mapregex.c: fix invalid mapping of MS_REG_NOSUB and MS_REG_NEWLINE with GNU regex (Even Rouault) : 285d627

  • OGR output format: avoid potential stack buffer overflow on too long filename (Even Rouault) : d290059

  • Fix Python MapScript installation. ( #7071 ) (Bas Couwenberg) : 1fa4c57

  • Fix spelling errors. ( #7072 ) (Bas Couwenberg) : a7d0fff

  • GDAL/raster rendering: add a GAMMA processing option (Even Rouault) : 2ef337b

  • mapparser.y: try to fix false positive CodeQL warning about double free (Even Rouault) : 6640a18

  • msDrawWMSLayerLow(): hopefully avoid false positive CodeQL warning about double free (Even Rouault) : 48ca6ce

  • msStyleSetGeomTransform(): avoid CodeQL false positive about double free (Even Rouault) : ed6be1b

  • msLayerSetSort(): fix false positive about use-after-free (Even Rouault) : 87c52df

  • mapogcsld.cpp: avoid likely false-positive about use after free (Even Rouault) : 81be911

  • Workaround CodeQL false positives about sscanf() usage (Even Rouault) : ff57366

  • Raster rendering: skip Byte alpha band with PROCESSING “SCALE=AUTO” (Even Rouault) : 1051da4

  • Fix typos found by scripts/fix_typos.sh (Even Rouault) : 1423374

  • Add scripts/fix_typos.sh (Even Rouault) : 0c3fca1

  • More elegant serialization/deserialization of MS_COMPOP_xxxx constants (Even Rouault) : 1e0c860

  • Add 4 new COMPOSITE.COMPOP blending operations (Even Rouault) : 7f53259