Mapbender Provenance Review

''This is the Mapbender Project copy of Code Provenance Review. The following are proposed code provenance review steps, but are not approved or authoritative in any way.''

= External Library Review =

mod_treefolder
Implements a collapsible folder tree structure which contains links to the layers of WMS services.

/mapbender/http/html/mod_treefolder.php

License text in mod_treefolder
The following text is included with the code. Please advise on how to proceed.

* Copyright (c) 1999 Polzin GmbH, Duesseldorf. All Rights Reserved. * Author: Lutz Eymers  * Download: http://www.polzin.com/inet/fset_inet.phtml?w=goodies *   * Permission to use, copy, modify, and distribute this software * and its documentation for any purposes and without fee * is hereby granted provided that this copyright notice * appears in all copies. *   * Of course, this software is provided "as is" without express or implied * warranty of any kind. *

wz-jsgraphics
/mapbender/http/extensions/wz-jsgraphics.js

Provenance: http://www.walterzorn.com

class.ezpdf.php
/mapbender/http/classes/class.ezpdf.php

License text in class.ezpdf.php:
The following text is included with the code. Please advise on how to proceed.

// this class will take the basic interaction facilities of the Cpdf class // and make more useful functions so that the user does not have to // know all the ins and outs of pdf presentation to produce something pretty. // // IMPORTANT NOTE // there is no warranty, implied or otherwise with this software. // // version 009 (versioning is linked to class.pdf.php) // // released under a public domain licence. // // Wayne Munro, R&OS Ltd, http://www.ros.co.nz/pdf

class.pdf.php
/mapbender/http/classes/class.pdf.php

License text in class.pdf.php
The following text is included with the code. Please advise on how to proceed.

* Cpdf * * http://www.ros.co.nz/pdf * * A PHP class to provide the basic functionality to create a pdf document without * any requirement for additional modules. * * Note that they companion class CezPdf can be used to extend this class and dramatically * simplify the creation of documents. * * IMPORTANT NOTE * there is no warranty, implied or otherwise with this software. * * LICENCE * This code has been placed in the Public Domain for all to enjoy.

phpmailer-1.72
/mapbender/http/classes/phpmailer-1.72

LGPL
= Code Copyright Review =

The objective here is to visit every source file, and identify possible issues, and work to "regularize" things.

class_administration.php

 * GPL, clean
 * contributed by astrid_emde, c_baudson, uli_rothstein
 * copyright by CCGIS

class_connector.php

 * GPL, clean
 * contributed by uli_rothstein
 * copyright by CCGIS

class_database.php

 * GPL, clean
 * contributed by c_baudson
 * copyright by CCGIS

class_database_table.php

 * GPL, clean
 * contributed by c_baudson
 * copyright by CCGIS

class_database_table_column.php

 * GPL, clean
 * contributed by c_baudson
 * copyright by CCGIS

class_database_table_constraint.php

 * GPL, clean
 * contributed by c_baudson
 * copyright by CCGIS

class_database_table_key.php

 * GPL, clean
 * contributed by c_baudson
 * copyright by CCGIS

class_exception.php

 * GPL, clean
 * contributed by c_baudson
 * copyright by CCGIS

class_geomColl.php

 * GPL, clean
 * contributed by uli_rothstein
 * copyright by CCGIS

class_geomObj.php

 * GPL, clean
 * contributed by uli_rothstein
 * copyright by CCGIS

class_gml.php

 * GPL, clean
 * contributed by uli_rothstein
 * copyright by CCGIS

class_gml2.php

 * GPL, clean
 * contributed by uli_rothstein
 * copyright by CCGIS

class_gmlMember.php

 * GPL, clean
 * contributed by c_baudson
 * copyright by CCGIS

class_gui.php

 * GPL, clean
 * contributed by c_baudson
 * copyright by CCGIS

class_log.php

 * GPL, please format & check text
 * contributed by astrid_emde
 * copyright by CCGIS

class_mb_exception.php

 * GPL, clean
 * contributed by c_baudson
 * copyright by CCGIS

class_SaveLegend.php

 * GPL, clean
 * contributed by uli_rothstein
 * copyright by CCGIS

class_stripRequest.php

 * GPL, clean
 * contributed by c_baudson, uli_rothstein
 * copyright by CCGIS

class_weldLegend2PNG.php

 * GPL, clean
 * contributed by astrid_emde, c_baudson, uli_rothstein
 * copyright by CCGIS

class_weldMaps2PNG.php

 * GPL, clean
 * contributed by astrid_emde, c_baudson, uli_rothstein
 * copyright by CCGIS

class_weldOverview2PNG.php

 * GPL, clean
 * contributed by astrid_emde, c_baudson, uli_rothstein
 * copyright by CCGIS

class_wfs.php

 * GPL, license text missing
 * contributed by astrid_emde, c_baudson, uli_rothstein
 * copyright by CCGIS missing

class_wfs_conf.php

 * GPL, license text missing
 * contributed by astrid_emde, c_baudson, uli_rothstein
 * copyright by CCGIS missing

class_wmc.php

 * GPL, clean
 * contributed by astrid_emde, c_baudson, uli_rothstein
 * copyright by CCGIS

