[geos-devel] 3.10.0beta2

Greg Troxel gdt at lexort.com
Sat Oct 2 05:04:57 PDT 2021


Greg Troxel <gdt at lexort.com> writes:

> http://download.osgeo.org/geos/geos-3.10.0beta2.tar.bz2

[This note replaces my briefer and less coherent note from last night.]

I converted my package build to cmake, and it worked better than I
expected, which is great.  I did my build under pkgsrc on NetBSD 9
amd64.

The diff to the main packaging control file is not that interesting to
others, so I'll omit it; it's basically autoconf->cmake, dropping
libtool, and declaring a dependency on pthreads.

The diff of the set of installed files is significant, and I've appended
it.  Mostly I would like someone familiar with the changes to just skim
it and nod "that's all expected".  There are a lot of withdrawn .h files. 

I try to point out anything that I see that one wouldn't expect from
reading NEWS, to sort those into real bugs and NEWS omissions.  I do
think it's good to fix NEWS during this period.

  * NEWS does not mention the withdrawal of autoconf

  * NEWS does not mention that libtool is no longer used and that
    libgeos.la is no longer installed.

  * include/geos.h is no longer installed.  I am guessing that is
    intentional, but it is not mentioned in NEWS.

  * There are several .h files no longer installed.  I am guessing these
    are intended API withdrawals, but NEWS does not say that there are
    any withdrawals.  An example is
    include/geos/operation/overlay/FuzzyPointLocator.h

  * The build finds and uses pthreads.  Before, the build did not link
    to pthread, and my 3.9 libraries are not linked with threads.
    However, I had not declared that the package used threads, and
    pkgsrc's mechanisms for hiding things that aren't declared are
    likely more successful for autoconf than cmake.  In the sources,
    README and INSTALL do not mention threads.  I can't figure out if
    this matters and how, and what the right answer is.

Also, the tests are broken for me.   Running make check fails
completely, and I find in the log:

/tmp/work/geography/geos/work/geos-3.10.0beta2/bin/test_geos_unit: Shared object "libgeos.so.3.10.0" not found

I am running tests from the build directory before I have built a
package  and then replaced the existing 3.9 installation.  So in
/usr/pkg/lib, where the library is expected to be, there is
libgeos.so.3.9.0 and no 3.10.  Looking at the test program:

$ ldd /tmp/work/geography/geos/work/geos-3.10.0beta2/bin/test_geos_unit
/tmp/work/geography/geos/work/geos-3.10.0beta2/bin/test_geos_unit:
        -lgeos_c.1 => /usr/pkg/lib/libgeos_c.so.1
        -lgeos-3.9.1 => /usr/pkg/lib/libgeos-3.9.1.so
        -lstdc++.9 => /usr/lib/libstdc++.so.9
        -lm.0 => /usr/lib/libm.so.0
        -lc.12 => /usr/lib/libc.so.12
        -lgcc_s.1 => /usr/lib/libgcc_s.so.1
        -lgeos.3.10.0 => not found
        -lpthread.1 => /usr/lib/libpthread.so.1

I see it's also finding the wrong libgeos_c, so the root cause is very
likely not arranging a temporary library path for testing built but not
installed code.  autoconf/libtool did this correctly, with a scheme to
link test programs (and anything else) against the built but not
installed library, and then to relink at installation.  There are of
course multiple approaches, but "make check" needs to use the
programs/libs in the build tree, and ignore what's installed.

