<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style>.EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; }</style>
</head>
<body>
<font face="Calibri, sans-serif" size="2">
<div><font color="#FF0000"><b>[GB] See inline</b><b>&#8230;</b></font></div>
<div><font color="#FF0000">&nbsp;</font></div>
<div><font color="#FF0000"><b>[GB] also</b><b>&#8230;</b></font></div>
<div><font color="#FF0000">&nbsp;</font></div>
<ol style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 36pt; ">
<font color="#FF0000">
<li><b>What source code changes are being proposed, if any?</b></li><li><b>What installed content are being proposed</b><b> as a result of the new build system</b><b>?</b></li></font>
</ol>
<ol type="a" style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 72pt; ">
<font color="#FF0000">
<li><b>Can we get a comparison of the before/after result of building a </b><b>full version of FDO and all it</b><b>&#8217;</b><b>s providers?</b></li><li><b>What changes are applications expected to make in order to use the installed output</b><b>?</b></li></font>
</ol>
<ol start="3" style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 36pt; ">
<font color="#FF0000">
<li><b>Can you give a brief outline of the </b><b>source/build </b><b>files that will be added/removed</b><b>/modified</b><b> </b><b>in</b><b> the SVN?</b></li><li><b>Will the build_linux.</b><b>sh files be maintained?</b></li><li><b>Who will </b><b>document</b><b> the new build system</b><b> for our users</b><b>?</b></li><li><b>On which Linux systems will the new build system be officially tested?</b></li><li><b>How are Windows .vcproj and .sln files generated </b><b>from the cmake files?</b></li></font>
</ol>
<ol type="a" start="3" style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 72pt; ">
<font color="#FF0000">
<li><b>How can custom .vcproj actions currently defined in the .vcproj files be captured by the cmake files?</b></li></font>
</ol>
<div><font color="#FF0000">&nbsp;</font></div>
<div><font color="#FF0000"><b>Please incorporate all responses in the RFC itself.</b></font></div>
<div style="margin-top: 1pt; padding-left: -13pt; padding-right: 12pt; ">&nbsp;</div>
<div style="margin-top: 1pt; padding-left: -13pt; padding-right: 12pt; ">&nbsp;</div>
<div style="margin-top: 1pt; padding-left: -13pt; padding-right: 12pt; ">&nbsp;</div>
<div style="margin-top: 1pt; padding-left: -13pt; padding-right: 12pt; "><font face="Arial, sans-serif" size="4"><b>-----------</b></font></div>
<div style="margin-top: 1pt; padding-left: -13pt; padding-right: 12pt; "><font face="Arial, sans-serif" size="4"><b>FDO RFC 21 - New Linux Buildsystem Cmake Based</b><a href="http://trac.osgeo.org/fdo/wiki/FDORfc21"><font color="#0000FF"><u><b> ¶</b></u></font></a></font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2">This page contains a request for comments document (RFC) for the FDO Open Source project. More FDO RFCs can be found on the <a href="http://trac.osgeo.org/fdo/wiki/FDORfcs"><font color="#0000FF"><u>RFCs</u></font></a>
page. </font></div>
<div style="padding-left: -13pt; "><font face="Arial, sans-serif"><b>Status</b><a href="http://trac.osgeo.org/fdo/wiki/FDORfc21"><font color="#0000FF"><u><b> ¶</b></u></font></a></font></div>
<table border="1" width="578" style="border:1 solid; border-collapse:collapse; margin-left: -3pt; ">
<col width="202">
<col width="375">
<tr>
<td><font face="Verdana, sans-serif" size="2">RFC Template Version</font></td>
<td><font face="Verdana, sans-serif" size="2">(1.0) </font></td>
</tr>
<tr>
<td><font face="Verdana, sans-serif" size="2">Submission Date</font></td>
<td><font face="Verdana, sans-serif" size="2">May 20, 2008 </font></td>
</tr>
<tr>
<td><font face="Verdana, sans-serif" size="2">Last Modified</font></td>
<td><font face="Verdana, sans-serif" size="2">Helio Castro <b>Wed May 21 15:22:59 2008</b> </font></td>
</tr>
<tr>
<td><font face="Verdana, sans-serif" size="2">Author</font></td>
<td><font face="Verdana, sans-serif" size="2">Helio Castro </font></td>
</tr>
<tr>
<td><font face="Verdana, sans-serif" size="2">RFC Status</font></td>
<td><font face="Verdana, sans-serif" size="2">Draft </font></td>
</tr>
<tr>
<td><font face="Verdana, sans-serif" size="2">Implementation Status</font></td>
<td><font face="Verdana, sans-serif" size="2">Under Development </font></td>
</tr>
<tr>
<td><font face="Verdana, sans-serif" size="2">Proposed Milestone</font></td>
<td><font face="Verdana, sans-serif" size="2">3.3.x </font></td>
</tr>
<tr>
<td><font face="Verdana, sans-serif" size="2">Assigned PSC guide(s)</font></td>
<td><font face="Verdana, sans-serif" size="2">&nbsp;</font></td>
</tr>
<tr>
<td><font face="Verdana, sans-serif" size="2"><b>Voting History</b></font></td>
<td><font face="Verdana, sans-serif" size="2">(vote date) </font></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
<div style="padding-left: -13pt; ">&nbsp;</div>
<div style="padding-left: -13pt; "><font face="Arial, sans-serif"><b>Overview</b><a href="http://trac.osgeo.org/fdo/wiki/FDORfc21"><font color="#0000FF"><u><b> ¶</b></u></font></a></font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2">On the current status of FDO over Linux and *nix platforms there's a huge need to rely on third party included sources, as well all providers can't be independently
built, depending of whole infrastructure of core FDO sources to be available. This proposal is to move whole builds for a modern text based, human readable build system, suitable to even become windows build system in future. </font></div>
<div style="padding-left: -13pt; "><font face="Arial, sans-serif"><b>Motivation</b><a href="http://trac.osgeo.org/fdo/wiki/FDORfc21"><font color="#0000FF"><u><b> ¶</b></u></font></a></font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2">FDO is suppose to become *the* standard for map manipulation on open source, but current automake, autoconf Linux and *nix build system together with the difficulty
of rely in private headers and very old versions of some libraries, like cppunit, make almost impossible to provide it as a consistent package for distribution. The situation is worse when we deal that in many cases static and shared libraries are been linked
together, and compilers like gcc sometimes not play so nice with this ( really ). </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2">This creates a complication over the present distributions situations, as some libraries present conflicts with the thirdparty ones provided, and make FDO open source
not widespread available on major distributions. </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2">The whole motivation behind the change is make FDO not touch any kind of internal thirdparty sources, using only provided distribution libraries, and make it easy to
compile and work with core or providers separated. CMake is one of the frameworks that allow us to do this. </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2" color="#FF0000"><b>[GB] The purpose of including </b><b>the Thirdparty directory is to simplify the user</b><b>&#8217;</b><b>s development experience so that he/she do not
have to determin</b><b>e</b><b> which versions</b><b>/builds</b><b> of </b><b>the relevant </b><b>Thirdparty software are supported</b><b>. By including a version of a Thirdparty component in ou</b><b>r</b><b> SVN, we guarantee that our software works with
that version. How do you propose to handle the cases where a user </b><b>a) does not want to have to figure out which version (or if his version) is supported or b) </b><b>that the version he uses runs but is not 100% compatible, resulting in runtime errors,
loss of functionality, etc?</b></font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2">With this, the possibilities of improvement are huge, as will become easy to deal with debugging/analyzing independent parts of code, without rely on restart whole
bs scripting. </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2" color="#FF0000"><b>[GB] </b><b>Can you elaborate</b><b> on the meaning </b><b>of this statement </b><b>in greater detail and </b><b>further </b><b>do</b><b>c</b><b>ument
</b><b>the </b><b>expected improvements that will result</b><b>?</b><b> What does </b><b>&#8220;</b><b>bs scripting</b><b>&#8221;</b><b> refer to?</b></font></div>
<div style="padding-left: -13pt; "><font face="Arial, sans-serif"><b>Proposed Solution</b><a href="http://trac.osgeo.org/fdo/wiki/FDORfc21"><font color="#0000FF"><u><b> ¶</b></u></font></a></font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2">Most of this proposals presented here are in the READY TO DEPLOY state, unless some exceptions stated below </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2"><i>Get rid of whole auto*tools</i> </font></div>
<ul style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 36pt; ">
<font face="Verdana, sans-serif" size="2">
<li style="margin-top: 5pt; margin-bottom: 5pt; ">None of the current .am .in tools will be necessary anymore. </li></font>
</ul>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2"><i>Get rid of </i><a href="http://trac.osgeo.org/fdo/wiki/ThirdParty"><font color="#999988"><span style="background-color:#FAFAF0"><u><i>ThirdParty</i></u></span></font></a><i>
tools</i> </font></div>
<ul style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 36pt; ">
<font face="Verdana, sans-serif" size="2">
<li style="margin-top: 5pt; margin-bottom: 5pt; ">With the new buildsystem, it will be suppose to use external shared only system libraries. The only present issue is about sqllite internal header dependency to solve. </li><li style="margin-top: 5pt; margin-bottom: 5pt; ">Common tools like mkcatdefs are splitted in an independent source standalone with their own cmake build. </li></font>
</ul>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2"><i>Been able to compile any provider without need to be inside FDO main code&quot; </i></font></div>
<ul style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 36pt; ">
<font face="Verdana, sans-serif" size="2">
<li style="margin-top: 5pt; margin-bottom: 5pt; ">Providers compile itself, just requiring that fdo core lib and headers is installed and cmake knows where to look. </li><li style="margin-top: 5pt; margin-bottom: 5pt; ">Providers not need anymore been developed inside the fdo tree. </li></font>
</ul>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2" color="#FF0000"><b>[GB] </b><b>Can you describe </b><b>this </b><b>section </b><b>in greater detail? How has this improvement been tested? </b><b>What happens if no
FDO is installed and the FDO binarie</b><b>s</b><b> currently reside in their current build system locations?</b></font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2"><i>Rearrange fdo headers install</i> </font></div>
<ul style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 36pt; ">
<font face="Verdana, sans-serif" size="2">
<li style="margin-top: 5pt; margin-bottom: 5pt; ">To enable providers become an entity, some headers ignored before are now needed to be installed in their own include dir. New buildsystem do this automatically.</li></font>
</ul>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2" color="#FF0000"><b>[GB] </b><b>Can you describe </b><b>this </b><b>in greater detail?</b><b> We have external applications which rely on the current install directory
pattern. </b></font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2"><i>Create proper library naming/module</i> </font></div>
<ul style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 36pt; ">
<font face="Verdana, sans-serif" size="2">
<li style="margin-top: 5pt; margin-bottom: 5pt; ">Today fdo provides .so only files, mixing devel and not devel symbols. FDO core is moved to have prober soname and devel .so. Same to Providers, but further study can make providers to become module only, not
needing rely anymore to become .so.* </li></font>
</ul>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2" color="#FF0000"><b>[GB] </b><b>Can you describe </b><b>this </b><b>in greater detail?</b><b> We have applications </b><b>in production </b><b>which rely on the current
</b><b>library names</b><b>.</b></font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2"><i>Been able to install in any directory withou</i><i>t</i><i> harm applications using it</i> </font></div>
<ul style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 36pt; ">
<font face="Verdana, sans-serif" size="2">
<li style="margin-top: 5pt; margin-bottom: 5pt; ">New buildsystem do automatically the necessary changes in files to provide access doesn't matter the dir user decides to install. The original place was /usr/local/fdo-&lt;version&gt; </li></font>
</ul>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2" color="#FF0000"><b>[GB] </b><b>Installation into a user specified directory is already supported as long as the </b><b>$</b><b>FDOHOME environment variable is set</b><b>.</b><b>
Even if the </b><b>cm</b><b>ake system is adopted, setting $FDOHOME </b><b>will still be required.</b><b> What level of testing has been done to validate </b><b>enhanced install location</b><b> support</b><b>?</b></font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2"><i>Rewrite SQLiteInterface utility</i> </font></div>
<ul style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 36pt; ">
<font face="Verdana, sans-serif" size="2">
<li style="margin-top: 5pt; margin-bottom: 5pt; ">Current sqlite interface utility is dealing with internal sqlite headers. Sdf provider needs that. Mapguide not compiles without Sdf providers ( suggests to create a test to compile or not on mapguide ). To
make it feasible, a rewrite is needed to use only standard sqlite headers. </li></font>
</ul>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2" color="#FF0000"><b>[GB] </b><b>If MapGuide needs SDF, then how can a solution be implemented that involves not </b><b>compiling SDF? Also, if a rewrite is required,
that must be explicitly spelled out in this document.</b></font></div>
<div style="padding-left: -13pt; "><font face="Arial, sans-serif"><b>Test Plan</b><a href="http://trac.osgeo.org/fdo/wiki/FDORfc21"><font color="#0000FF"><u><b> ¶</b></u></font></a></font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2">- Patches are ready to be provided against fdo-3.3.1 code and tested. - The new buildsystem can be introduced an committed in current trunk tree without affect any
of current development and touching old files for now. 100% safe transition. </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2" color="#FF0000"><b>[GB] </b><b>Can you elaborate on what </b><b>&#8220;</b><b>tested</b><b>&#8221;</b><b> means?</b></font></div>
<div style="padding-left: -13pt; "><font face="Arial, sans-serif"><b>Issues</b><a href="http://trac.osgeo.org/fdo/wiki/FDORfc21"><font color="#0000FF"><u><b> ¶</b></u></font></a></font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2">* Not all providers are converted. Is just manual work. Currently sdf, shp, postgist and gdal are done. * Still need to rely in private sources ( sqlite ) * Not tested
in many linux distros ( did on Mandriva, Suse and RH/Fedora ) * Not tested in *nix ( did on <a href="http://trac.osgeo.org/fdo/wiki/OpenSolaris"><font color="#999988"><span style="background-color:#FAFAF0"><u>OpenSolaris?</u></span></font></a> build only )
</font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><font face="Verdana, sans-serif" size="2" color="#FF0000"><b>[GB] </b><b>Are you proposing that all providers be converted </b><b>before adopting such a system </b><b>or only a subset?</b></font></div>
<div style="padding-left: -13pt; "><font face="Arial, sans-serif"><b>Funding/Resources</b><a href="http://trac.osgeo.org/fdo/wiki/FDORfc21"><font color="#0000FF"><u><b> ¶</b></u></font></a></font></div>
<div><font face="Consolas, monospace" size="2">&nbsp;</font></div>
<div><font face="Consolas, monospace" size="2">&nbsp;</font></div>
<div><font face="Consolas, monospace" size="2">-----Original Message-----<br>

