[geos-devel] RFC6 - Discourage use of C++ API by requiring a configure switch to install the c++ headers and SDK

Kurt Schwehr schwehr at gmail.com
Wed Oct 4 09:07:09 PDT 2017


> It is not the library's responsibility to provide personal protective
equipment.
> C++ users know the deal and accept that bargain when they use APIs

With my packagers hat on... just offering a data point about what exists
that many folks might not know about.

If we can add a flag to the build configuration to keep the C++ install,
then life will continue as normal for users of fink.  I'll leave the
evaluation of the quality of the solution to others, but it has kept fink
packaging going with GEOS.

BABA and I have been packaging GEOS for fink on the mac for a long time
now.  We have created a tree that has separate contained areas for each
release of geos.  Only one -dev package can be installed at a time and and
subtree depending on geos must stick to the same version of geos.  Those
building their own stuff against geos can go it alone with an older version
of geos.  We don't even expose anything in the global
/sw/{bin,lib,include}.  headers, libs, and geos-config are down in the
version directory so that people have to buy into it.

I've not done the same with GDAL.  You buy into one version of GDAL and
that what you are forced to.  ABI problems in external code using GDAL from
fink?  My only response is: recompile and fix anything that doesn't match
the current API.

fink list libgeos
Information about 11072 packages read in 1 seconds.
     libgeos3.3.0                              3.3.0-1
    Geometry Engine - Open Source
     libgeos3.3.0-shlibs                       3.3.0-1
    Geometry Engine - Open Source
     libgeos3.3.1                              3.3.1-1
    Geometry Engine - Open Source
     libgeos3.3.1-shlibs                       3.3.1-1
    Geometry Engine - Open Source
     libgeos3.3.3                              3.3.3-1
    Geometry Engine - Open Source
     libgeos3.3.3-shlibs                       3.3.3-1
    Geometry Engine - Open Source
     libgeos3.3.6                              3.3.6-1
    Geometry Engine - Open Source
     libgeos3.3.6-shlibs                       3.3.6-1
    Geometry Engine - Open Source
     libgeos3.3.8                              3.3.8-1
    Geometry Engine - Open Source
     libgeos3.3.8-shlibs                       3.3.8-1
    Geometry Engine - Open Source
     libgeos3.4.2                              3.4.2-1
    Geometry Engine - Open Source
     libgeos3.4.2-shlibs                       3.4.2-1
    Geometry Engine - Open Source
 i   libgeos3.5.0                              3.5.0-2
    Geometry Engine - Open Source
 i   libgeos3.5.0-shlibs                       3.5.0-2
    Geometry Engine - Open Source
 i   libgeos3.6.1                              3.6.1-1
    Geometry Engine - Open Source
 i   libgeos3.6.1-shlibs                       3.6.1-1
    Geometry Engine - Open Source

dpkg -L libgeos3.6.1-shlibs | egrep '[.](dylib|a)'
/sw/opt/libgeos3.6.1/lib/libgeos-3.6.1.dylib
/sw/opt/libgeos3.6.1/lib/libgeos_c.1.dylib

dpkg -L libgeos3.6.1 | egrep '[.](dylib|a)'
/sw/opt/libgeos3.6.1/lib/libgeos.a
/sw/opt/libgeos3.6.1/lib/libgeos_c.a
/sw/opt/libgeos3.6.1/lib/libgeos.dylib
/sw/opt/libgeos3.6.1/lib/libgeos_c.dylib

On Wed, Oct 4, 2017 at 8:19 AM, Howard Butler <howard at hobu.co> wrote:

>
> On Oct 4, 2017, at 12:08 AM, Regina Obe <lr at pcorp.us> wrote:
>
> According to RFC1 – it says the motion can not pass
> https://trac.osgeo.org/geos/wiki/RFC1  with a -1 and I have to give Hobu
> a chance to debate his point J
>
> *"Respondents may vote "-1" to veto a proposal, but must provide clear
> reasoning and alternate approaches to resolving the problem within the two
> days."*
>
> So I'd like to hear Hobu's alternative suggestions.
>
>
> Sandro's suggestion to require users to #define an obnoxious
> acknowledgement to use the C++ API, with the expectation that it continues
> to be installed by default for any and all to continue, is a reasonable
> compromise to me.
>
> I'll back down my -1 to -0 if the RFC is modified to reflect that scenario.
>
> Thanks for picking up this issue, and your persistence and pragmatism, and
> the way you strived to listen to concerns and reach a consensus. Frankly
> from reading all the threads in one sitting, Mateusz and Howard didn't
> approach it similarly which is disappointing.
>
>
> My pragmatism is we don't get to change the rules after we've put things
> out there and people now might depend upon us. The C++ API for GEOS
> *pre-dates* the C API. The GEOS C API was a response to the recognition
> that some API insulation (along with a FFI-friendly interface) would be
> useful.
>
> It is not the library's responsibility to provide personal protective
> equipment. C++ users know the deal and accept that bargain when they use
> APIs. My note about GDAL in the previous email was to acknowledge that this
> same suggestion, to remove the C++ API, could not even be seriously
> considered there because there is so much public use of that API. There's
> even more *private* use that people probably don't know about. The same
> could be said for GEOS.
>
> Packaging systems need to make decisions about moving forward with base
> versions of foundational libraries like GDAL and GEOS with acknowledgement
> that doing so may cause some laggards to be dropped. The packagers can't
> write software to update the laggards, and the libraries need the freedom
> to innovate. Attention is life, as Paul said.
>
> Howard
>
>
>
> _______________________________________________
> geos-devel mailing list
> geos-devel at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/geos-devel
>



-- 
--
http://schwehr.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/geos-devel/attachments/20171004/e5fcd286/attachment-0001.html>


More information about the geos-devel mailing list