(I haven't yet installed the package and tried to build postgis against
it.  I'd like to be able to run tests first.)

Perhaps "make check" is the wrong thing to do, but it's what everybody
expects and it lets people who have no idea about the geos test setup be
able to test and get a clean pass or need to look into it.

Greg


Index: PLIST
===================================================================
RCS file: /cvsroot/pkgsrc/geography/geos/PLIST,v
retrieving revision 1.17
diff -u -p -r1.17 PLIST
--- PLIST	3 Jan 2021 01:27:29 -0000	1.17
+++ PLIST	2 Oct 2021 11:32:55 -0000
@@ -1,10 +1,11 @@
 @comment $NetBSD: PLIST,v 1.17 2021/01/03 01:27:29 gdt Exp $
 bin/geos-config
-include/geos.h
+bin/geosop
 include/geos/algorithm/Angle.h
 include/geos/algorithm/Area.h
 include/geos/algorithm/BoundaryNodeRule.h
 include/geos/algorithm/CGAlgorithmsDD.h
+include/geos/algorithm/CGAlgorithmsDD.inl
 include/geos/algorithm/CentralEndpointIntersector.h
 include/geos/algorithm/Centroid.h
 include/geos/algorithm/ConvexHull.h
@@ -17,15 +18,18 @@ include/geos/algorithm/InteriorPointPoin
 include/geos/algorithm/Intersection.h
 include/geos/algorithm/Length.h
 include/geos/algorithm/LineIntersector.h
+include/geos/algorithm/LineIntersector.inl
 include/geos/algorithm/MinimumBoundingCircle.h
 include/geos/algorithm/MinimumDiameter.h
 include/geos/algorithm/NotRepresentableException.h
 include/geos/algorithm/Orientation.h
+include/geos/algorithm/PointInRing.h
 include/geos/algorithm/PointLocation.h
 include/geos/algorithm/PointLocator.h
 include/geos/algorithm/RayCrossingCounter.h
 include/geos/algorithm/RayCrossingCounterDD.h
 include/geos/algorithm/RobustDeterminant.h
+include/geos/algorithm/SimplePointInRing.h
 include/geos/algorithm/construct/LargestEmptyCircle.h
 include/geos/algorithm/construct/MaximumInscribedCircle.h
 include/geos/algorithm/distance/DiscreteFrechetDistance.h
@@ -107,8 +111,10 @@ include/geos/geom/util/GeometryCombiner.
 include/geos/geom/util/GeometryEditor.h
 include/geos/geom/util/GeometryEditorOperation.h
 include/geos/geom/util/GeometryExtracter.h
+include/geos/geom/util/GeometryFixer.h
 include/geos/geom/util/GeometryTransformer.h
 include/geos/geom/util/LinearComponentExtracter.h
+include/geos/geom/util/NoOpGeometryOperation.h
 include/geos/geom/util/PointExtracter.h
 include/geos/geom/util/PolygonExtracter.h
 include/geos/geom/util/ShortCircuitedGeometryVisitor.h
@@ -188,6 +194,10 @@ include/geos/index/strtree/STRtree.h
 include/geos/index/strtree/SimpleSTRdistance.h
 include/geos/index/strtree/SimpleSTRnode.h
 include/geos/index/strtree/SimpleSTRtree.h
+include/geos/index/strtree/TemplateSTRNode.h
+include/geos/index/strtree/TemplateSTRNodePair.h
+include/geos/index/strtree/TemplateSTRtree.h
+include/geos/index/strtree/TemplateSTRtreeDistance.h
 include/geos/index/sweepline/SweepLineEvent.h
 include/geos/index/sweepline/SweepLineIndex.h
 include/geos/index/sweepline/SweepLineInterval.h
@@ -197,6 +207,9 @@ include/geos/io/ByteOrderDataInStream.h
 include/geos/io/ByteOrderDataInStream.inl
 include/geos/io/ByteOrderValues.h
 include/geos/io/CLocalizer.h
+include/geos/io/GeoJSON.h
+include/geos/io/GeoJSONReader.h
+include/geos/io/GeoJSONWriter.h
 include/geos/io/ParseException.h
 include/geos/io/StringTokenizer.h
 include/geos/io/WKBConstants.h
@@ -231,8 +244,10 @@ include/geos/noding/MCIndexNoder.inl
 include/geos/noding/MCIndexSegmentSetMutualIntersector.h
 include/geos/noding/NodableSegmentString.h
 include/geos/noding/NodedSegmentString.h
+include/geos/noding/NodedSegmentString.inl
 include/geos/noding/Noder.h
 include/geos/noding/NodingIntersectionFinder.h
+include/geos/noding/NodingIntersectionFinder.inl
 include/geos/noding/NodingValidator.h
 include/geos/noding/Octant.h
 include/geos/noding/OrientedCoordinateArray.h
@@ -240,6 +255,7 @@ include/geos/noding/ScaledNoder.h
 include/geos/noding/SegmentIntersectionDetector.h
 include/geos/noding/SegmentIntersector.h
 include/geos/noding/SegmentNode.h
+include/geos/noding/SegmentNode.inl
 include/geos/noding/SegmentNodeList.h
 include/geos/noding/SegmentPointComparator.h
 include/geos/noding/SegmentSetMutualIntersector.h
@@ -259,7 +275,6 @@ include/geos/noding/snapround/MCIndexSna
 include/geos/noding/snapround/SnapRoundingIntersectionAdder.h
 include/geos/noding/snapround/SnapRoundingNoder.h
 include/geos/operation/GeometryGraphOperation.h
-include/geos/operation/IsSimpleOp.h
 include/geos/operation/buffer/BufferBuilder.h
 include/geos/operation/buffer/BufferInputLineSimplifier.h
 include/geos/operation/buffer/BufferOp.h
@@ -290,23 +305,24 @@ include/geos/operation/linemerge/LineSeq
 include/geos/operation/overlay/EdgeSetNoder.h
 include/geos/operation/overlay/ElevationMatrix.h
 include/geos/operation/overlay/ElevationMatrixCell.h
-include/geos/operation/overlay/FuzzyPointLocator.h
 include/geos/operation/overlay/LineBuilder.h
 include/geos/operation/overlay/MaximalEdgeRing.h
 include/geos/operation/overlay/MinimalEdgeRing.h
 include/geos/operation/overlay/MinimalEdgeRing.inl
-include/geos/operation/overlay/OffsetPointGenerator.h
 include/geos/operation/overlay/OverlayNodeFactory.h
 include/geos/operation/overlay/OverlayOp.h
-include/geos/operation/overlay/OverlayResultValidator.h
 include/geos/operation/overlay/PointBuilder.h
 include/geos/operation/overlay/PolygonBuilder.h
 include/geos/operation/overlay/snap/GeometrySnapper.h
 include/geos/operation/overlay/snap/LineStringSnapper.h
-include/geos/operation/overlay/snap/SnapIfNeededOverlayOp.h
 include/geos/operation/overlay/snap/SnapOverlayOp.h
+include/geos/operation/overlay/validate/FuzzyPointLocator.h
+include/geos/operation/overlay/validate/OffsetPointGenerator.h
+include/geos/operation/overlay/validate/OverlayResultValidator.h
 include/geos/operation/overlayng/Edge.h
+include/geos/operation/overlayng/Edge.inl
 include/geos/operation/overlayng/EdgeKey.h
+include/geos/operation/overlayng/EdgeKey.inl
 include/geos/operation/overlayng/EdgeMerger.h
 include/geos/operation/overlayng/EdgeNodingBuilder.h
 include/geos/operation/overlayng/EdgeSourceInfo.h
@@ -318,9 +334,11 @@ include/geos/operation/overlayng/LineBui
 include/geos/operation/overlayng/LineLimiter.h
 include/geos/operation/overlayng/MaximalEdgeRing.h
 include/geos/operation/overlayng/OverlayEdge.h
+include/geos/operation/overlayng/OverlayEdge.inl
 include/geos/operation/overlayng/OverlayEdgeRing.h
 include/geos/operation/overlayng/OverlayGraph.h
 include/geos/operation/overlayng/OverlayLabel.h
+include/geos/operation/overlayng/OverlayLabel.inl
 include/geos/operation/overlayng/OverlayLabeller.h
 include/geos/operation/overlayng/OverlayMixedPoints.h
 include/geos/operation/overlayng/OverlayNG.h
@@ -353,23 +371,26 @@ include/geos/operation/relate/RelateNode
 include/geos/operation/relate/RelateOp.h
 include/geos/operation/sharedpaths/SharedPathsOp.h
 include/geos/operation/union/CascadedPolygonUnion.h
-include/geos/operation/union/CascadedUnion.h
 include/geos/operation/union/CoverageUnion.h
-include/geos/operation/union/GeometryListHolder.h
 include/geos/operation/union/OverlapUnion.h
 include/geos/operation/union/PointGeometryUnion.h
 include/geos/operation/union/UnaryUnionOp.h
 include/geos/operation/union/UnionStrategy.h
 include/geos/operation/valid/ConnectedInteriorTester.h
 include/geos/operation/valid/ConsistentAreaTester.h
-include/geos/operation/valid/IndexedNestedShellTester.h
+include/geos/operation/valid/IndexedNestedHoleTester.h
+include/geos/operation/valid/IndexedNestedPolygonTester.h
+include/geos/operation/valid/IsSimpleOp.h
 include/geos/operation/valid/IsValidOp.h
 include/geos/operation/valid/MakeValid.h
-include/geos/operation/valid/QuadtreeNestedRingTester.h
+include/geos/operation/valid/PolygonIntersectionAnalyzer.h
+include/geos/operation/valid/PolygonNode.h
+include/geos/operation/valid/PolygonRing.h
+include/geos/operation/valid/PolygonRingSelfNode.h
+include/geos/operation/valid/PolygonRingTouch.h
+include/geos/operation/valid/PolygonTopologyAnalyzer.h
 include/geos/operation/valid/RepeatedPointRemover.h
 include/geos/operation/valid/RepeatedPointTester.h
-include/geos/operation/valid/SimpleNestedRingTester.h
-include/geos/operation/valid/SweeplineNestedRingTester.h
 include/geos/operation/valid/TopologyValidationError.h
 include/geos/planargraph/DirectedEdge.h
 include/geos/planargraph/DirectedEdgeStar.h
@@ -386,7 +407,9 @@ include/geos/precision/CommonBitsRemover
 include/geos/precision/EnhancedPrecisionOp.h
 include/geos/precision/GeometryPrecisionReducer.h
 include/geos/precision/MinimumClearance.h
+include/geos/precision/PointwisePrecisionReducerTransformer.h
 include/geos/precision/PrecisionReducerCoordinateOperation.h
+include/geos/precision/PrecisionReducerTransformer.h
 include/geos/precision/SimpleGeometryPrecisionReducer.h
 include/geos/profiler.h
 include/geos/shape/fractal/HilbertCode.h
@@ -403,6 +426,12 @@ include/geos/simplify/TopologyPreserving
 include/geos/triangulate/DelaunayTriangulationBuilder.h
 include/geos/triangulate/IncrementalDelaunayTriangulator.h
 include/geos/triangulate/VoronoiDiagramBuilder.h
+include/geos/triangulate/polygon/ConstrainedDelaunayTriangulator.h
+include/geos/triangulate/polygon/PolygonEarClipper.h
+include/geos/triangulate/polygon/PolygonHoleJoiner.h
+include/geos/triangulate/polygon/PolygonTriangulator.h
+include/geos/triangulate/polygon/TriDelaunayImprover.h
+include/geos/triangulate/polygon/VertexSequencePackedRtree.h
 include/geos/triangulate/quadedge/LastFoundQuadEdgeLocator.h
 include/geos/triangulate/quadedge/LocateFailureException.h
 include/geos/triangulate/quadedge/QuadEdge.h
@@ -412,6 +441,10 @@ include/geos/triangulate/quadedge/QuadEd
 include/geos/triangulate/quadedge/TrianglePredicate.h
 include/geos/triangulate/quadedge/TriangleVisitor.h
 include/geos/triangulate/quadedge/Vertex.h
+include/geos/triangulate/tri/Tri.h
+include/geos/triangulate/tri/TriEdge.h
+include/geos/triangulate/tri/TriList.h
+include/geos/triangulate/tri/TriangulationBuilder.h
 include/geos/unload.h
 include/geos/util.h
 include/geos/util/Assert.h
@@ -429,6 +462,13 @@ include/geos/util/UnsupportedOperationEx
 include/geos/util/math.h
 include/geos/version.h
 include/geos_c.h
-lib/libgeos.la
-lib/libgeos_c.la
+lib/cmake/GEOS/geos-config-version.cmake
+lib/cmake/GEOS/geos-config.cmake
+lib/cmake/GEOS/geos-targets-release.cmake
+lib/cmake/GEOS/geos-targets.cmake
+lib/libgeos.so
+lib/libgeos.so.3.10.0
+lib/libgeos_c.so
+lib/libgeos_c.so.1
+lib/libgeos_c.so.1.16.0
 lib/pkgconfig/geos.pc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 194 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/geos-devel/attachments/20211002/4d5709b5/attachment.sig>


More information about the geos-devel mailing list