From: fdo-internals-bounces@lists.osgeo.org [<a href="mailto:fdo-internals-bounces@lists.osgeo.org">mailto:fdo-internals-bounces@lists.osgeo.org</a>] On Behalf Of Helio Chissini de Castro<br>

Sent: Tuesday, May 20, 2008 10:35 AM<br>

To: FDO Internals Mail List<br>

Subject: [fdo-internals] FDO RFC 21 - New Linux Buildsystem Cmake Based</font></div>
<div><font face="Consolas, monospace" size="2">&nbsp;</font></div>
<div><font face="Consolas, monospace" size="2">Hello people</font></div>
<div><font face="Consolas, monospace" size="2">&nbsp;</font></div>
<div><font face="Consolas, monospace" size="2">I just started my first RFC about the buildsystem changes. Now of course</font></div>
<div><font face="Consolas, monospace" size="2">starting on FDO.</font></div>
<div><font face="Consolas, monospace" size="2">&nbsp;</font></div>
<div><font face="Consolas, monospace" size="2"><a href="http://trac.osgeo.org/fdo/wiki/FDORfc21">http://trac.osgeo.org/fdo/wiki/FDORfc21</a></font></div>
<div><font face="Consolas, monospace" size="2">&nbsp;</font></div>
<div><font face="Consolas, monospace" size="2">Regards</font></div>
<div><font face="Consolas, monospace" size="2">&nbsp;</font></div>
<div><font face="Consolas, monospace" size="2">--</font></div>
<div><font face="Consolas, monospace" size="2">Helio Chissini de Castro</font></div>
<div><font face="Consolas, monospace" size="2">KDE Project</font></div>
<div><font face="Consolas, monospace" size="2">Brasil and South America Primary Contact</font></div>
<div><font face="Consolas, monospace" size="2">_______________________________________________</font></div>
<div><font face="Consolas, monospace" size="2">fdo-internals mailing list</font></div>
<div><font face="Consolas, monospace" size="2">fdo-internals@lists.osgeo.org</font></div>
<div><font face="Consolas, monospace" size="2"><a href="http://lists.osgeo.org/mailman/listinfo/fdo-internals">http://lists.osgeo.org/mailman/listinfo/fdo-internals</a></font></div>
<div><font face="Consolas, monospace" size="2">&nbsp;</font></div>
</font>
</body>
</html>