This is an automated email from the git hooks/post-receive script. sebastic pushed a commit to branch experimental in repository proj.
commit 6c397e86f71754ebef5e35ffd32d3d8900815388 Author: Bas Couwenberg <sebas...@xs4all.nl> Date: Sat Feb 10 11:12:52 2018 +0100 Add patch to avoid XY, LP and UV datatype clashes with other libraries. See: #889922 & #889926 --- debian/changelog | 2 + ...-and-UV-datatype-clashes-with-other-libra.patch | 135 +++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 138 insertions(+) diff --git a/debian/changelog b/debian/changelog index b9f7fc3..555bc92 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,8 @@ proj (5.0.0~rc2-1~exp3) UNRELEASED; urgency=medium * Ignore test failures on problematic architectures only. + * Add patch to avoid XY, LP and UV datatype clashes with other libraries. + See: #889922 & #889926 -- Bas Couwenberg <sebas...@debian.org> Fri, 09 Feb 2018 14:40:43 +0100 diff --git a/debian/patches/0001-Avoid-XY-LP-and-UV-datatype-clashes-with-other-libra.patch b/debian/patches/0001-Avoid-XY-LP-and-UV-datatype-clashes-with-other-libra.patch new file mode 100644 index 0000000..55f613c --- /dev/null +++ b/debian/patches/0001-Avoid-XY-LP-and-UV-datatype-clashes-with-other-libra.patch @@ -0,0 +1,135 @@ +Description: Avoid XY, LP and UV datatype clashes with other libraries. + Remove unnecessary definitions of UV and UVW from project.h that collides with + external libraries. To prevent similar problems in the future the + datatypes XY, LP, UV, XYZ, LPZ and UVW has been prefixed by PJ_ in + proj.h and proj_internal.h +Author: Kristian Evers <kristianev...@gmail.com> +Origin: https://github.com/OSGeo/proj.4/commit/9c75d794177276189d0a2809bc462291e1a070d3 + +--- a/src/proj.h ++++ b/src/proj.h +@@ -212,13 +212,13 @@ typedef struct { double o, p, k; } + typedef struct { double e, n, u; } PJ_ENU; /* East, North, Up */ + + /* Classic proj.4 pair/triplet types */ +-typedef struct { double u, v; } UV; +-typedef struct { double x, y; } XY; +-typedef struct { double lam, phi; } LP; +- +-typedef struct { double x, y, z; } XYZ; +-typedef struct { double u, v, w; } UVW; +-typedef struct { double lam, phi, z; } LPZ; ++typedef struct { double u, v; } PJ_UV; ++typedef struct { double x, y; } PJ_XY; ++typedef struct { double lam, phi; } PJ_LP; ++ ++typedef struct { double x, y, z; } PJ_XYZ; ++typedef struct { double u, v, w; } PJ_UVW; ++typedef struct { double lam, phi, z; } PJ_LPZ; + + + /* Avoid preprocessor renaming and implicit type-punning: Use a union to make it explicit */ +@@ -229,12 +229,12 @@ union PJ_COORD { + PJ_LPZT lpzt; + PJ_OPK opk; + PJ_ENU enu; +- XYZ xyz; +- UVW uvw; +- LPZ lpz; +- XY xy; +- UV uv; +- LP lp; ++ PJ_XYZ xyz; ++ PJ_UVW uvw; ++ PJ_LPZ lpz; ++ PJ_XY xy; ++ PJ_UV uv; ++ PJ_LP lp; + }; + + +@@ -263,8 +263,8 @@ struct PJ_GRID_INFO { + char gridname[32]; /* name of grid */ + char filename[260]; /* full path to grid */ + char format[8]; /* file format of grid */ +- LP lowerleft; /* Coordinates of lower left corner */ +- LP upperright; /* Coordinates of upper right corner */ ++ PJ_LP lowerleft; /* Coordinates of lower left corner */ ++ PJ_LP upperright; /* Coordinates of upper right corner */ + int n_lon, n_lat; /* Grid size */ + double cs_lon, cs_lat; /* Cell size of grid */ + }; +@@ -336,16 +336,16 @@ PJ_COORD proj_coord (double x, double y, + double proj_roundtrip (PJ *P, PJ_DIRECTION direction, int n, PJ_COORD *coo); + + /* Geodesic distance between two points with angular 2D coordinates */ +-double proj_lp_dist (const PJ *P, LP a, LP b); ++double proj_lp_dist (const PJ *P, PJ_LP a, PJ_LP b); + + /* The geodesic distance AND the vertical offset */ +-double proj_lpz_dist (const PJ *P, LPZ a, LPZ b); ++double proj_lpz_dist (const PJ *P, PJ_LPZ a, PJ_LPZ b); + + /* Euclidean distance between two points with linear 2D coordinates */ +-double proj_xy_dist (XY a, XY b); ++double proj_xy_dist (PJ_XY a, PJ_XY b); + + /* Euclidean distance between two points with linear 3D coordinates */ +-double proj_xyz_dist (XYZ a, XYZ b); ++double proj_xyz_dist (PJ_XYZ a, PJ_XYZ b); + + + /* Set or read error level */ +@@ -355,7 +355,7 @@ int proj_errno_reset (const PJ *P); + int proj_errno_restore (const PJ *P, int err); + + /* Scaling and angular distortion factors */ +-PJ_FACTORS proj_factors(PJ *P, LP lp); ++PJ_FACTORS proj_factors(PJ *P, PJ_LP lp); + + /* Info functions - get information about various PROJ.4 entities */ + PJ_INFO proj_info(void); +--- a/src/proj_internal.h ++++ b/src/proj_internal.h +@@ -91,9 +91,9 @@ PJ_COORD pj_approx_3D_trans (PJ *P, PJ_D + /* Grid functionality */ + int proj_vgrid_init(PJ *P, const char *grids); + int proj_hgrid_init(PJ *P, const char *grids); +-double proj_vgrid_value(PJ *P, LP lp); +-LP proj_hgrid_value(PJ *P, LP lp); +-LP proj_hgrid_apply(PJ *P, LP lp, PJ_DIRECTION direction); ++double proj_vgrid_value(PJ *P, PJ_LP lp); ++PJ_LP proj_hgrid_value(PJ *P, PJ_LP lp); ++PJ_LP proj_hgrid_apply(PJ *P, PJ_LP lp, PJ_DIRECTION direction); + + /* High level functionality for handling thread contexts */ + enum proj_log_level { +--- a/src/projects.h ++++ b/src/projects.h +@@ -157,10 +157,6 @@ typedef struct { double u, v, w; } projU + #define XYZ projUVW + #define LPZ projUVW + +-/* Yes, this is ridiculous, but a consequence of an old and bad decision about implicit type-punning through preprocessor abuse */ +-typedef struct { double u, v; } UV; +-typedef struct { double u, v, w; } UVW; +- + #else + typedef struct { double x, y; } XY; + typedef struct { double x, y, z; } XYZ; +@@ -169,6 +165,15 @@ typedef struct { double lam, phi, z; } L + typedef struct { double u, v; } UV; + typedef struct { double u, v, w; } UVW; + #endif /* ndef PJ_LIB__ */ ++ ++#else ++typedef PJ_XY XY; ++typedef PJ_LP LP; ++typedef PJ_UV UV; ++typedef PJ_XYZ XYZ; ++typedef PJ_LPZ LPZ; ++typedef PJ_UVW UVW; ++ + #endif /* ndef PROJ_H */ + + diff --git a/debian/patches/series b/debian/patches/series index 7a8abdb..2dc5fe8 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,2 +1,3 @@ manpage-section.patch avoid-numerical-differences-on-non-amd64-architectures.patch +0001-Avoid-XY-LP-and-UV-datatype-clashes-with-other-libra.patch -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/proj.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