mapserver

Source code of the MapServer project. Please submit pull requests to the 'main' branch.

https://github.com/mapserver/mapserver

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    5 of 174 committers (2.9%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.4%) to scientific vocabulary

Keywords

c engine foss4g gdal geospatial gml map mapping mapserver ogc ogc-api ogc-services osgeo sos speed wcs web web-mapping wfs wms

Keywords from Contributors

inspire dcat csw catalog iso19110 iso19115 iso19119 iso19139 metadata-management ogcapi
Last synced: 6 months ago · JSON representation ·

Repository

Source code of the MapServer project. Please submit pull requests to the 'main' branch.

Basic Info
  • Host: GitHub
  • Owner: MapServer
  • License: other
  • Language: C
  • Default Branch: main
  • Homepage: https://mapserver.org
  • Size: 72.4 MB
Statistics
  • Stars: 1,132
  • Watchers: 83
  • Forks: 391
  • Open Issues: 303
  • Releases: 21
Topics
c engine foss4g gdal geospatial gml map mapping mapserver ogc ogc-api ogc-services osgeo sos speed wcs web web-mapping wfs wms
Created almost 14 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing Funding License Citation Security

README.WIN32

--------------------------------------------------------------------
README.WIN32 - Microsoft Visual C++ Build instructions for MapServer
--------------------------------------------------------------------

IMPORTANT - READ THIS FIRST:
----------------------------

  The Win32 build process is not very friendly for unexperienced users.
  So it is strongly recommended that you use one of the precompiled 
  binaries available on the MapServer site:
 
    http://www.mapserver.org/download.html#windows

  There are precompiled Win32 binaries available for the last stable
  release and the latest nightly build and they include the most common
  options... so you shouldn't have to compile your own executables.

  If for some reason you still decide to compile Win32 binaries yourself,
  then don't do it unless you really know what you're doing... and
  hopefully the rest of this file contains some hints that may help 
  you.  Good Luck!

--------------------------------------------------------------------

The easyest way to build Mapserver on Windows on your own is to use the
build-system from http://gisinternals.com/.
GISInternals provide a complete set of sources and dependencies and even
makefiles for the full version of Visual Studio (not Express or Community).
You don't have to download and compile them all by your own.

If you are not using full version of Visual Studio you can not use the makefiles
from GISInternals but you can still use the downloads to make your life easier.

Building with the full version of Visual Studio is easy.
Download the SDK for you version and follow the readme inside the packages.

This Readme will cover the compilation with Visual Studio 2012 Express on
Windows with CMake and the GISInternals-Packages for the following reasons:
  - not everybody wants to buy Visual Studio and there is no reason to force
    you to buy it just tu build Mapserver on Windows
  - CMake is the configuration-system for Linux. Why should you use something
    else which needs to be maintainerd?
  - as of today, PHP-Mapscript is not supported for PHP-7. PHP-5.6 is build
    with VC11. To make PHP-Mapscript compatible with the downloadable
    PHP-Version you need to build with VC11 which is Visual Studio 2012.
  - GISInternals Downloads contain most dependencies. it's way easier

If you want to compile Mapserver with any other version of Visual Studio you
can for sure use this documentation as help but maybe, some things here won't
work for you.

--------------------------------------------------------------------
      Prerequisites
--------------------------------------------------------------------

To build Mapserver on Windows with Visual Studio 2012 Express you need
Visual Studio 2012 Express installed.
Install CMake (https://cmake.org/) and add CMake bin-directory to your PATH
environment variable. You can even to this after opening VS2012 x86 Native
Tools Command Prompt by entering:
  set PATH=%PATH%;"C:\Program Files\CMake\bin"
... if CMake is installed to "C:\Program Files\CMake" ;)

--------------------------------------------------------------------
      Downloading dependencies
--------------------------------------------------------------------

