<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Kurt,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Thanks for responding.  It's still on the table.  I just wanted to air out the issues.  <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>I was referring to install of headers.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Sandro et. al,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Getting back to your option with ./configure, would it be possible to only allow enabling of the C++ API if it's being built as a static library.  I think our main issue is when it's shared.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>So if you link dynamically you'd be forced to use the C-API since you are impacting other possible application use.  If done statically, we don't care cause you are mixing your own soup.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>The alternative thought is to start earnestly taking care of the ABI compatibility of the C++ API  and ensuring we don't recklessly break it.  <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>I don't think we should do that unless someone is willing to support the work or fund the extra effort to continually support it.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Thanks,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Regina<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> geos-devel [mailto:geos-devel-bounces@lists.osgeo.org] <b>On Behalf Of </b>Kurt Schwehr<br><b>Sent:</b> Sunday, October 01, 2017 11:03 PM<br><b>To:</b> GEOS Development List <geos-devel@lists.osgeo.org><br><b>Cc:</b> PostGIS Development Discussion <postgis-devel@lists.osgeo.org><br><b>Subject:</b> Re: [geos-devel] RFC6 - Drop GEOS C++ API at GEOS 3.8<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><div><p class=MsoNormal style='margin-left:.5in'>-1 (non-PSC).  Please do not drop the C++ the C++ API.  Some folks (e.g. me at Google) statically link GEOS and ABI compatibility is not an issue.  Every build is a complete system.  Working with C APIs is far harder.  We end up having to wrap a C++ API back over C APIs.  But do note that I don't use any of the provided build systems.  It's unclear what you mean in RFC6 by not providing the C++ headers.  I presume that you mean in the install destination or do you just mean that packagers can drop the C++ header?<o:p></o:p></p><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>It's perfectly reasonable for packages to only depend on the C API and I think that does make sense for PostGIS.<o:p></o:p></p></div></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><div><p class=MsoNormal style='margin-left:.5in'>On Sun, Oct 1, 2017 at 7:49 PM, Regina Obe <<a href="mailto:lr@pcorp.us" target="_blank">lr@pcorp.us</a>> wrote:<o:p></o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><p class=MsoNormal style='margin-left:.5in'>Okay I have created an RFC6 to officially drop GEOS C++ starting at GEOS 3.8  (so as soon as we release GEOS 3.7 (which should be next month), and flip the switch, we drop the C++ headers as well so developers won't be tempted to use them.<br><br><a href="https://trac.osgeo.org/geos/wiki/RFC6" target="_blank">https://trac.osgeo.org/geos/wiki/RFC6</a><br><br><br>As Bas said already it causes packagers headaches.  It causes PostGIS headaches because users can't easily migrate to newer versions of GEOS because the packages they rely on e.g osm2pgsql (which is going away because we broke ABI with C++ aPI between 3.5 and 3.6).<br><br>If we can't support something, let's not provide it period.  It's disservice to everybody.<br><br>I know Sandro you think making it noisy would solve the issue.  Trust me it won't.  There is so much noise with all dependencies people compile with that most developers are trained to ignore them.<br>The proof to them is it compiles and passes their tests.  Unless of course you plan to introduce noise in production build, which makes GEOS useless anyway.<br><br><br>It is my understanding that only osm2pgsql (which is dropping GEOS anyway) and osmium which has already dropped GEOS, were the only big projects using the C++ API.  Lets not leave it in as that will just leave the whole open for newer projects to start using it.<br><br><br>As GEOS PSC member I vote +1 for dropping GEOS C++ API.<br><br><br>Thanks,<br>Regina<br><br><br><br><br><br>_______________________________________________<br>geos-devel mailing list<br><a href="mailto:geos-devel@lists.osgeo.org">geos-devel@lists.osgeo.org</a><br><a href="https://lists.osgeo.org/mailman/listinfo/geos-devel" target="_blank">https://lists.osgeo.org/mailman/listinfo/geos-devel</a><o:p></o:p></p></blockquote></div><p class=MsoNormal style='margin-left:.5in'><br><br clear=all><o:p></o:p></p><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><p class=MsoNormal style='margin-left:.5in'>-- <o:p></o:p></p><div><p class=MsoNormal style='margin-left:.5in'>--<o:p></o:p></p><div><p class=MsoNormal style='margin-left:.5in'><a href="http://schwehr.org" target="_blank">http://schwehr.org</a><o:p></o:p></p></div></div></div></div></body></html>