class_wms.php

 * GPL, clean
 * contributed by astrid_emde, c_baudson, uli_rothstein
 * copyright by CCGIS

/http/extensions/
The directory /http/extensions/ needs some attention. Some of these modules are hacks and just beta they still need a license text. Some of them are so tiny that the license text would be more lines of code than the module itself. Does it even then need to be added?

ext_featureInfoTunnel.php

 * No license reference!
 * contributed by uli_rothstein
 * copyright text missing

ext_weldMaps.php

 * No license reference!
 * contributed by uli_rothstein
 * copyright text missing

geom2wfst.php

 * No license reference!
 * contributed by uli_rothstein
 * copyright text missing

markResult.php

 * No license reference!
 * contributed by uli_rothstein
 * copyright text missing

security_proxy.php

 * No license reference!
 * contributed by uli_rothstein
 * copyright text missing

frameset.html

 * GPL, clean
 * contributed by astrid_emde, c_baudson, uli_rothstein
 * copyright by CCGIS

index.php

 * GPL, clean
 * contributed by astrid_emde, c_baudson, uli_rothstein
 * copyright by CCGIS

login.php

 * GPL, clean
 * contributed by astrid_emde, c_baudson, uli_rothstein
 * copyright by CCGIS

dyn_css.php

 * license missing
 * contributed by astrid_emde
 * copyright missing

dyn_js.php

 * license missing
 * contributed by astrid_emde
 * copyright missing

dyn_php.php

 * license missing
 * contributed by astrid_emde
 * copyright missing

= Report/Form for Copyright Review =

TBD - Brookshier

(please explain TBD acronym)

= Review Document =

The result of the provenance review is two fold. First, there is clarification and "fixes" done during the review. For instance, adding missing copyright notices, or factoring out external libraries. The second is a review report with a fairly detailed list of outstanding issues, ambiguities and information of note.

The review document will be distributed to the project PSC members, as well as the incubation committee. Based on it, the incubation committee may require the project to do additional work, either resolving ambiguities, factoring items out, or rewriting questional components.

When completed, a much briefer form of the review document should be prepared, just listing information that would be pertinent to folks using the project. Essentially a summary. This summary might live in source control as README.LICENSE or something similar.

= FAQ =


 * Do we need to ensure there is a copyright and licence headers in every file?
 * Projects are expected to embed a copyright and license header in every source file (.cpp and .h for instance). Machine generated files (such as lex or yacc output for instance) does not require a header if it is inconvenient to embed one, but then an effort should be made to embed a header in the original source file (ie. .l or .y).  There is no need to embed copyright and license headers in build files (ie. Makefiles, Visual Studio project files), nor in small documentation fragments (like READMEs).  Copyright/license headers should be included in substantial bodies of documentation if it can be done in such a way that it doesn't interfere with the document.


 * Do I really need to embed the whole license agreement in every file?
 * No, it is sufficient to refer to a single copy of the license agreement for the project, but each file should include an indication of what the license is, and the location of the full license document. For example:

/* * Copyright (C) 2004-2005  Autodesk, Inc.  * * This library is free software; you can redistribute it and/or * modify it under the terms of version 2.1 of the GNU Lesser * General Public License as published by the Free Software Foundation. *   * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. *  * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA */


 * or

* COPYRIGHT:   (C) 2001 by the GRASS Development Team * *              This program is free software under the GNU General Public *              License (>=v2). Read the file COPYING that comes with GRASS *              for details.


 * Can I just write a script to check everything?
 * No. The point of a human review is to ensure that human eyes have looked at the header of each file, looking for any anomolies.  For instance it is not uncommon to have additional messages written in headers about the original source of particular code, but not necessarily in a way that a script could recognise.


 * But I just did a review similar to this a few months ago, do I really need to do it again?
 * If you believe you have already met or exceeded the rigor described in this review document, then you can present the results of your previous analysis along with an explanation of why you think it still applies. You will need to manually review additions since that earlier review.  It will be up to the Incubator (and ultimately the foundation board) to determine if they are satisfied with any review.


 * Do I need to track down every contributor and ask for permission to use their code?
 * No. As long as code was knowingly provided by contributors to the project while it was under a clear licensing policy then it is reasonable to assume the project licensing arrangements are accepted unless there is some reason to have doubts.  If code was brought into the project from outside sources under ambiguous circumstances then it may be necessary to contact the copyright holder for a legal release, or at least a statement of permission.


 * Some project code was adapted from other sources with ambiguous copyrights, what do I do?
 * First, document such concerns in the review document and within the source files themselves. Second, try to obtain a release to use the provide code.  An email statement of permission should be sufficient, but pertinant details of such an email should be included in the source file in questions (eg. date, identification of releasing person, text of the release).  If no release is possible, but the code isn't very necessary, consider removing or replacing it to simplify things.  Otherwise the issue will need to be discussed in the incubator to assess risk.


 * Should I be looking for patent problems?
 * No. However, if the code review turns up notes about patent issues - or if there are known patent issues for the project, then these should be noted in the review document.  Generally speaking a proper patent review is very difficult and may increase, rather than decrease, legal liability.


 * Should I be looking for tracemark conflicts?
 * Possibly. It may be prudent to check for trademark conflicts for the project name, or the name of public packages within the project.  If issues are found they should be noted in the review document.