For our first build, we will use stable releases to build mapserver.
Download MSVC 2012 win32 Packages for GDAL-2.1.2 and Mapserver-7.0.2 from http://gisinternals.com/release.php.
We need "Compiled binaries in a single .zip package", "GDAL and MapServer sources" and "Compiled libraries and headers".
Download the MSVC 2012 win32 Development Kit from http://gisinternals.com/sdk.php.
Extract everything to C:\dev\work\release-1700-gdal-2-1-2-mapserver-7-0-2.
There should be the directories inside now: bin, doc, gdal, include, lib, regex-0.12, relase-1700, ...
After you got this done, feel free to use other packages which fit your needs better.

--------------------------------------------------------------------
      Mapserver-sources
--------------------------------------------------------------------

Download at least Mapserver-7.0.3 or current 7.0-Branch from github
and extract or clone from github to C:\dev\work\mapserver.

--------------------------------------------------------------------
      Building Mapserver
--------------------------------------------------------------------

After downloading and extracting everything, to build Mapserver, follow this steps:
1. Open VS2012 x86 Native Tools Command Prompt (i'm german, hope it is translated
correctly).
2. Add CMake-bin to your PATH:
  set PATH=%PATH%;"C:\Program Files\CMake\bin"
3. Create build-Directory:
  mkdir C:\dev\work\mapserver\build
  cd C:\dev\work\mapserver\build
4. Configure:
  cmake .. -G "NMake Makefiles" -DBUILD_SHARED_LIBS=1 -DCMAKE_BUILD_TYPE=Release -Wno-dev
  cmake .. -DCMAKE_PREFIX_PATH=C:\dev\work\release-1700-gdal-2-1-2-mapserver-7-0-2;C:\dev\work\release-1700-gdal-2-1-2-mapserver-7-0-2\bin;C:\dev\work\release-1700-gdal-2-1-2-mapserver-7-0-2\lib;C:\dev\work\release-1700-gdal-2-1-2-mapserver-7-0-2\include
  cmake .. -DREGEX_DIR=C:\dev\work\release-1700-gdal-2-1-2-mapserver-7-0-2\regex-0.12
  cmake .. -DWITH_POSTGIS=0 -DWITH_SOS=1 -DWITH_KML=1
  cmake .. -DWITH_CLIENT_WMS=1 -DWITH_CLIENT_WFS=1
  cmake .. -DWITH_THREAD_SAFETY=1 -DWITH_FCGI=1
  cmake .. -DWITH_CAIRO=1 -DCAIRO_LIBRARY=C:\dev\work\release-1700-gdal-2-1-2-mapserver-7-0-2\lib\cairo.lib
  cmake .. -DWITH_SVGCAIRO=1 -DSVGCAIRO_LIBRARY=C:\dev\work\release-1700-gdal-2-1-2-mapserver-7-0-2\lib\libsvg-cairo.lib
  cmake .. -DSVG_LIBRARY=1 -DSVG_LIBRARY=C:\dev\work\release-1700-gdal-2-1-2-mapserver-7-0-2\lib\libsvg.lib
5. build
  nmake

That's it.
You can use all CMake parameters and options as you are used from CMake to fit mapserver to your needs from here.
Enjoy!

--------------------------------------------------------------------
      MapScript
-------------------------------------------------------------------- 

To compile the various versions of MapScript (Perl, PHP, etc) first compile
the main mapserver directory and then see the README files in the
mapscript/perl, mapscript/php or mapscript/python directory for specific
instructions.

--------------------------------------------------------------------
      Dependencies Part 2
--------------------------------------------------------------------

The following sections describe how to get mapserver dependencies when not
downloading GISInternals packages.

--------------------------------------------------------------------
      GD library
-------------------------------------------------------------------- 

