[Mapserver-dev] Anyone mind me adding IDENT strings in MapServer?

Kralidis,Tom [Burlington] Tom.Kralidis at ec.gc.ca
Sat Oct 16 18:20:28 EDT 2004


Totally a good idea!  I would also suggest $Log$ at the end of files.

What I would suggest is a proper header 'format' that everyone agrees
on, in terms of what should be there.

..Tom


> -----Original Message-----
> From: mapserver-dev-admin at lists.gis.umn.edu 
> [mailto:mapserver-dev-admin at lists.gis.umn.edu] On Behalf Of 
> Frank Warmerdam
> Sent: Saturday, 16 October, 2004 13:22
> To: mapserver-dev at lists.gis.umn.edu
> Subject: [Mapserver-dev] Anyone mind me adding IDENT strings 
> in MapServer?
> 
> 
> Folks,
> 
> In GDAL I use a macro to insert a static string in each 
> object file with the CVS Id value.  This means I can easily 
> inspect any executable, or shared library and determine what 
> version of any given source file was built in.  For example:
> 
> warmerda at gdal2200[70]% ident ~/gdal/libgdal.so | grep cpl_vsi
>       $Id: cpl_vsil_unix_stdio_64.cpp,v 1.6 2002/06/17 
> 14:00:16 warmerda Exp $
>       $Id: cpl_vsisimple.cpp,v 1.17 2003/09/10 19:44:36 warmerda Exp $
> 
> I am interested in doing the same thing with MapServer, to 
> make it easier to establish exactly what version of stuff 
> folks are using.
> 
> I would propose to add a macro definition like this in map.h:
> 
> #ifndef DISABLE_CVSID
> #  define MS_CVSID(string)     static char ms_cvsid[] = string; \
> static char *msid_aw() { return( msid_aw() ? ((char *) NULL) 
> : ms_cvsid ); } #else #  define MS_CVSID(string) #endif
> 
> So, to disable it entirely just define DISABLE_CVSID.  The 
> macro is somewhat complex as I need to emit a dummy function 
> that uses the static string variable so it won't be 
> complained of as unused.
> 
> The downsides to doing this are:
>   o The executables will be somewhat larger.  It would add 
> roughly 100 bytes
>     to the executable per object file.  We have roughly 76 
> source files so that
>     would add roughly 7600 bytes to the size of any of the 
> executables.
>   o Someone has to make a pass through everything committing 
> code to use this
>     macro.  I am willing to do this.
>   o Yet another rule for people to keep in mind when checking 
> in new source files,
>     though there is nothing terrible that will happen if this 
> gets missed in a
>     few files.
> 
> So, what do people think?  If I get no objections and at 
> least two positive responses I will take that as permission.
> 
> I would add this pass through the code would be a good 
> opportunity to add "standard headers" to all the source 
> files.  We seem to have a variety of styles ranging from 
> Steve's (launch directly into the code ... to hell with 
> headers), to several variations on my normal style.  My would 
> also appreciate permission to add a header looking something 
> like the following in each file that has no current header.
> 
> /*************************************************************
> *****************
>   * $Id: mapdrawgdal.c,v 1.31 2004/09/29 17:12:13 frank Exp $
>   *
>   * Project:  MapServer
>   * Purpose:  Code for drawing GDAL raster layers.  Called from
>   *           msDrawRasterLayerLow() in mapraster.c.
>   * Author:   Frank Warmerdam, warmerdam at pobox.com
>   *
>   
> **************************************************************
> ****************
>   * Copyright (c) 2002, Frank Warmerdam <warmerdam at pobox.com>
>   *
>   * Permission is hereby granted, free of charge, to any 
> person obtaining a
>   * copy of this software and associated documentation files 
> (the "Software"),
>   * to deal in the Software without restriction, including 
> without limitation
>   * the rights to use, copy, modify, merge, publish, 
> distribute, sublicense,
>   * and/or sell copies of the Software, and to permit persons 
> to whom the
>   * Software is furnished to do so, subject to the following 
> conditions:
>   *
>   * The above copyright notice and this permission notice 
> shall be included
>   * in all copies or substantial portions of the Software.
>   *
>   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY 
> KIND, EXPRESS
>   * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 
> OF MERCHANTABILITY,
>   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN 
> NO EVENT SHALL
>   * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 
> DAMAGES OR OTHER
>   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
> OTHERWISE, ARISING
>   * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE 
> USE OR OTHER
>   * DEALINGS IN THE SOFTWARE.
>   
> **************************************************************
> ****************
>   *
>   * $Log: mapdrawgdal.c,v $
>   * Revision 1.31  2004/09/29 17:12:13  frank
>   * fixed casting issues to avoid warnings
>   */
> 
> However, this won't really give much concrete benefit. It 
> mostly just makes it a bit easier to see the author, a short 
> description of the purpose of the module, and the revision 
> history as well as making the licensing of each file more explicit.
> 
> Best regards,
> -- 
> ---------------------------------------+----------------------
> ----------
> ---------------------------------------+------
> I set the clouds in motion - turn up   | Frank Warmerdam, 
> warmerdam at pobox.com
> light and sound - activate the windows | http://pobox.com/~warmerdam
> and watch the world go round - Rush    | Geospatial 
> Programmer for Rent
> 
> _______________________________________________
> Mapserver-dev mailing list
> Mapserver-dev at lists.gis.umn.edu 
> http://lists.gis.umn.edu/mailman/listinfo/maps> erver-dev
> 




More information about the mapserver-dev mailing list