[Git][debian-gis-team/postgis][experimental] 2 commits: Add upstream patch to possibly fix FTBFS on i386.

Bas Couwenberg (@sebastic) gitlab at salsa.debian.org
Thu Sep 23 05:16:23 BST 2021



Bas Couwenberg pushed to branch experimental at Debian GIS Project / postgis


Commits:
b38a6d75 by Bas Couwenberg at 2021-09-23T05:54:57+02:00
Add upstream patch to possibly fix FTBFS on i386.

- - - - -
b2ad8987 by Bas Couwenberg at 2021-09-23T05:55:19+02:00
Set distribution to experimental.

- - - - -


3 changed files:

- debian/changelog
- + debian/patches/mr58.patch
- debian/patches/series


Changes:

=====================================
debian/changelog
=====================================
@@ -1,9 +1,10 @@
-postgis (3.2.0~alpha1+dfsg-1~exp2) UNRELEASED; urgency=medium
+postgis (3.2.0~alpha1+dfsg-1~exp2) experimental; urgency=medium
 
   * Bump debhelper compat to 12, changes:
     - Drop --list-missing from dh_install
+  * Add upstream patch to possibly fix FTBFS on i386.
 
- -- Bas Couwenberg <sebastic at debian.org>  Mon, 13 Sep 2021 17:47:10 +0200
+ -- Bas Couwenberg <sebastic at debian.org>  Thu, 23 Sep 2021 05:54:59 +0200
 
 postgis (3.2.0~alpha1+dfsg-1~exp1) experimental; urgency=medium
 