- MapServer uses the GD library from http://boutell.com/ and the Win32
  makefiles are set by default to work with the pre-built GD version 2.0.33 
  provided by Boutell.com.  These predefine "gdwin32" binaries include
  freetype2, libpng, libjpeg, libz, and libgif built-in.  This is very
  convenient to get a mapserver build going quickly.

  If you are building GD and it's supporting libraries (libpng, libjpeg, 
  libgif, and freetype) from source then it is very important to make sure 
  that you update the -DUSE_GD_* flags and various subcomponent paths in the 
  nmake.opt.  You will also have to take great care to build the various
  components in a way that is compatible with MapServer.  For instance, if
  the various components are statically linked into MapServer you will need
  to use the same build options (ie. /MT or /MT) for all components.

  Here are some useful pointers:
   - The original GD library: http://boutell.com/gd/
   - libpng:    http://www.libpng.org/pub/png/libpng.html
   - zlib:      http://www.info-zip.org/pub/infozip/zlib/
   - libjpeg:   ftp://ftp.uu.net/graphics/jpeg/
   - Freetype:  http://www.freetype.org/download.html

--------------------------------------------------------------------
      REGEX library
-------------------------------------------------------------------- 

- MapServer uses the REGEX library which is standard on all the Unix
  systems that I know of, but does not come with VC++.
  If the MapServer distribution did not include a copy of the REGEX
  library, then you can get a copy from:

      ftp://ftp.gnu.org/pub/gnu/regex/regex-0.12.tar.gz

  The default in the nmake.opt is set to compile with GNU 
  regex-0.12 located in the "regex-0.12" directory.

- If you are planning to compile the PHP3_MAPSCRIPT.DLL module, then it
  is important to make sure that the main Makefile.vc creates MAPSERVER.LIB
  with the same version of REGEX that PHP uses.
  See the notes in the main Makefile.vc about that.

--------------------------------------------------------------------
      Notes on Freetype build.
-------------------------------------------------------------------- 

 - You can use the Visual Workspace in freetype/lib/arch/win32 to build
   the library.


--------------------------------------------------------------------
      Notes on the proj module
-------------------------------------------------------------------- 

  - The Proj.4 (cartographic projection routines) is located at 
        http://www.remotesensing.org/proj/

  Note on the epsg files location and the nad directory :

   * there is an environnemnt variable PROJ_LIB_DIR that can be set to locate 
     the directory where the epsg file is located
   * if you build this module, at the top of the makefile (./src/makefile.vc), you
     can set the PROJ_LIB variable and this setting will be used to 
     locate the proj support files.  

  
----------------------------------------------------------------------
  Notes on libcurl
----------------------------------------------------------------------

  Notes libcurl : used to support WMS client connection
  Mapserver 5.x is using libcurl instead of libwww for WMS client
  support.

  - the library is located at http://curl.haxx.se/download.html

  Quick notes on how to build the library using MSVC++:

  - Download and extract the library (at this time it is known to work 
    with version 7.10.2 or more recent)
  - Open the workspace curlib.dsw located under curl-XXX/lib
  - Build libcurl.dll. Note that the default active configuration of the project
     is  Win32 Debug. You can modify the configuration to Release version 
     (Build/Set Active Configuration)          

  
  Notes on mapserver's nmake.opt modifications :

  - uncomment the flag WMSCLIENT= -DUSE_WMS_LYR
  - uncomment and modify according to your installation the flags 
    related to libcurl :

    * CURL_INC = -I../curl-7.10.2/include
    * CURL_LIB = ../curl-7.10.2/lib/Release/libcurl.lib
    * WINSOCK_LIB = "C:\Program Files\Microsoft Visual Studio\VC98\Lib\WSOCK32.LIB"

  You also need to install the libcurl.dll in your system directory. (The dll will
  be located in libc-XXX/lib/Release abfter your build of the library)
    


------------------------------------------------------------
        Notes on GDAL
------------------------------------------------------------

