This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch master
in repository postgis.

commit a24ebb9ab8ef52f8527487e126fec4294050f830
Author: Bas Couwenberg <sebas...@xs4all.nl>
Date:   Sat Feb 17 12:07:17 2018 +0100

    Add patch to fix FTBFS with proj 5.0.0. (closes: #889981)
---
 debian/changelog                                   |  2 +
 debian/patches/series                              |  1 +
 ..._transform-Reset-pj_errno-after-any-error.patch | 52 ++++++++++++++++++++++
 3 files changed, 55 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 9ba16da..812af60 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
 postgis (2.4.3+dfsg-3) UNRELEASED; urgency=medium
 
   * Fix deprecated source override location.
+  * Add patch to fix FTBFS with proj 5.0.0.
+    (closes: #889981)
 
  -- Bas Couwenberg <sebas...@debian.org>  Sat, 10 Feb 2018 11:48:30 +0100
 
diff --git a/debian/patches/series b/debian/patches/series
index 274d7af..b204be1 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
 link-liblwgeom
 relax-test-timing-constraints.patch
 autotools-pkg-config-macro-not-cross-compilation-safe.patch
+svn-r16382-pj_transform-Reset-pj_errno-after-any-error.patch
diff --git 
a/debian/patches/svn-r16382-pj_transform-Reset-pj_errno-after-any-error.patch 
b/debian/patches/svn-r16382-pj_transform-Reset-pj_errno-after-any-error.patch
new file mode 100644
index 0000000..267c118
--- /dev/null
+++ 
b/debian/patches/svn-r16382-pj_transform-Reset-pj_errno-after-any-error.patch
@@ -0,0 +1,52 @@
+Description: pj_transform: Reset pj_errno after any error.
+Author: Raúl Marín Rodríguez
+Origin: https://trac.osgeo.org/postgis/changeset/16382
+Bug: https://trac.osgeo.org/postgis/ticket/4016
+Bug-Debian: https://bugs.debian.org/889981
+
+--- a/liblwgeom/lwgeom_transform.c
++++ b/liblwgeom/lwgeom_transform.c
+@@ -130,7 +130,7 @@ lwgeom_transform(LWGEOM *geom, projPJ in
+ int
+ point4d_transform(POINT4D *pt, projPJ srcpj, projPJ dstpj)
+ {
+-      int* pj_errno_ref;
++
+       POINT4D orig_pt;
+ 
+       /* Make a copy of the input point so we can report the original should 
an error occur */
+@@ -142,25 +142,25 @@ point4d_transform(POINT4D *pt, projPJ sr
+ 
+       LWDEBUGF(4, "transforming POINT(%f %f) from '%s' to '%s'", orig_pt.x, 
orig_pt.y, pj_get_def(srcpj,0), pj_get_def(dstpj,0));
+ 
+-      /* Perform the transform */
+-      pj_transform(srcpj, dstpj, 1, 0, &(pt->x), &(pt->y), &(pt->z));
++      if (pj_transform(srcpj, dstpj, 1, 0, &(pt->x), &(pt->y), &(pt->z)) != 0)
++      {
++              int* pj_errno_ref = pj_get_errno_ref();
++              int pj_errno_val = *pj_errno_ref;
+ 
+-      /* For NAD grid-shift errors, display an error message with an 
additional hint */
+-      pj_errno_ref = pj_get_errno_ref();
++              /* Force a reset of pj_errno to avoid future errors */
++              *pj_errno_ref = 0;
+ 
+-      if (*pj_errno_ref != 0)
+-      {
+-              if (*pj_errno_ref == -38)
++              if (pj_errno_val == -38)
+               {
+                       lwnotice("PostGIS was unable to transform the point 
because either no grid shift files were found, or the point does not lie within 
the range for which the grid shift is defined. Refer to the ST_Transform() 
section of the PostGIS manual for details on how to configure PostGIS to alter 
this behaviour.");
+                       lwerror("transform: couldn't project point (%g %g %g): 
%s (%d)",
+-                              orig_pt.x, orig_pt.y, orig_pt.z, 
pj_strerrno(*pj_errno_ref), *pj_errno_ref);
++                              orig_pt.x, orig_pt.y, orig_pt.z, 
pj_strerrno(pj_errno_val), pj_errno_val);
+                       return 0;
+               }
+               else
+               {
+                       lwerror("transform: couldn't project point (%g %g %g): 
%s (%d)",
+-                              orig_pt.x, orig_pt.y, orig_pt.z, 
pj_strerrno(*pj_errno_ref), *pj_errno_ref);
++                              orig_pt.x, orig_pt.y, orig_pt.z, 
pj_strerrno(pj_errno_val), pj_errno_val);
+                       return 0;
+               }
+       }

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-grass/postgis.git

_______________________________________________
Pkg-grass-devel mailing list
Pkg-grass-devel@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel

Reply via email to