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 to 8.4.1¶
重要
Security release
Security: Add missing column name escaping in FLTGetCommonExpression() ( #7349 ) (Even Rouault) : 1c73aca
Make projection context ref counting thread safe again ( #7079 ) ( #7346 ) (github-actions[bot]) : 94d49b6
build(deps): bump actions/setup-python from 5 to 6 ( #7339 ) (dependabot[bot]) : c271c32
Handle various GDAL version formats (sethg) : 6396818
Remove comma check (sethg) : 767fd18
[Backport branch-8-4] Update SDTS test to use SXF driver ( #7332 ) (github-actions[bot]) : 5560cca
[Backport branch-8-4] Fixed non numerical expressions in a getFeature request ( #7323 ) (github-actions[bot]) : 32786ac
build(deps): bump actions/checkout from 4 to 5 ( #7322 ) (dependabot[bot]) : 7503865
msautotest: fix get_gdal_version() to support GDAL version nickname ( #7319 ) (github-actions[bot]) : 9cd969e
Fix GDAL 3.12dev deprecation warnings about GDALGetDataTypeSize() (Even Rouault) : eacdaee
maptree.c: fix warning with latest GCC (Even Rouault) : 6992c26
Fix vector tileindex infinite recursion (Patrik Sylve) : 547e558
Check for all possible use_default_extent_for_getfeature metadata keys ( #7311 ) (github-actions[bot]) : 8e96877
use master for CRLF check (Jeff McKenna) : 77f74de
[Backport branch-8-4] OGC API: fix issue #7177 (feature geometry of multipolygons is returned with errors) ( #7306 ) (github-actions[bot]) : 6d0016c
Update INSTALL.CMAKE ( #7304 ) (github-actions[bot]) : 5db5354
Check wms_onlineresource for OpenLayers output ( #7301 ) (github-actions[bot]) : a06a1dc
[Backport branch-8-4] Shapefile: Parse CPG values ( #7302 ) (github-actions[bot]) : e59604c
add private vulnerability reporting steps ( #7300 ) (github-actions[bot]) : 49c0d38
Fix regex and use PROJ_DATA ( #7291 ) (github-actions[bot]) : 00d904e
[Backport branch-8-4] Allow FILTER expressions with SCALETOKENs ( #7285 ) (github-actions[bot]) : 71b617a
[Backport branch-8-4] SHP/DBF: Attempt to read encoding from CPG file ( #7276 ) (github-actions[bot]) : 15b3ee3
Fix MSSQL driver crash with NULL fid ( #7270 ) ( #7272 ) (github-actions[bot]) : 598859a
[Backport branch-8-4] update OGCAPI Common schemas url ( #7269 ) (github-actions[bot]) : 2c9c805
[Backport branch-8-4] CI: handle Flake8 unused variable violation code ( #7265 ) (github-actions[bot]) : 61c4762
Bump C/C++ standard to 17 for ICU 76. ( #7259 ) (Bas Couwenberg) : 0e9f04e
Fix opacity for gradient legend symbol ( #7256 ) (github-actions[bot]) : 85fa884
[Backport branch-8-4] Make sure 130 tests make request for WMS version 1.3.0 ( #7253 ) (github-actions[bot]) : 7596347
[Backport branch-8-4] Python MapScript updates ( #7222 ) (github-actions[bot]) : 36b9a46
Attempt at fuzzer fix ( #7220 ) (github-actions[bot]) : fff513a
msDrawRasterBuildRasterPath(): micro-optimization: do not attempt to open non-exiting file ( #7216 ) (github-actions[bot]) : 16b85d0
[CI] bump PCRE2 for SWIG build ( #7214 ) (github-actions[bot]) : 2bffd04
Changes from 8.4.0-rc1 to 8.4.0¶
add CITATION.cff (Jeff McKenna) : 8942e55
Changes from 8.4.0-beta2 to 8.4.0-rc1¶
Changes from 8.4.0-beta1 to 8.4.0-beta2¶
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 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 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
Pin Python version for precommit action and update flake8 ( #7172 ) (Seth G) : fdb29c9
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
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
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