-  If you are compiling the GDAL library (http://www.gdal.org/)
   with the PNG support, make sure that the libpng that you use in mapserver 
   is the same as the one used in GDAL.



$Id$

Owner

  • Name: MapServer
  • Login: MapServer
  • Kind: organization

Fast and customizable Web mapping engine, written in C.

Citation (CITATION.cff)

cff-version: 1.2.0
title: MapServer
message: If you use this software, please cite it using the metadata from this file.
version: 8.4.0
date-released: 2025-01-15
abstract: MapServer is an Open Source platform for publishing spatial data and interactive mapping applications to the web.
type: software
authors:
  - family-names: McKenna
    given-names: Jeff
    affiliation: GatewayGeo
    orcid: https://orcid.org/0000-0003-3900-1863
  - family-names: Lime
    given-names: Steve
    affiliation: MNIT DNR
  - family-names: Bonfort
    given-names: Thomas
    affiliation: Airbus
  - family-names: Boué
    given-names: Jérome
  - family-names: Butler
    given-names: Howard
    affiliation: Hobu Inc
    orcid: https://orcid.org/0000-0002-5340-1380
  - family-names: Girvin
    given-names: Seth
    affiliation: Geographika
  - family-names: Kralidis
    given-names: Tom
  - family-names: Meissl
    given-names: Stephan
    affiliation: EOX
    orcid: https://orcid.org/0000-0002-1407-8859
  - family-names: Morissette
    given-names: Daniel
    affiliation: Mapgears
  - family-names: Nacionales
    given-names: Perry
    affiliation: University of Minnesota
  - family-names: Rahkonen
    given-names: Jukka
    affiliation: National Land Survey of Finland
  - family-names: Rouault
    given-names: Even
    affiliation: Spatialys
    orcid: https://orcid.org/0000-0002-5068-0476
  - family-names: Smith
    given-names: Mike
    affiliation: US Army Corps of Engineers
  - family-names: Szekeres
    given-names: Tamas 
repository-code: https://github.com/MapServer/MapServer
license: MIT
doi: 10.5281/zenodo.6994443
keywords:
  - web
  - geospatial
  - software
  - ogc
  - standards
  - gdal
  - open source
  - free software
  - MIT

GitHub Events

Total
  • Fork event: 15
  • Create event: 32
  • Commit comment event: 1
  • Release event: 3
  • Issues event: 59
  • Watch event: 101
  • Delete event: 28
  • Issue comment event: 235
  • Push event: 97
  • Gollum event: 30
  • Pull request review comment event: 19
  • Pull request review event: 30
  • Pull request event: 180
Last Year
  • Fork event: 15
  • Create event: 32
  • Commit comment event: 1
  • Release event: 3
  • Issues event: 59
  • Watch event: 101
  • Delete event: 28
  • Issue comment event: 235
  • Push event: 97
  • Gollum event: 30
  • Pull request review comment event: 19
  • Pull request review event: 30
  • Pull request event: 180

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 12,605
  • Total Committers: 174
  • Avg Commits per committer: 72.443
  • Development Distribution Score (DDS): 0.859
Past Year
  • Commits: 168
  • Committers: 16
  • Avg Commits per committer: 10.5
  • Development Distribution Score (DDS): 0.53
Top Committers
Name Email Commits
Steve Lime s****e@g****m 1,776
Thomas Bonfort t****t@g****m 1,573
Daniel Morissette d****e@m****m 1,396
Assefa Yewondwossen a****a@d****a 1,212
Frank Warmerdam w****m@p****m 1,186
Even Rouault e****t@s****m 1,123
Tamas Szekeres s****t@g****m 580
sethg s****g@g****k 484
Sean Gillies s****s@g****m 478
Alan Boudreault a****t@m****m 454
Howard Butler h****c@g****m 419
Tom Kralidis t****s@h****m 350
Jeff McKenna j****a@g****m 244
Paul Ramsey p****y@c****a 136
Umberto Nicoletti u****i@g****m 136
Julien-Samuel Lacroix j****x@d****a 126
Stephan Meissl s****n@m****e 118
Sacha Fournier s****r@d****a 46
Fabian Schindler f****r@g****t 39
jbo-ads j****s@m****m 37
Attila Csipa p****s@p****u 30
Max Kellermann m****n@g****m 28
Bas Couwenberg s****c@x****l 28
Sander Jansen s****n@g****m 27
David Blasby d****y@o****g 25
Rodrigo Cabral c****l@y****t 24
Olivier Courtin o****n@o****m 17
Martin Kofahl m****l@g****m 15
Alexander Gabriel a****l@d****e 15
ejn e****h@g****e 15
and 144 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 198
  • Total pull requests: 554
  • Average time to close issues: over 3 years
  • Average time to close pull requests: 7 days
  • Total issue authors: 114
  • Total pull request authors: 39
  • Average comments per issue: 3.38
  • Average comments per pull request: 1.39
  • Merged pull requests: 463
  • Bot issues: 0
  • Bot pull requests: 165
Past Year
  • Issues: 48
  • Pull requests: 200
  • Average time to close issues: 11 days
  • Average time to close pull requests: 5 days
  • Issue authors: 34
  • Pull request authors: 20
  • Average comments per issue: 0.96
  • Average comments per pull request: 1.33
  • Merged pull requests: 152
  • Bot issues: 0
  • Bot pull requests: 62
Top Authors
Issue Authors
  • geographika (20)
  • mapserver-bot (20)
  • jmckenna (7)
  • jratike80 (5)
  • szekerest (5)
  • sdlime (3)
  • nmtoken (3)
  • richie21 (3)
  • MathewNWSH (3)
  • landryb (3)
  • rouault (3)
  • nikolaysu (2)
  • epifanio (2)
  • ghschier (2)
  • TAlonglong (2)
Pull Request Authors
  • github-actions[bot] (152)
  • rouault (131)
  • geographika (118)
  • jmckenna (31)
  • dependabot[bot] (13)
  • PatrikSylve (12)
  • hobu (11)
  • szekerest (10)
  • sdlime (9)
  • sebastic (7)
  • PPazderski (6)
  • mapcentia (5)
  • marisn (4)
  • mikitex70 (3)
  • roelarents (3)
Top Labels
Issue Labels
Bug (17) Enhancement (15) WFS Server (5) C Library (4) WMS Server (3) Wontfix (3) backport branch-8-2 (2) OGR Support (2) WMS Client (2) MapScript-PHP (2) Build Problems (2) Stale (1) MapScript-Perl (1) MapScript (1) Input - Oracle Spatial Support (1) SLD (1) Output-KML (1) GDAL Support (1) Input - MS SQL Server Support (1) WCS Server (1) Msautotest (1) OGCAPI: Features (1) MapML (1) demo.mapserver.org services (1) MapScript-Python (1) Infrastructure (1)
Pull Request Labels
backport branch-8-0 (69) backport branch-8-2 (55) backport branch-8-4 (35) dependencies (13) Work in progress (10) CI Testing (8) failed backport (7) Build Problems (7) Feedback requested (6) backport branch-7-6 (4) Review required (3) MapScript-PHP (3) Enhancement (2) Review requested (2) Infrastructure (1) Input - MS SQL Server Support (1) MapScript (1) MapScript-SWIG (1) WMS Server (1) C Library (1)

Dependencies

.github/workflows/backport.yml actions
  • m-kuhn/backport v1.2.7 composite
.github/workflows/build.yml actions
  • actions/checkout v2 composite
.github/workflows/check-crlf.yml actions
  • actions/checkout v1 composite
  • erclu/check-crlf v1.2.0 composite
.github/workflows/cifuzz.yml actions
  • actions/upload-artifact v1 composite
  • google/oss-fuzz/infra/cifuzz/actions/build_fuzzers master composite
  • google/oss-fuzz/infra/cifuzz/actions/run_fuzzers master composite
.github/workflows/coverity-scan.yml actions
  • actions/checkout v2 composite
.github/workflows/cppcheck.yml actions
  • actions/checkout v2 composite
.github/workflows/irc_notify.yml actions
  • rectalogic/notify-irc v1 composite
scripts/docker/Dockerfile docker
  • ubuntu xenial build
mapscript/python/requirements-dev.txt pypi
  • flake8 ==3.9.2 development
  • flake8 ==5.0.3 development
  • pillow * development
  • pytest * development
  • setuptools >=40.2.0 development
  • wheel >=0.31.1 development