Control: tags -1 patch On 1/2/21 9:42 AM, Sebastiaan Couwenberg wrote: > On 1/2/21 6:54 AM, Bas Couwenberg wrote: >> The autopkgtest of your package fail with PROJ 7.2.1: >> >> Error: isTRUE(all.equal(a, matrix(c(-5.917698, -1.87195), ncol = 2), .... >> is not TRUE >> Execution halted >> autopkgtest [23:01:36]: test run-unit-test: -----------------------] >> autopkgtest [23:01:36]: test run-unit-test: - - - - - - - - - - results - >> - - - - - - - - - >> run-unit-test FAIL non-zero exit status 1 >> >> https://ci.debian.net/data/autopkgtest/testing/amd64/r/r-cran-rgdal/9312472/log.gz >> >> This appears to be an issue with how upstream uses PROJ incorrectly, >> as discussed on the PROJ list: >> >> https://lists.osgeo.org/pipermail/proj/2020-December/010014.html >> >> Upstream doesn't appear to have a public VCS, so it's unclear if the fix >> posted on the PROJ list can be easily turned into a patch for the Debian >> package. > > Further investigation shows PROJ 7.2.1 related commits at: > > https://github.com/r-forge/rgdal/commits/master
This issue is fixed when added the relevant upstream patches, as per the attached debdiff. Kind Regards, Bas -- GPG Key ID: 4096R/6750F10AE88D4AF1 Fingerprint: 8182 DE41 7056 408D 6146 50D1 6750 F10A E88D 4AF1
diff -Nru r-cran-rgdal-1.5-18+dfsg/debian/changelog r-cran-rgdal-1.5-18+dfsg/debian/changelog --- r-cran-rgdal-1.5-18+dfsg/debian/changelog 2020-10-15 16:39:00.000000000 +0200 +++ r-cran-rgdal-1.5-18+dfsg/debian/changelog 2021-01-04 07:32:27.000000000 +0100 @@ -1,3 +1,11 @@ +r-cran-rgdal (1.5-18+dfsg-1.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Add upstream patches for PROJ 7.2.1 compatibility. + (closes: #979026) + + -- Bas Couwenberg <sebas...@debian.org> Mon, 04 Jan 2021 07:32:27 +0100 + r-cran-rgdal (1.5-18+dfsg-1) unstable; urgency=medium * New upstream version diff -Nru r-cran-rgdal-1.5-18+dfsg/debian/patches/series r-cran-rgdal-1.5-18+dfsg/debian/patches/series --- r-cran-rgdal-1.5-18+dfsg/debian/patches/series 1970-01-01 01:00:00.000000000 +0100 +++ r-cran-rgdal-1.5-18+dfsg/debian/patches/series 2021-01-04 07:32:06.000000000 +0100 @@ -0,0 +1,4 @@ +svn-r1086.patch +svn-r1087.patch +svn-r1088.patch +svn-r1089.patch diff -Nru r-cran-rgdal-1.5-18+dfsg/debian/patches/svn-r1086.patch r-cran-rgdal-1.5-18+dfsg/debian/patches/svn-r1086.patch --- r-cran-rgdal-1.5-18+dfsg/debian/patches/svn-r1086.patch 1970-01-01 01:00:00.000000000 +0100 +++ r-cran-rgdal-1.5-18+dfsg/debian/patches/svn-r1086.patch 2021-01-04 07:32:08.000000000 +0100 @@ -0,0 +1,195 @@ +From 9312ef56d9158f5e3a520c733e7b7a9049e41a89 Mon Sep 17 00:00:00 2001 +From: rsbivand <rsbivand@edb9625f-4e0d-4859-8d74-9fd3b1da38cb> +Date: Tue, 29 Dec 2020 14:58:22 +0000 +Subject: [PATCH] adapt ob_tran for PROJ > 7.2.0 + +git-svn-id: svn://svn.r-forge.r-project.org/svnroot/rgdal@1086 edb9625f-4e0d-4859-8d74-9fd3b1da38cb + +--- a/DESCRIPTION ++++ b/DESCRIPTION +@@ -1,7 +1,7 @@ + Package: rgdal + Title: Bindings for the 'Geospatial' Data Abstraction Library + Version: 1.5-18 +-Date: 2020-10-08 ++Date: 2020-12-29 + Depends: R (>= 3.5.0), methods, sp (>= 1.1-0) + Imports: grDevices, graphics, stats, utils + LinkingTo: sp +--- a/R/project.R ++++ b/R/project.R +@@ -249,7 +249,7 @@ OSRIsProjected <- function(obj) { + } + } + coordOp <- .Call("project_ng_coordOp", proj, +- as.logical(inv), aoi, PACKAGE="rgdal") ++ as.logical(inv), aoi, as.logical(use_ob_tran), PACKAGE="rgdal") + } + if (verbose) cat(strwrap(coordOp), sep="\n") + res <- .Call("project_ng", +@@ -442,7 +442,7 @@ if (!isGeneric("spTransform")) + else use_ob_tran1 <- TRUE + if (is.null(coordOp)) { + out_coordOp <- .Call("project_ng_coordOp", proj, +- as.logical(inv), NULL, #as.logical(use_ob_tran1), ++ as.logical(inv), NULL, as.logical(use_ob_tran1), + PACKAGE="rgdal") + } + res <- .Call("project_ng", as.integer(n), +@@ -484,7 +484,7 @@ if (!isGeneric("spTransform")) + else use_ob_tran1 <- TRUE + if (is.null(coordOp)) { + out_coordOp <- .Call("project_ng_coordOp", proj, +- as.logical(inv), NULL, #as.logical(use_ob_tran1), ++ as.logical(inv), NULL, as.logical(use_ob_tran1), + PACKAGE="rgdal") + } + res <- .Call("project_ng", as.integer(n), +@@ -577,7 +577,7 @@ setMethod("spTransform", signature("Spat + else use_ob_tran1 <- TRUE + if (is.null(coordOp)) { + coordOp <- .Call("project_ng_coordOp", proj, +- as.logical(inv), NULL, #as.logical(use_ob_tran1), ++ as.logical(inv), NULL, as.logical(use_ob_tran1), + PACKAGE="rgdal") + } + res <- .Call("project_ng", as.integer(n), +@@ -790,7 +790,7 @@ setMethod("spTransform", signature("Spat + else use_ob_tran1 <- TRUE + if (is.null(coordOp)) { + coordOp <- .Call("project_ng_coordOp", proj, +- as.logical(inv), NULL, #as.logical(use_ob_tran1), ++ as.logical(inv), NULL, as.logical(use_ob_tran1), + PACKAGE="rgdal") + } + res <- .Call("project_ng", as.integer(n), +--- a/src/init.c ++++ b/src/init.c +@@ -80,7 +80,7 @@ static R_CallMethodDef CallEntries[] = { + {"RGDAL_project", (DL_FUNC) &RGDAL_project, 5}, + {"project_inv", (DL_FUNC) &project_inv, 5}, + {"project_ng", (DL_FUNC) &project_ng, 7}, +- {"project_ng_coordOp", (DL_FUNC) &project_ng_coordOp, 3}, ++ {"project_ng_coordOp", (DL_FUNC) &project_ng_coordOp, 4}, + {"CRS_compare", (DL_FUNC) &CRS_compare, 4}, + {"proj_network_enabled", (DL_FUNC) &proj_network_enabled, 0}, + {"enable_proj_network", (DL_FUNC) &enable_proj_network, 0}, +--- a/src/proj6.cpp ++++ b/src/proj6.cpp +@@ -495,7 +495,7 @@ SEXP CRS_compare(SEXP fromargs, SEXP toa + error("source crs creation failed: %s", errstr); + } + +-//Rprintf("source crs: %s\n", proj_pj_info(source_crs).description); not filled for WKT ++//Rprintf("source crs: %s\n", proj_as_proj_string(PJ_DEFAULT_CTX, source_crs, PJ_PROJ_5, NULL)); not filled for WKT + //Rprintf("target crs input: %s\n", CHAR(STRING_ELT(toargs, 0))); + if ((target_crs = proj_create(PJ_DEFAULT_CTX, CHAR(STRING_ELT(toargs, 0)))) == NULL) { + proj_destroy(source_crs); +@@ -503,7 +503,7 @@ SEXP CRS_compare(SEXP fromargs, SEXP toa + //proj_context_destroy(ctx); + error("target crs creation failed: %s", errstr); + } +-//Rprintf("target crs: %s\n", proj_pj_info(target_crs).description); not filled for WKT ++//Rprintf("target crs: %s\n", proj_as_proj_string(PJ_DEFAULT_CTX, target_crs, PJ_PROJ_5, NULL)); not filled for WKT + #if PROJ_VERSION_MAJOR == 6 && PROJ_VERSION_MINOR < 3 + ires_strict = proj_is_equivalent_to(source_crs, target_crs, + PJ_COMP_STRICT); +@@ -587,7 +587,7 @@ SEXP transform_ng(SEXP fromargs, SEXP to + error("source crs creation failed: %s", errstr); + } + +-//Rprintf("source crs: %s\n", proj_pj_info(source_crs).description); ++//Rprintf("source crs: %s\n", proj_as_proj_string(PJ_DEFAULT_CTX, source_crs, PJ_PROJ_5, NULL)); + //Rprintf("target crs input: %s\n", CHAR(STRING_ELT(toargs, 0))); + if ((target_crs = proj_create(PJ_DEFAULT_CTX, CHAR(STRING_ELT(toargs, 0)))) == NULL) { + proj_area_destroy(area_of_interest); +@@ -596,7 +596,7 @@ SEXP transform_ng(SEXP fromargs, SEXP to + //proj_context_destroy(ctx); + error("target crs creation failed: %s", errstr); + } +-//Rprintf("target crs: %s\n", proj_pj_info(target_crs).description); ++//Rprintf("target crs: %s\n", proj_as_proj_string(PJ_DEFAULT_CTX, target_crs, PJ_PROJ_5, NULL)); + #if PROJ_VERSION_MAJOR == 6 && PROJ_VERSION_MINOR < 2 + if ((pj_transform = proj_create_crs_to_crs(PJ_DEFAULT_CTX, + CHAR(STRING_ELT(fromargs, 0)), +@@ -764,14 +764,14 @@ SEXP transform_ng(SEXP fromargs, SEXP to + return(res); + } + +-SEXP project_ng_coordOp(SEXP proj, SEXP inv, SEXP aoi//, SEXP ob_tran ++SEXP project_ng_coordOp(SEXP proj, SEXP inv, SEXP aoi, SEXP ob_tran + ) { + + //PJ_CONTEXT *ctx = proj_context_create(); + PJ *source_crs, *target_crs; + PJ* pj_transform = NULL; + PJ_AREA *area_of_interest = 0; +- int //use_ob_tran = LOGICAL_POINTER(ob_tran)[0], ++ int use_ob_tran = LOGICAL_POINTER(ob_tran)[0], + use_inv, use_aoi=1; + + proj_log_func(PJ_DEFAULT_CTX, NULL, silent_logger); +@@ -796,14 +796,23 @@ SEXP project_ng_coordOp(SEXP proj, SEXP + error("target crs creation failed: %s", errstr); + } + +-//Rprintf("target crs: %s\n", proj_pj_info(target_crs).definition); +- if ((source_crs = proj_crs_get_geodetic_crs(PJ_DEFAULT_CTX, target_crs)) == 0) { +- const char *errstr = proj_errno_string(proj_context_errno(PJ_DEFAULT_CTX)); +- proj_destroy(target_crs); +- //proj_context_destroy(ctx); +- error("source crs creation failed: %s", errstr); ++//Rprintf("target crs: %s\n", proj_as_proj_string(PJ_DEFAULT_CTX, target_crs, PJ_PROJ_5, NULL)); ++ if (proj_get_type(target_crs) == PJ_TYPE_GEOGRAPHIC_2D_CRS && use_ob_tran) { ++ if ((source_crs = proj_get_source_crs(PJ_DEFAULT_CTX, target_crs)) == 0) { ++ const char *errstr = proj_errno_string(proj_context_errno(PJ_DEFAULT_CTX)); ++ proj_destroy(target_crs); ++ //proj_context_destroy(ctx); ++ error("source crs creation failed: %s", errstr); ++ } ++ } else { ++ if ((source_crs = proj_crs_get_geodetic_crs(PJ_DEFAULT_CTX, target_crs)) == 0) { ++ const char *errstr = proj_errno_string(proj_context_errno(PJ_DEFAULT_CTX)); ++ proj_destroy(target_crs); ++ //proj_context_destroy(ctx); ++ error("source crs creation failed: %s", errstr); ++ } + } +-//Rprintf("source crs: %s\n", proj_pj_info(source_crs).definition); ++//Rprintf("source crs: %s\n", proj_as_proj_string(PJ_DEFAULT_CTX, source_crs, PJ_PROJ_5, NULL)); + + if (use_aoi) { + area_of_interest = proj_area_create(); +@@ -811,7 +820,7 @@ SEXP project_ng_coordOp(SEXP proj, SEXP + NUMERIC_POINTER(aoi)[1], NUMERIC_POINTER(aoi)[2], + NUMERIC_POINTER(aoi)[3]); + } +- ++//Rprintf("use_inv: %d\n", use_inv); + #if PROJ_VERSION_MAJOR == 6 && PROJ_VERSION_MINOR < 2 + if (use_inv) pj_transform = proj_create_crs_to_crs(PJ_DEFAULT_CTX, + proj_as_wkt(PJ_DEFAULT_CTX, target_crs, PJ_WKT2_2018, NULL), +@@ -891,8 +900,10 @@ SEXP project_ng(SEXP n, SEXP xlon, SEXP + NUMERIC_POINTER(VECTOR_ELT(res, 1))[i]=iylat; + } else { + a = proj_coord(ixlon, iylat, iz, 0); +- if (!use_inv && is_ob_tran) b = proj_trans(pj_transform, PJ_INV, a); +- else b = proj_trans(pj_transform, PJ_FWD, a); ++ if (!use_inv && is_ob_tran) { ++ if (PROJ_VERSION_MAJOR > 7 || (PROJ_VERSION_MAJOR == 7 && PROJ_VERSION_MINOR > 2) || (PROJ_VERSION_MAJOR == 7 && PROJ_VERSION_MINOR == 2 && PROJ_VERSION_PATCH >= 1)) b = proj_trans(pj_transform, PJ_FWD, a); ++ else b = proj_trans(pj_transform, PJ_INV, a); ++ } else b = proj_trans(pj_transform, PJ_FWD, a); + if (b.uv.u == HUGE_VAL || ISNAN(b.uv.u) || b.uv.v == HUGE_VAL || + ISNAN(b.uv.v)) { + nwarn++; +--- a/src/rgdal.h ++++ b/src/rgdal.h +@@ -139,7 +139,7 @@ SEXP R_GDAL_OSR_PROJ();// GDAL + SEXP RGDAL_project(SEXP n, SEXP xlon, SEXP ylat, SEXP projarg, SEXP ob_tran); // both + SEXP project_inv(SEXP n, SEXP x, SEXP y, SEXP projarg, SEXP ob_tran); // both + SEXP project_ng(SEXP n, SEXP xlon, SEXP ylat, SEXP zz, SEXP inv, SEXP ob_tran, SEXP coordOp); // both +-SEXP project_ng_coordOp(SEXP proj, SEXP inv, SEXP aoi); // both ++SEXP project_ng_coordOp(SEXP proj, SEXP inv, SEXP aoi, SEXP ob_tran); // both + SEXP get_source_crs(SEXP source); // both + SEXP proj_vis_order(SEXP wkt2); // both + SEXP OSR_is_projected(SEXP inSRID); diff -Nru r-cran-rgdal-1.5-18+dfsg/debian/patches/svn-r1087.patch r-cran-rgdal-1.5-18+dfsg/debian/patches/svn-r1087.patch --- r-cran-rgdal-1.5-18+dfsg/debian/patches/svn-r1087.patch 1970-01-01 01:00:00.000000000 +0100 +++ r-cran-rgdal-1.5-18+dfsg/debian/patches/svn-r1087.patch 2021-01-04 07:32:08.000000000 +0100 @@ -0,0 +1,31 @@ +From 665fd90c143de3c00a2834e7d88d09ede0cb6bb8 Mon Sep 17 00:00:00 2001 +From: rsbivand <rsbivand@edb9625f-4e0d-4859-8d74-9fd3b1da38cb> +Date: Tue, 29 Dec 2020 15:13:29 +0000 +Subject: [PATCH] test with PROJ 7.2.0 + +git-svn-id: svn://svn.r-forge.r-project.org/svnroot/rgdal@1087 edb9625f-4e0d-4859-8d74-9fd3b1da38cb +--- + pkg/src/proj6.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/src/proj6.cpp ++++ b/src/proj6.cpp +@@ -1,4 +1,4 @@ +-/* Copyright (c) 2019 Roger Bivand */ ++/* Copyright (c) 2019-20 Roger Bivand */ + + + #include <R.h> +@@ -900,10 +900,10 @@ SEXP project_ng(SEXP n, SEXP xlon, SEXP + NUMERIC_POINTER(VECTOR_ELT(res, 1))[i]=iylat; + } else { + a = proj_coord(ixlon, iylat, iz, 0); +- if (!use_inv && is_ob_tran) { ++ /*if (!use_inv && is_ob_tran) { + if (PROJ_VERSION_MAJOR > 7 || (PROJ_VERSION_MAJOR == 7 && PROJ_VERSION_MINOR > 2) || (PROJ_VERSION_MAJOR == 7 && PROJ_VERSION_MINOR == 2 && PROJ_VERSION_PATCH >= 1)) b = proj_trans(pj_transform, PJ_FWD, a); + else b = proj_trans(pj_transform, PJ_INV, a); +- } else b = proj_trans(pj_transform, PJ_FWD, a); ++ } else*/ b = proj_trans(pj_transform, PJ_FWD, a); + if (b.uv.u == HUGE_VAL || ISNAN(b.uv.u) || b.uv.v == HUGE_VAL || + ISNAN(b.uv.v)) { + nwarn++; diff -Nru r-cran-rgdal-1.5-18+dfsg/debian/patches/svn-r1088.patch r-cran-rgdal-1.5-18+dfsg/debian/patches/svn-r1088.patch --- r-cran-rgdal-1.5-18+dfsg/debian/patches/svn-r1088.patch 1970-01-01 01:00:00.000000000 +0100 +++ r-cran-rgdal-1.5-18+dfsg/debian/patches/svn-r1088.patch 2021-01-04 07:32:20.000000000 +0100 @@ -0,0 +1,106 @@ +From 6345154005eedd80c2e0cd41d0cc1a85a9aa30e2 Mon Sep 17 00:00:00 2001 +From: rsbivand <rsbivand@edb9625f-4e0d-4859-8d74-9fd3b1da38cb> +Date: Tue, 29 Dec 2020 15:25:17 +0000 +Subject: [PATCH] adapt ob_tran for PROJ > 7.2.0 + +git-svn-id: svn://svn.r-forge.r-project.org/svnroot/rgdal@1088 edb9625f-4e0d-4859-8d74-9fd3b1da38cb +--- + pkg/R/project.R | 8 +------- + pkg/src/init.c | 2 +- + pkg/src/proj6.cpp | 10 +++------- + pkg/src/rgdal.h | 2 +- + 4 files changed, 6 insertions(+), 16 deletions(-) + +--- a/R/project.R ++++ b/R/project.R +@@ -257,8 +257,6 @@ OSRIsProjected <- function(obj) { + as.double(xy[,1]), + as.double(xy[,2]), + NULL, +- as.logical(inv), +- as.logical(use_ob_tran), + coordOp, + PACKAGE="rgdal") + } else { +@@ -447,7 +445,6 @@ if (!isGeneric("spTransform")) + } + res <- .Call("project_ng", as.integer(n), + as.double(crds[,1]), as.double(crds[,2]), NULL, +- as.logical(inv), as.logical(use_ob_tran1), + out_coordOp, PACKAGE="rgdal") + } + } else { +@@ -489,8 +486,7 @@ if (!isGeneric("spTransform")) + } + res <- .Call("project_ng", as.integer(n), + as.double(crds[,1]), as.double(crds[,2]), +- as.double(crds[,3]), as.logical(inv), +- as.logical(use_ob_tran1), out_coordOp, PACKAGE="rgdal") ++ as.double(crds[,3]), out_coordOp, PACKAGE="rgdal") + } + } else { + res <- .Call("transform", from_args, to_args, n, +@@ -582,7 +578,6 @@ setMethod("spTransform", signature("Spat + } + res <- .Call("project_ng", as.integer(n), + as.double(crds[,1]), as.double(crds[,2]), NULL, +- as.logical(inv), as.logical(use_ob_tran1), + coordOp, PACKAGE="rgdal") + out_coordOp <- coordOp + } +@@ -795,7 +790,6 @@ setMethod("spTransform", signature("Spat + } + res <- .Call("project_ng", as.integer(n), + as.double(crds[,1]), as.double(crds[,2]), NULL, +- as.logical(inv), as.logical(use_ob_tran1), + coordOp, PACKAGE="rgdal") + out_coordOp <- coordOp + } +--- a/src/init.c ++++ b/src/init.c +@@ -79,7 +79,7 @@ static R_CallMethodDef CallEntries[] = { + {"RGDAL_projInfo", (DL_FUNC) &RGDAL_projInfo, 1}, + {"RGDAL_project", (DL_FUNC) &RGDAL_project, 5}, + {"project_inv", (DL_FUNC) &project_inv, 5}, +- {"project_ng", (DL_FUNC) &project_ng, 7}, ++ {"project_ng", (DL_FUNC) &project_ng, 5}, + {"project_ng_coordOp", (DL_FUNC) &project_ng_coordOp, 4}, + {"CRS_compare", (DL_FUNC) &CRS_compare, 4}, + {"proj_network_enabled", (DL_FUNC) &proj_network_enabled, 0}, +--- a/src/proj6.cpp ++++ b/src/proj6.cpp +@@ -863,9 +863,8 @@ SEXP project_ng_coordOp(SEXP proj, SEXP + return(res); + } + +-SEXP project_ng(SEXP n, SEXP xlon, SEXP ylat, SEXP zz, SEXP inv, SEXP ob_tran, SEXP coordOp) { +- int i, nwarn=0, is_ob_tran=LOGICAL_POINTER(ob_tran)[0], +- nn=INTEGER_POINTER(n)[0], use_inv=LOGICAL_POINTER(inv)[0]; ++SEXP project_ng(SEXP n, SEXP xlon, SEXP ylat, SEXP zz, SEXP coordOp) { ++ int i, nwarn=0, nn=INTEGER_POINTER(n)[0]; + SEXP res; + //PJ_CONTEXT *ctx = proj_context_create(); + PJ* pj_transform = NULL; +@@ -900,10 +899,7 @@ SEXP project_ng(SEXP n, SEXP xlon, SEXP + NUMERIC_POINTER(VECTOR_ELT(res, 1))[i]=iylat; + } else { + a = proj_coord(ixlon, iylat, iz, 0); +- /*if (!use_inv && is_ob_tran) { +- if (PROJ_VERSION_MAJOR > 7 || (PROJ_VERSION_MAJOR == 7 && PROJ_VERSION_MINOR > 2) || (PROJ_VERSION_MAJOR == 7 && PROJ_VERSION_MINOR == 2 && PROJ_VERSION_PATCH >= 1)) b = proj_trans(pj_transform, PJ_FWD, a); +- else b = proj_trans(pj_transform, PJ_INV, a); +- } else*/ b = proj_trans(pj_transform, PJ_FWD, a); ++ b = proj_trans(pj_transform, PJ_FWD, a); + if (b.uv.u == HUGE_VAL || ISNAN(b.uv.u) || b.uv.v == HUGE_VAL || + ISNAN(b.uv.v)) { + nwarn++; +--- a/src/rgdal.h ++++ b/src/rgdal.h +@@ -138,7 +138,7 @@ SEXP RGDAL_projInfo(SEXP type); // both + SEXP R_GDAL_OSR_PROJ();// GDAL + SEXP RGDAL_project(SEXP n, SEXP xlon, SEXP ylat, SEXP projarg, SEXP ob_tran); // both + SEXP project_inv(SEXP n, SEXP x, SEXP y, SEXP projarg, SEXP ob_tran); // both +-SEXP project_ng(SEXP n, SEXP xlon, SEXP ylat, SEXP zz, SEXP inv, SEXP ob_tran, SEXP coordOp); // both ++SEXP project_ng(SEXP n, SEXP xlon, SEXP ylat, SEXP zz, SEXP coordOp); // both + SEXP project_ng_coordOp(SEXP proj, SEXP inv, SEXP aoi, SEXP ob_tran); // both + SEXP get_source_crs(SEXP source); // both + SEXP proj_vis_order(SEXP wkt2); // both diff -Nru r-cran-rgdal-1.5-18+dfsg/debian/patches/svn-r1089.patch r-cran-rgdal-1.5-18+dfsg/debian/patches/svn-r1089.patch --- r-cran-rgdal-1.5-18+dfsg/debian/patches/svn-r1089.patch 1970-01-01 01:00:00.000000000 +0100 +++ r-cran-rgdal-1.5-18+dfsg/debian/patches/svn-r1089.patch 2021-01-04 07:32:21.000000000 +0100 @@ -0,0 +1,92 @@ +From 08053a9e648b0446ec13c4db601239883f311af8 Mon Sep 17 00:00:00 2001 +From: rsbivand <rsbivand@edb9625f-4e0d-4859-8d74-9fd3b1da38cb> +Date: Tue, 29 Dec 2020 18:56:57 +0000 +Subject: [PATCH] ob_tran handling for 7.2.1 + +git-svn-id: svn://svn.r-forge.r-project.org/svnroot/rgdal@1089 edb9625f-4e0d-4859-8d74-9fd3b1da38cb +--- + pkg/src/projectit.cpp | 4 ++-- + pkg/tests/srs_rendering.Rout.save | 12 ++++++------ + pkg/tests/test_proj.Rout.save | 6 +++--- + 3 files changed, 11 insertions(+), 11 deletions(-) + +--- a/src/projectit.cpp ++++ b/src/projectit.cpp +@@ -161,12 +161,12 @@ SEXP transform_ng(SEXP fromargs, SEXP to + return(R_NilValue); + } + +-SEXP project_ng(SEXP n, SEXP xlon, SEXP ylat, SEXP zz, SEXP inv, SEXP ob_tran, SEXP coordOp) { ++SEXP project_ng(SEXP n, SEXP xlon, SEXP ylat, SEXP zz, SEXP coordOp) { + Rprintf("Not available for deprecated API"); + return(R_NilValue); + } + +-SEXP project_ng_coordOp(SEXP proj, SEXP inv, SEXP aoi) { ++SEXP project_ng_coordOp(SEXP proj, SEXP inv, SEXP aoi, SEXP ob_tran) { + Rprintf("Not available for deprecated API"); + return(R_NilValue); + } +--- a/tests/srs_rendering.Rout.save ++++ b/tests/srs_rendering.Rout.save +@@ -1,5 +1,5 @@ + +-R version 4.0.2 (2020-06-22) -- "Taking Off Again" ++R version 4.0.3 (2020-10-10) -- "Bunny-Wunnies Freak Out" + Copyright (C) 2020 The R Foundation for Statistical Computing + Platform: x86_64-pc-linux-gnu (64-bit) + +@@ -17,11 +17,11 @@ Type 'q()' to quit R. + + > suppressPackageStartupMessages(library(rgdal)) + > getPROJ4VersionInfo() +-[1] "Rel. 7.1.1, September 1st, 2020, [PJ_VERSION: 711]" ++[1] "Rel. 7.2.1, January 1st, 2021, [PJ_VERSION: 721]" + attr(,"short") +-[1] 711 ++[1] 721 + > getGDALVersionInfo() +-[1] "GDAL 3.1.3, released 2020/09/01" ++[1] "GDAL 3.2.0, released 2020/10/26" + > d <- system.file("vectors", package="rgdal") + > #shps <- ogrListLayers(d) + > (o <- OGRSpatialRef(d, "trin_inca_pl03")) +@@ -42,7 +42,7 @@ Warning message: + In OGRSpatialRef(d, "scot_BNG") : + Discarded datum OSGB_1936 in CRS definition: +proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +units=m +no_defs + > if (new_proj_and_gdal()) comment(o) +-[1] "PROJCRS[\"OSGB 1936 / British National Grid\",\n BASEGEOGCRS[\"OSGB 1936\",\n DATUM[\"OSGB 1936\",\n ELLIPSOID[\"Airy 1830\",6377563.396,299.3249646,\n LENGTHUNIT[\"metre\",1]]],\n PRIMEM[\"Greenwich\",0,\n ANGLEUNIT[\"degree\",0.0174532925199433]],\n ID[\"EPSG\",4277]],\n CONVERSION[\"British National Grid\",\n METHOD[\"Transverse Mercator\",\n ID[\"EPSG\",9807]],\n PARAMETER[\"Latitude of natural origin\",49,\n ANGLEUNIT[\"degree\",0.0174532925199433],\n ID[\"EPSG\",8801]],\n PARAMETER[\"Longitude of natural origin\",-2,\n ANGLEUNIT[\"degree\",0.0174532925199433],\n ID[\"EPSG\",8802]],\n PARAMETER[\"Scale factor at natural origin\",0.9996012717,\n SCALEUNIT[\"unity\",1],\n ID[\"EPSG\",8805]],\n PARAMETER[\"False easting\",400000,\n LENGTHUNIT[\"metre\",1],\n ID[\"EPSG\",8806]],\n PARAMETER[\"False northing\",-100000,\n LENGTHUNIT[\"metre\",1],\n ID[\"EPSG\",8807]]],\n CS[Cartesian,2],\n AXIS[\"(E)\",east,\n ORDER[1],\n LENGTHUNIT[\"metre\",1]],\n AXIS[\"(N)\",north,\n ORDER[2],\n LENGTHUNIT[\"metre\",1]],\n USAGE[\n SCOPE[\"unknown\"],\n AREA[\"UK - Britain and UKCS 49°45'N to 61°N, 9°W to 2°E\"],\n BBOX[49.75,-9,61.01,2.01]],\n ID[\"EPSG\",27700]]" ++[1] "PROJCRS[\"OSGB 1936 / British National Grid\",\n BASEGEOGCRS[\"OSGB 1936\",\n DATUM[\"OSGB 1936\",\n ELLIPSOID[\"Airy 1830\",6377563.396,299.3249646,\n LENGTHUNIT[\"metre\",1]]],\n PRIMEM[\"Greenwich\",0,\n ANGLEUNIT[\"degree\",0.0174532925199433]],\n ID[\"EPSG\",4277]],\n CONVERSION[\"British National Grid\",\n METHOD[\"Transverse Mercator\",\n ID[\"EPSG\",9807]],\n PARAMETER[\"Latitude of natural origin\",49,\n ANGLEUNIT[\"degree\",0.0174532925199433],\n ID[\"EPSG\",8801]],\n PARAMETER[\"Longitude of natural origin\",-2,\n ANGLEUNIT[\"degree\",0.0174532925199433],\n ID[\"EPSG\",8802]],\n PARAMETER[\"Scale factor at natural origin\",0.9996012717,\n SCALEUNIT[\"unity\",1],\n ID[\"EPSG\",8805]],\n PARAMETER[\"False easting\",400000,\n LENGTHUNIT[\"metre\",1],\n ID[\"EPSG\",8806]],\n PARAMETER[\"False northing\",-100000,\n LENGTHUNIT[\"metre\",1],\n ID[\"EPSG\",8807]]],\n CS[Cartesian,2],\n AXIS[\"(E)\",east,\n ORDER[1],\n LENGTHUNIT[\"metre\",1]],\n AXIS[\"(N)\",north,\n ORDER[2],\n LENGTHUNIT[\"metre\",1]],\n USAGE[\n SCOPE[\"Engineering survey, topographic mapping.\"],\n AREA[\"United Kingdom (UK) - offshore to boundary of UKCS within 49°45'N to 61°N and 9°W to 2°E; onshore Great Britain (England, Wales and Scotland). Isle of Man onshore.\"],\n BBOX[49.75,-9,61.01,2.01]],\n ID[\"EPSG\",27700]]" + > (o <- OGRSpatialRef(file.path(d, "airports.gml"), "airports")) + [1] NA + > if (new_proj_and_gdal()) comment(o) +@@ -142,4 +142,4 @@ In getProjectionRef(ds, OVERRIDE_PROJ_DA + > + > proc.time() + user system elapsed +- 0.415 0.042 0.453 ++ 0.434 0.034 0.486 +--- a/tests/test_proj.Rout.save ++++ b/tests/test_proj.Rout.save +@@ -1,5 +1,5 @@ + +-R version 4.0.2 (2020-06-22) -- "Taking Off Again" ++R version 4.0.3 (2020-10-10) -- "Bunny-Wunnies Freak Out" + Copyright (C) 2020 The R Foundation for Statistical Computing + Platform: x86_64-pc-linux-gnu (64-bit) + +@@ -62,7 +62,7 @@ In showSRID(uprojargs, format = "PROJ", + proj=pipeline step proj=unitconvert xy_in=deg xy_out=rad step inv + proj=ob_tran o_proj=longlat o_lon_p=-162 o_lat_p=39.25 lon_0=180 + ellps=sphere step proj=unitconvert xy_in=rad xy_out=deg +-proj=pipeline step proj=unitconvert xy_in=deg xy_out=rad step inv ++proj=pipeline step proj=unitconvert xy_in=deg xy_out=rad step + proj=ob_tran o_proj=longlat o_lon_p=-162 o_lat_p=39.25 lon_0=180 + ellps=sphere step proj=unitconvert xy_in=rad xy_out=deg + Warning messages: +@@ -75,4 +75,4 @@ Warning messages: + > + > proc.time() + user system elapsed +- 0.448 0.038 0.483 ++ 0.538 0.044 0.585