rc3 seems to be in good order from the pkgsrc viewpoint. * a digression about 3.7.3
I updated pkgsrc belatedly from 3.7.1 to 3.7.3 and tests passed on netbsd-8/amd64. There is a C++ ABI break from 3.7.1 to 3.7.3, which was unexpected. Due to libtool adding in dependency libs from the .la file, gdal links to geos-3.7.3.so, even though it ought to just link to geos_c. This is arguably a libtool bug (and perhaps only on pkgsrc, but I think bigger), so this ABI break is notabable, even if there are really zero direct users, and even if the 3.7.3 library has the same ABI as the 3.7.1 library. While I expect ABI breaks across major versions, I don't expect them on micro releases and this surprised me. * report on 3.8.0rc3 With 3.8.0rc3, on netbsd-8/amd64, it built and passed geos's own test suite. a few very minor things, probably not worth the risk of changing other than perhaps adjusting NEWS: There are header files removed from the set of installed files. I don't see these presumed API withdrawals in NEWS. (I am not saying this is wrong, just that I don't understand.) NEWS doesn't mention if there is an ABI break of the C++ API. In pkgsrc, there are no known users of this now. But, libtool adds dependency_libs to the link lines of depending packages, so even things that don't use the C++ API end up linked against the lib (arguably a bug, unknown extent of where this happens), and have to be recompiled, so an API break is noteworthy. I have a stray patch to geos-config.in, to add in @LDFLAGS@ to the --ldflags command. I am really unclear if anyone ever sent it upstream from pkgsrc. Also, there are --libs arguments that also include -Llibdir, which seems wrong. Best to talk about this post release I think -- not new or urgent. I have a stray patch to capi/geos_ts_c.cpp, which uses const char * instead of str in NOTICE_MESSAGE and ERROR_MESSAGE. I am unclear on the origin of this patch, but it claims that non-POD types in variadic functions are UB. Also seems best to defer to post release -- also not new or urgent. Removed header files: include/geos/algorithm/CGAlgorithms.h include/geos/algorithm/CentroidArea.h include/geos/algorithm/CentroidLine.h include/geos/algorithm/CentroidPoint.h include/geos/algorithm/MCPointInRing.h include/geos/algorithm/PointInRing.h include/geos/algorithm/SIRtreePointInRing.h include/geos/algorithm/SimplePointInRing.h include/geos/geom/Lineal.h include/geos/geom/Polygonal.h include/geos/geom/Puntal.h include/geos/noding/SingleInteriorIntersectionFinder.h include/geos/platform.h include/geos/timeval.h ---------------------------------------- $NetBSD: patch-ae,v 1.6 2018/09/11 16:13:29 gdt Exp $ TODO: explain what's in LDFLAGS. TODO: explain why --libs has -L in the first place (vs --ldflags). TODO: report upstream. --- tools/geos-config.in.orig 2018-08-19 10:49:14.000000000 +0000 +++ tools/geos-config.in @@ -58,7 +58,7 @@ case $1 in echo -L${libdir} -lgeos -lm ;; --ldflags) - echo -L${libdir} + echo -L${libdir} @LDFLAGS@ ;; --includes) echo ${prefix}/include ---------------------------------------- $NetBSD: patch-capi_geos__ts__c.cpp,v 1.2 2018/09/11 16:13:29 gdt Exp $ \todo Document this patch. It appears to be that passing non-POD types to variadic functions is UB. \todo File a bug upstream, if appropriate. --- capi/geos_ts_c.cpp.orig 2015-09-08 16:31:02.000000000 +0000 +++ capi/geos_ts_c.cpp @@ -214,7 +214,7 @@ typedef struct GEOSContextHandle_HS } void - NOTICE_MESSAGE(string fmt, ...) + NOTICE_MESSAGE(const char *fmt, ...) { if (NULL == noticeMessageOld && NULL == noticeMessageNew) { return; @@ -222,7 +222,7 @@ typedef struct GEOSContextHandle_HS va_list args; va_start(args, fmt); - int result = vsnprintf(msgBuffer, sizeof(msgBuffer) - 1, fmt.c_str(), args); + int result = vsnprintf(msgBuffer, sizeof(msgBuffer) - 1, fmt, args); va_end(args); if (result > 0) { @@ -235,7 +235,7 @@ typedef struct GEOSContextHandle_HS } void - ERROR_MESSAGE(string fmt, ...) + ERROR_MESSAGE(const char *fmt, ...) { if (NULL == errorMessageOld && NULL == errorMessageNew) { return; @@ -243,7 +243,7 @@ typedef struct GEOSContextHandle_HS va_list args; va_start(args, fmt); - int result = vsnprintf(msgBuffer, sizeof(msgBuffer) - 1, fmt.c_str(), args); + int result = vsnprintf(msgBuffer, sizeof(msgBuffer) - 1, fmt, args); va_end(args); if (result > 0) { ---------------------------------------- _______________________________________________ geos-devel mailing list geos-devel@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/geos-devel