=====================================
debian/patches/mr58.patch
=====================================
@@ -0,0 +1,94 @@
+Description: Avoid unaligned reads of points from in-memory created LWGEOM
+Author: Sandro Santilli <strk at kbt.io>
+Origin: https://gitlab.com/postgis/postgis/-/merge_requests/58
+Bug: https://trac.osgeo.org/postgis/ticket/4990
+
+--- a/liblwgeom/lwgeom_topo.c
++++ b/liblwgeom/lwgeom_topo.c
+@@ -7058,7 +7058,7 @@ lwt_GetFaceContainingPoint(LWT_TOPOLOGY*
+   LWT_ISO_EDGE* edges;
+   uint64_t numedges, i;
+   LWGEOM *shortestLine;
+-  const POINT2D *shortestLineP0, *shortestLineP1;
++  POINT2D shortestLineP0, shortestLineP1;
+   int closestSegmentIndex;
+   int closestSegmentSide;
+   const POINT2D *closestSegmentP0, *closestSegmentP1;
+@@ -7176,12 +7176,12 @@ lwt_GetFaceContainingPoint(LWT_TOPOLOGY*
+     /* Closest point is a node, but query point is NOT on the node */
+ 
+     /* let's do azimuth computation */
+-    shortestLineP0 = getPoint2d_cp(((LWLINE *)shortestLine)->points, 0);
+-    shortestLineP1 = getPoint2d_cp(((LWLINE *)shortestLine)->points, 1);
+-    if ( ! azimuth_pt_pt(shortestLineP0, shortestLineP1, &shortestLineAzimuth) ) {
++    getPoint2d_p(((LWLINE *)shortestLine)->points, 0, &shortestLineP0);
++    getPoint2d_p(((LWLINE *)shortestLine)->points, 1, &shortestLineP1);
++    if ( ! azimuth_pt_pt(&shortestLineP0, &shortestLineP1, &shortestLineAzimuth) ) {
+       lwerror("error computing azimuth of shortestLine [%.15g %.15g,%.15g %.15g]",
+-              shortestLineP0->x, shortestLineP0->y,
+-              shortestLineP1->x, shortestLineP1->y);
++              shortestLineP0.x, shortestLineP0.y,
++              shortestLineP1.x, shortestLineP1.y);
+       lwgeom_free(shortestLine);
+       _lwt_release_edges(closestEdge, 1);
+       return -1;
+@@ -7231,8 +7231,8 @@ lwt_GetFaceContainingPoint(LWT_TOPOLOGY*
+   /* find closest segment on closestEdge and use lw_segment_side
+    * to determine on which side our query point falls */
+ 
+-  shortestLineP1 = getPoint2d_cp(((LWLINE *)shortestLine)->points, 1);
+-  closestSegmentIndex = ptarray_closest_segment_2d(closestEdge->geom->points, shortestLineP1, NULL);
++  getPoint2d_p(((LWLINE *)shortestLine)->points, 1, &shortestLineP1);
++  closestSegmentIndex = ptarray_closest_segment_2d(closestEdge->geom->points, &shortestLineP1, NULL);
+   LWDEBUGF(1, "Closest segment to edge %d is %d", closestEdge->edge_id, closestSegmentIndex);
+   closestSegmentP0 = getPoint2d_cp(closestEdge->geom->points, closestSegmentIndex);
+   closestSegmentP1 = getPoint2d_cp(closestEdge->geom->points, closestSegmentIndex + 1);
+@@ -7245,8 +7245,8 @@ lwt_GetFaceContainingPoint(LWT_TOPOLOGY*
+   );
+ 
+   /* Find on which side of the segment the query point lays */
+-  shortestLineP0 = getPoint2d_cp(((LWLINE *)shortestLine)->points, 0);
+-  if ( p2d_same(shortestLineP0, closestSegmentP0) )
++  getPoint2d_p(((LWLINE *)shortestLine)->points, 0, &shortestLineP0);
++  if ( p2d_same(&shortestLineP0, closestSegmentP0) )
+   {
+     /* Closest point is first point of closest segment (this should
+      * never happen as we'd have returned the previous segment in
+@@ -7260,7 +7260,7 @@ lwt_GetFaceContainingPoint(LWT_TOPOLOGY*
+     _lwt_release_edges(closestEdge, 1);
+     return -1;
+   }
+-  else if ( p2d_same(shortestLineP0, closestSegmentP1) )
++  else if ( p2d_same(&shortestLineP0, closestSegmentP1) )
+   {
+     /* Closest point is last point of the closest segment,
+      * so we need to check if rotating the closest segment
+@@ -7297,10 +7297,10 @@ lwt_GetFaceContainingPoint(LWT_TOPOLOGY*
+       _lwt_release_edges(closestEdge, 1);
+       return -1;
+     }
+-    if ( ! azimuth_pt_pt(shortestLineP0, shortestLineP1, &azSL) ) {
++    if ( ! azimuth_pt_pt(&shortestLineP0, &shortestLineP1, &azSL) ) {
+       lwerror("error computing azimuth of shortestLine [%.15g %.15g,%.15g %.15g]",
+-              shortestLineP0->x, shortestLineP0->y,
+-              shortestLineP1->x, shortestLineP1->y);
++              shortestLineP0.x, shortestLineP0.y,
++              shortestLineP1.x, shortestLineP1.y);
+       lwgeom_free(shortestLine);
+       _lwt_release_edges(closestEdge, 1);
+       return -1;
+@@ -7338,11 +7338,11 @@ lwt_GetFaceContainingPoint(LWT_TOPOLOGY*
+       closestSegmentP0->y,
+       closestSegmentP1->x,
+       closestSegmentP1->y,
+-      shortestLineP1->x,
+-      shortestLineP1->y
++      shortestLineP1.x,
++      shortestLineP1.y
+     );
+ 
+-    closestSegmentSide = lw_segment_side(closestSegmentP0, closestSegmentP1, shortestLineP1);
++    closestSegmentSide = lw_segment_side(closestSegmentP0, closestSegmentP1, &shortestLineP1);
+     LWDEBUGF(1, "Side of closest segment query point falls on: %d", closestSegmentSide);
+ 
+     if ( closestSegmentSide == -1 ) /* left */


=====================================
debian/patches/series
=====================================
@@ -1,3 +1,4 @@
 relax-test-timing-constraints.patch
 chaikin
 incorrect-path-for-interpreter.patch
+mr58.patch



View it on GitLab: https://salsa.debian.org/debian-gis-team/postgis/-/compare/45e082e91d842e71b51f46bbf9bbad73817fc922...b2ad898717afde067ca9c001f0dbb9d20b50e680

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/postgis/-/compare/45e082e91d842e71b51f46bbf9bbad73817fc922...b2ad898717afde067ca9c001f0dbb9d20b50e680
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20210923/6df332d7/attachment-0001.htm>


More information about the Pkg-grass-devel mailing list