Skip to content

Commits on Source 7

......@@ -17,8 +17,8 @@ include(CheckCSourceCompiles)
set (MapServer_VERSION_MAJOR 7)
set (MapServer_VERSION_MINOR 2)
set (MapServer_VERSION_REVISION 0)
set (MapServer_VERSION_SUFFIX "-beta2")
set (MapServer_VERSION_REVISION 1)
set (MapServer_VERSION_SUFFIX "")
set(TARGET_VERSION_MAJOR ${MapServer_VERSION_MAJOR})
set(TARGET_VERSION_MINOR ${MapServer_VERSION_MINOR})
......
# How to contribute to MapServer
Contributions to the MapServer project are most welcome, and can take many forms such as detailed bug reports, documentation,
tests, features, and patches.
tests, features, and patches. Note that all contributions are managed by the MapServer [Project Steering Committee](https://mapserver.org/psc.html).
## Bugs and Help
......@@ -18,15 +18,15 @@ For professional support please see the [MapServer Service Providers page](http:
## Development
A seperate [mapserver-dev mailing list](http://lists.osgeo.org/mailman/listinfo/mapserver-dev) is available for developers
A separate [mapserver-dev mailing list](http://lists.osgeo.org/mailman/listinfo/mapserver-dev) is available for developers
working on the MapServer code.
Details on using GitHub can be found on the [MapServer GutHub page](http://mapserver.org/development/git.html)
Details on using GitHub can be found on the [MapServer GitHub page](http://mapserver.org/development/git.html)
Additional developer notes can be found in the [MapServer wiki](https://github.com/mapserver/mapserver/wiki#developer-notes), including
coding style and guidelines, memory management, and working with Git.
## Documentation
The MapServer documentation is stored in a [seperate repository](https://github.com/mapserver/docs). Please submit any documentation
The MapServer documentation is stored in a [separate repository](https://github.com/mapserver/docs). Please submit any documentation
issues or changes there. See the [Documentation Development Guide](http://mapserver.org/development/documentation.html) for further details.
......@@ -12,6 +12,17 @@ For a complete change history, please see the Git log comments. For more
details about recent point releases, please see the online changelog at:
http://mapserver.org/development/changelog/
7.2.1 release (2018-10-1)
--------------------------
- No major changes, see detailed changelog for bug fixes
7.2.0 release (2018-07-23)
--------------------------
- Fixed issue with ring handling with polygons in MVT support (#5626)
- No other major changes, see detailed changelog for bug fixes
7.2.0-beta2 release (2018-6-13)
- Update beta1 release notes to remove reference to PHP7 support
......
MapServer
=========
| |Build Status| |Appveyor Build Status|
-------
Summary
-------
MapServer is a system for developing web-based GIS applications.
The basic system consists of a CGI program that can be configured to
respond to a variety of spatial requests like making maps, scalebars,
......@@ -15,7 +19,7 @@ visit:
http://www.mapserver.org/
Bug reports and enhancment submissions can be reported in the MapServer
Bug reports and enhancement submissions can be reported in the MapServer
issue tracker at the following url. If you do make changes and/or enhancements,
please let us know so that they might be incorporated into future releases.
......@@ -28,9 +32,8 @@ Join the MapServer user mailing list online at:
-----------
Credits
-----------
-------
MapServer was originally written by Stephen Lime. Major funding for development of
MapServer has been provided by NASA through cooperative argreements with
......@@ -61,9 +64,8 @@ Portions derived from Shapelib, Copyright 1995-1999 Frank Warmerdam.
Supporting packages are covered by their own copyrights.
-----------
License
-----------
-------
::
......@@ -89,3 +91,8 @@ License
SOFTWARE.
.. |Build Status| image:: https://travis-ci.org/mapserver/mapserver.svg?branch=master
:target: https://travis-ci.org/mapserver/mapserver
.. |Appveyor Build Status| image:: https://ci.appveyor.com/api/projects/status/vw1n07095a8bg23u?svg=true
:target: https://ci.appveyor.com/project/mapserver/mapserver
mapserver (7.2.0-6) UNRELEASED; urgency=medium
mapserver (7.2.1-1) unstable; urgency=medium
* New upstream release.
* Bump Standards-Version to 4.2.1, no changes.
* Drop patches applied upstream. Refresh remaining patches.
* Fix docs install for README rename.
-- Bas Couwenberg <sebastic@debian.org> Tue, 28 Aug 2018 13:14:38 +0200
-- Bas Couwenberg <sebastic@debian.org> Tue, 02 Oct 2018 07:11:40 +0200
mapserver (7.2.0-5) unstable; urgency=medium
......
# SymbolsHelper-Confirmed: 7.2.0 amd64 arm64 armel armhf i386 m68k mips mips64el mipsel powerpc ppc64 ppc64el riscv64 s390x sh4 sparc64
# SymbolsHelper-Confirmed: 7.2.0 amd64 arm64 armel armhf i386 m68k mips mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sh4 sparc64
libmapserver.so.2 #PACKAGE# #MINVER#
BuildExpressionTree@Base 6.2.1
CleanVSIDir@Base 6.2.1
......@@ -195,7 +195,7 @@ libmapserver.so.2 #PACKAGE# #MINVER#
_ZN10ClipperLib17E2InsertsBeforeE1ERNS_5TEdgeES1_@Base 6.2.1
_ZN10ClipperLib17FindAppendLinkEndEPNS_6OutRecE@Base 6.2.1
_ZN10ClipperLib17GetOverlapSegmentENS_8IntPointES0_S0_S0_RS0_S1_@Base 6.2.1
(arch=armel armhf i386 m68k mips mipsel powerpc)_ZN10ClipperLib17PolyOffsetBuilder8DoSquareEd@Base 7.2.0
(arch=armel armhf i386 m68k mips mipsel powerpc powerpcspe)_ZN10ClipperLib17PolyOffsetBuilder8DoSquareEd@Base 7.2.0
_ZN10ClipperLib17PolyOffsetBuilderC1ERKSt6vectorIS1_INS_8IntPointESaIS2_EESaIS4_EERS6_dNS_8JoinTypeEd@Base 6.2.1
_ZN10ClipperLib17PolyOffsetBuilderC2ERKSt6vectorIS1_INS_8IntPointESaIS2_EESaIS4_EERS6_dNS_8JoinTypeEd@Base 6.2.1
_ZN10ClipperLib18GetNextNonDupOutPtEPNS_5OutPtERS1_@Base 6.2.1
......@@ -209,7 +209,7 @@ libmapserver.so.2 #PACKAGE# #MINVER#
_ZN10ClipperLib4TopXERNS_5TEdgeEx@Base 6.2.1
_ZN10ClipperLib5GetDxENS_8IntPointES0_@Base 6.2.1
_ZN10ClipperLib5SetDxERNS_5TEdgeE@Base 6.2.1
(arch=armel armhf i386 m68k mips mipsel powerpc)_ZN10ClipperLib6Int1286NegateERS0_@Base 7.2.0
(arch=armel armhf i386 m68k mips mipsel powerpc powerpcspe)_ZN10ClipperLib6Int1286NegateERS0_@Base 7.2.0
_ZN10ClipperLib7Clipper10ClearJoinsEv@Base 6.2.1
_ZN10ClipperLib7Clipper11AddHorzJoinEPNS_5TEdgeEi@Base 6.2.1
_ZN10ClipperLib7Clipper11BuildResultERSt6vectorIS1_INS_8IntPointESaIS2_EESaIS4_EE@Base 6.2.1
......@@ -610,13 +610,13 @@ libmapserver.so.2 #PACKAGE# #MINVER#
(optional=templinst)_ZNSt6vectorIP10msExprNodeSaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_@Base 7.0.7
(optional=templinst)_ZNSt6vectorIP10msExprNodeSaIS1_EE9push_backERKS1_@Base 7.0.5
(optional=templinst)_ZNSt6vectorIP10msExprNodeSaIS1_EEaSERKS3_@Base 7.0.5
(optional=templinst|arch=armel armhf i386 m68k mips mipsel powerpc sh4)_ZNSt6vectorIPN10ClipperLib11HorzJoinRecESaIS2_EE17_M_default_appendEj@Base 7.2.0
(optional=templinst|arch=armel armhf i386 m68k mips mipsel powerpc powerpcspe sh4)_ZNSt6vectorIPN10ClipperLib11HorzJoinRecESaIS2_EE17_M_default_appendEj@Base 7.2.0
(optional=templinst)_ZNSt6vectorIPN10ClipperLib11HorzJoinRecESaIS2_EE17_M_default_appendEm@Base 7.2.0
(optional=templinst)_ZNSt6vectorIPN10ClipperLib5TEdgeESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 7.0.7
(optional=templinst)_ZNSt6vectorIPN10ClipperLib6OutRecESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 7.0.7
(optional=templinst|arch=armel armhf i386 m68k mips mipsel powerpc sh4)_ZNSt6vectorIPN10ClipperLib7JoinRecESaIS2_EE17_M_default_appendEj@Base 7.2.0
(optional=templinst|arch=armel armhf i386 m68k mips mipsel powerpc powerpcspe sh4)_ZNSt6vectorIPN10ClipperLib7JoinRecESaIS2_EE17_M_default_appendEj@Base 7.2.0
(optional=templinst)_ZNSt6vectorIPN10ClipperLib7JoinRecESaIS2_EE17_M_default_appendEm@Base 7.2.0
(optional=templinst|arch=armel armhf i386 m68k mips mipsel powerpc)_ZNSt6vectorIPN10ClipperLib7JoinRecESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 7.2.0
(optional=templinst|arch=armel armhf i386 m68k mips mipsel powerpc powerpcspe)_ZNSt6vectorIPN10ClipperLib7JoinRecESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 7.2.0
(optional=templinst|arch=!amd64 !arm64 !mips64el !ppc64 !ppc64el !riscv64 !s390x !sparc64)_ZNSt6vectorIS_IN10ClipperLib8IntPointESaIS1_EESaIS3_EE17_M_default_appendEj@Base 7.0.2
(optional=templinst|arch=amd64 arm64 mips64el ppc64 ppc64el riscv64 s390x sparc64)_ZNSt6vectorIS_IN10ClipperLib8IntPointESaIS1_EESaIS3_EE17_M_default_appendEm@Base 7.0.2
(optional=templinst)_ZNSt6vectorIS_IN10ClipperLib8IntPointESaIS1_EESaIS3_EE17_M_realloc_insertIJRKS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_@Base 7.0.7
......
README
README.rst
fonts
symbols
MIGRATION_GUIDE.txt
......
......@@ -39,9 +39,9 @@ Bug-Debian: https://bugs.debian.org/906605
install(FILES ${LOC_MAPSCRIPT_LIB} DESTINATION ${CUSTOM_PERL_VENDOR_ARCH_DIR}/auto/mapscript)
--- a/mapscript/python/CMakeLists.txt
+++ b/mapscript/python/CMakeLists.txt
@@ -39,6 +39,14 @@ set_target_properties(${SWIG_MODULE_pyth
execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(True))" OUTPUT_VARIABLE PYTHON_SITE_PACKAGES OUTPUT_STRIP_TRAILING_WHITESPACE)
@@ -46,6 +46,14 @@ execute_process ( COMMAND ${PYTHON_EXECU
# expression $<TARGET_FILE>, as appropriate.
cmake_policy(SET CMP0026 OLD)
+# Workaround for CMake 3.12 error:
+#
......
Description: Update HISTORY.TXT for 7.2.0 release.
Author: Steve Lime
Origin: https://github.com/mapserver/mapserver/commit/8644369f39575c7640d6ad19c8052d1e16b516ee
--- a/HISTORY.TXT
+++ b/HISTORY.TXT
@@ -12,6 +12,12 @@ For a complete change history, please se
details about recent point releases, please see the online changelog at:
http://mapserver.org/development/changelog/
+7.2.0 release (2018/07/23)
+--------------------------
+
+- Fixed issue with ring handling with polygons in MVT support (#5626)
+- No other major changes, see detailed changelog for bug fixes
+
7.2.0-beta2 release (2018-6-13)
- Update beta1 release notes to remove reference to PHP7 support
......@@ -2,6 +2,4 @@ hardening.patch
perl-mapscript-install.patch
ruby-mapscript-install.patch
java-hardening.patch
version-suffix.patch
history.patch
cmake-3.12.patch
Description: Remove -beta2 version suffix.
Author: Bas Couwenberg <sebastic@debian.org>
Forwarded: https://github.com/mapserver/mapserver/pull/5633
Applied-Upstream: https://github.com/mapserver/mapserver/commit/8644369f39575c7640d6ad19c8052d1e16b516ee
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -18,7 +18,7 @@ include(CheckCSourceCompiles)
set (MapServer_VERSION_MAJOR 7)
set (MapServer_VERSION_MINOR 2)
set (MapServer_VERSION_REVISION 0)
-set (MapServer_VERSION_SUFFIX "-beta2")
+set (MapServer_VERSION_SUFFIX "")
set(TARGET_VERSION_MAJOR ${MapServer_VERSION_MAJOR})
set(TARGET_VERSION_MINOR ${MapServer_VERSION_MINOR})
Source diff could not be displayed: it is too large. Options to address this: view the blob.
......@@ -589,7 +589,7 @@ char path[MS_MAXPATHLEN];
return(MS_TOKEN_LITERAL_TIME);
}
<INITIAL,URL_STRING>\/[^\/*]*\/i {
<INITIAL,URL_STRING>\/[^*]{1}[^\/]*\/i {
msyytext++;
msyytext[strlen(msyytext)-2] = '\0';
MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext),
......@@ -598,7 +598,7 @@ char path[MS_MAXPATHLEN];
return(MS_IREGEX);
}
<INITIAL,URL_STRING>\/[^\/*]*\/ {
<INITIAL,URL_STRING>\/[^*]{1}[^\/]*\/ {
msyytext++;
msyytext[strlen(msyytext)-1] = '\0';
MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext),
......
......@@ -158,7 +158,7 @@ static int mvtClipShape(shapeObj *shape, int layer_type, int buffer, int mvt_lay
}
/* success if at least one line and not a degenerate bounding box */
if(shape->numlines > 0 && (shape->bounds.minx != shape->bounds.maxx || shape->bounds.miny != shape->bounds.maxy))
if(shape->numlines > 0 && (layer_type == MS_LAYER_POINT || (shape->bounds.minx != shape->bounds.maxx || shape->bounds.miny != shape->bounds.maxy)))
return MS_SUCCESS;
else
return MS_FAILURE;
......
......@@ -52,6 +52,10 @@ char *FLTGetIsLikeComparisonCommonExpression(FilterEncodingNode *psFilterNode)
int nLength=0, i=0, iTmp=0;
/* From http://www.fon.hum.uva.nl/praat/manual/Regular_expressions_1__Special_characters.html */
/* also add double quote because we are within a string */
const char* pszRegexSpecialCharsAndDoubleQuote = "\\^${}[]().*+?|<>-&\"";
if (!psFilterNode || !psFilterNode->pOther || !psFilterNode->psLeftNode || !psFilterNode->psRightNode || !psFilterNode->psRightNode->pszValue)
return NULL;
......@@ -97,23 +101,45 @@ char *FLTGetIsLikeComparisonCommonExpression(FilterEncodingNode *psFilterNode)
iTmp++;
}
for (i=0; i<nLength; i++) {
if (pszValue[i] != pszWild[0] && pszValue[i] != pszSingle[0] && pszValue[i] != pszEscape[0]) {
szTmp[iTmp] = pszValue[i];
if (pszValue[i] == pszSingle[0]) {
szTmp[iTmp] = '.';
iTmp++;
szTmp[iTmp] = '\0';
} else if (pszValue[i] == pszSingle[0]) {
szTmp[iTmp] = '.';
/* The Filter escape character is supposed to only escape the single, wildcard and escape character */
/* As we replace single and wild by regular expression special characters, we indeed */
/* need to escape them */
} else if (pszValue[i] == pszEscape[0] && (pszValue[i+1] == pszSingle[0] || pszValue[i+1] == pszWild[0])) {
szTmp[iTmp] = '\\';
iTmp++;
szTmp[iTmp] = '\0';
} else if (pszValue[i] == pszEscape[0]) {
/* If the Filter escape character is escaped, only regular-expression-escape-it */
/* if it is indeed a regular expression special character. Otherwise ignore it */
} else if (pszValue[i] == pszEscape[0] && pszValue[i+1] == pszEscape[0]) {
if( strchr(pszRegexSpecialCharsAndDoubleQuote, pszValue[i]) )
{
szTmp[iTmp] = '\\';
iTmp++;
szTmp[iTmp] = '\0';
}
} else if (pszValue[i] == pszWild[0]) {
szTmp[iTmp++] = '.';
szTmp[iTmp++] = '*';
szTmp[iTmp] = '\0';
}
/* Escape regular expressions special characters and double quote */
else if (strchr(pszRegexSpecialCharsAndDoubleQuote, pszValue[i]))
{
szTmp[iTmp] = '\\';
iTmp++;
szTmp[iTmp] = pszValue[i];
iTmp++;
szTmp[iTmp] = '\0';
}
else {
szTmp[iTmp] = pszValue[i];
iTmp++;
szTmp[iTmp] = '\0';
}
}
szTmp[iTmp] = '"';
szTmp[++iTmp] = '\0';
......
......@@ -4013,7 +4013,7 @@ char *msSLDGenerateTextSLD(classObj *psClass, layerObj *psLayer, int nVersion)
snprintf(szTmp, sizeof(szTmp), "<%sFill>\n", sNameSpace );
pszSLD = msStringConcatenate(pszSLD, szTmp);
sprintf(szHexColor,"%02x%02x%02x",nColorRed,
sprintf(szHexColor,"%02hhx%02hhx%02hhx",nColorRed,
nColorGreen, nColorBlue);
snprintf(szTmp, sizeof(szTmp),
......
......@@ -1119,7 +1119,7 @@ msPostGISRetrieveVersion(PGconn *pgconn)
ptr = strVersion;
strParts[j++] = strVersion;
while( ptr != '\0' && j < 3 ) {
while( *ptr != '\0' && j < 3 ) {
if ( *ptr == '.' ) {
*ptr = '\0';
strParts[j++] = ptr + 1;
......
......@@ -39,6 +39,13 @@ set_target_properties(${SWIG_MODULE_pythonmapscript_REAL_NAME} PROPERTIES OUTPUT
execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(True))" OUTPUT_VARIABLE PYTHON_SITE_PACKAGES OUTPUT_STRIP_TRAILING_WHITESPACE)
# FIXME: this is to avoid the following error
# CMake Error at mapscript/python/CMakeLists.txt:42 (get_target_property):
# The LOCATION property may not be read from target "_pythonmapscript". Use
# the target name directly with add_custom_command, or use the generator
# expression $<TARGET_FILE>, as appropriate.
cmake_policy(SET CMP0026 OLD)
get_target_property(LOC_MAPSCRIPT_LIB ${SWIG_MODULE_pythonmapscript_REAL_NAME} LOCATION)
set(mapscript_files ${LOC_MAPSCRIPT_LIB} ${CMAKE_CURRENT_BINARY_DIR}/mapscript.py)
install(FILES ${mapscript_files} DESTINATION ${PYTHON_SITE_PACKAGES})
......
......@@ -93,45 +93,43 @@ CreateTupleFromDoubleArray( double *first, unsigned int size ) {
$result = t_output_helper($result,r);
}
/*
* Typemap hashTableObj* -> dict
* Add dict methods to the hashTableObj object
*/
%typemap(out) hashTableObj*
{
/* %typemap(out) hashTableObj* */
const char* key;
hashTableObj *hashTable = $1;
$result = PyDict_New();
key = msFirstKeyFromHashTable(hashTable);
while( key )
{
const char* val = msLookupHashTable(hashTable, key);
if( val )
{
%#if PY_VERSION_HEX >= 0x03000000
PyObject *py_key = PyUnicode_FromString(key);
PyObject *py_val = PyUnicode_FromString(val);
%#else
PyObject *py_key = PyString_FromString(key);
PyObject *py_val = PyString_FromString(val);
%#endif
PyDict_SetItem($result, py_key, py_val );
Py_DECREF(py_key);
Py_DECREF(py_val);
}
key = msNextKeyFromHashTable(hashTable, key);
}
}
%extend hashTableObj{
%pythoncode %{
%typemap(freearg) hashTableObj*
{
/* %typemap(freearg) hashTableObj* */
msFreeHashTable( $1 );
}
def __getitem__(self, key):
return self.get(key)
def __setitem__(self, key, value):
return self.set(key, value)
def __delitem__(self, key) :
return self.remove(key)
def __contains__(self, key):
return key.lower() in [k.lower() for k in self.keys()]
def __len__(self):
return self.numitems
def keys(self):
keys = []
k = None
while True :
k = self.nextKey(k)
if k :
keys.append(k)
else :
break
return keys
%}
};
/**************************************************************************
* MapServer Errors and Python Exceptions
......
......@@ -85,17 +85,28 @@ class HashTableBaseTestCase:
key = self.table.nextKey(key)
assert key == None, key
# TODO
# def testKeys(self):
# "get sequence of keys"
# keys = self.table.keys()
# assert keys == self.keys, keys
#
# def testValues(self):
# "get sequence of values"
# values = self.table.values()
# assert values == self.values, values
# tests using the Python dictionary access methods
def testDictKeys(self):
assert sorted(self.keys) == sorted(self.table.keys())
def testDictItems(self):
assert len(self.keys) == len(self.table)
def testCheckDictContains(self):
for key in self.keys:
assert key in self.table.keys()
def testGetDictValue(self):
for key, value in zip(self.keys, self.values):
assert self.table[key] == value
assert self.table[key.upper()] == value
assert self.table[key.capitalize()] == value
def testRemoveDictItem(self):
key = self.keys[0]
del self.table[key]
assert self.table[key] == None
# ===========================================================================
# Test begins now
......