[Git][debian-gis-team/mapnik][master] Fix proj.patch DEP-3 headers.
Bas Couwenberg (@sebastic)
gitlab at salsa.debian.org
Thu Aug 4 09:22:34 BST 2022
Bas Couwenberg pushed to branch master at Debian GIS Project / mapnik
Commits:
936189c1 by Bas Couwenberg at 2022-08-04T10:22:22+02:00
Fix proj.patch DEP-3 headers.
- - - - -
1 changed file:
- debian/patches/proj.patch
Changes:
=====================================
debian/patches/proj.patch
=====================================
@@ -1,46 +1,8 @@
-From 8944e81367d2b3b91a41e24116e1813c01491e5d Mon Sep 17 00:00:00 2001
-From: Tom Hughes <tom at compton.nu>
-Date: Sun, 7 Mar 2021 16:09:13 +0000
-Subject: [PATCH] Upgrade to new Proj APIs
+Description: Upgrade to new Proj APIs
+Author: Artem Pavlenko <artem at mapnik.org>
+Origin: https://github.com/mapnik/mapnik/pull/4202
+Bug: https://github.com/mapnik/mapnik/issues/4036
-https://github.com/mapnik/mapnik/pull/4202
----
- SConstruct | 111 +++++++-----
- benchmark/build.py | 1 +
- benchmark/data/gdal-wgs.xml | 4 +-
- benchmark/data/raster-wgs.xml | 4 +-
- benchmark/test_noop_rendering.cpp | 4 +-
- benchmark/test_polygon_clipping.cpp | 2 +-
- benchmark/test_proj_transform1.cpp | 28 +--
- bootstrap.sh | 6 +-
- demo/c++/build.py | 2 +-
- demo/viewer/layerlistmodel.cpp | 15 +-
- demo/viewer/layerwidget.cpp | 13 +-
- demo/viewer/layerwidget.hpp | 28 +--
- demo/viewer/mainwindow.cpp | 8 +-
- demo/viewer/mapwidget.cpp | 51 +++---
- .../mapnik/feature_style_processor_impl.hpp | 46 ++---
- include/mapnik/layer.hpp | 4 +-
- include/mapnik/map.hpp | 42 ++++-
- include/mapnik/proj_transform.hpp | 24 ++-
- include/mapnik/projection.hpp | 19 +-
- include/mapnik/well_known_srs.hpp | 6 +-
- src/build.py | 3 +-
- src/map.cpp | 72 ++++++--
- src/proj_transform.cpp | 166 ++++++++----------
- src/projection.cpp | 130 ++++++--------
- src/text/symbolizer_helpers.cpp | 5 +-
- src/well_known_srs.cpp | 37 ++--
- test/cleanup.hpp | 12 --
- test/unit/core/exceptions_test.cpp | 9 +-
- test/unit/geometry/geometry_equal.hpp | 12 +-
- test/unit/geometry/geometry_reprojection.cpp | 74 ++++----
- test/unit/geometry/geometry_strategy_test.cpp | 4 +-
- test/unit/projection/proj_transform.cpp | 144 +++++++--------
- 32 files changed, 572 insertions(+), 514 deletions(-)
-
-diff --git a/SConstruct b/SConstruct
-index 45f8d579fd..436e29c434 100644
--- a/SConstruct
+++ b/SConstruct
@@ -1,6 +1,6 @@
@@ -141,12 +103,12 @@ index 45f8d579fd..436e29c434 100644
- std::string* posMsg = static_cast<std::string*>(user_data);
- *posMsg += msg;
-}
+-
+-// https://github.com/OSGeo/gdal/blob/ddbf6d39aa4b005a77ca4f27c2d61a3214f336f8/gdal/alg/gdalapplyverticalshiftgrid.cpp#L616-L633
+ std::vector<std::string> output;
+ std::stringstream ss(paths);
+ std::string path;
--// https://github.com/OSGeo/gdal/blob/ddbf6d39aa4b005a77ca4f27c2d61a3214f336f8/gdal/alg/gdalapplyverticalshiftgrid.cpp#L616-L633
--
-std::string find_proj_path(const char * pszFilename) {
- std::string osMsg;
- std::string osFilename;
@@ -206,7 +168,7 @@ index 45f8d579fd..436e29c434 100644
else:
context.Result('Failed to detect (mapnik-config will have null value)')
return ret[1].strip()
-@@ -1199,6 +1216,7 @@ conf_tests = { 'prioritize_paths' : prioritize_paths,
+@@ -1199,6 +1216,7 @@ conf_tests = { 'prioritize_paths' :
'FindBoost' : FindBoost,
'CheckBoost' : CheckBoost,
'CheckIcuData' : CheckIcuData,
@@ -214,7 +176,7 @@ index 45f8d579fd..436e29c434 100644
'CheckProjData' : CheckProjData,
'CheckGdalData' : CheckGdalData,
'CheckCairoHasFreetype' : CheckCairoHasFreetype,
-@@ -1465,7 +1483,7 @@ if not preconfigured:
+@@ -1480,7 +1498,7 @@ if not preconfigured:
env['SKIPPED_DEPS'].append('jpeg')
if env['PROJ']:
@@ -223,7 +185,7 @@ index 45f8d579fd..436e29c434 100644
inc_path = env['%s_INCLUDES' % 'PROJ']
lib_path = env['%s_LIBS' % 'PROJ']
env.AppendUnique(CPPPATH = fix_path(inc_path))
-@@ -1616,6 +1634,13 @@ if not preconfigured:
+@@ -1631,6 +1649,13 @@ if not preconfigured:
else:
color_print(4, 'Could not find optional header or shared library for %s' % libname)
env['SKIPPED_DEPS'].append(libname)
@@ -237,11 +199,9 @@ index 45f8d579fd..436e29c434 100644
else:
env.Append(CPPDEFINES = define)
else:
-diff --git a/benchmark/build.py b/benchmark/build.py
-index 37ba86707f..6c906a497e 100644
--- a/benchmark/build.py
+++ b/benchmark/build.py
-@@ -9,6 +9,7 @@
+@@ -9,6 +9,7 @@ test_env = env.Clone()
test_env['LIBS'] = [env['MAPNIK_NAME']]
test_env.AppendUnique(LIBS=copy(env['LIBMAPNIK_LIBS']))
test_env.AppendUnique(LIBS='mapnik-wkt')
@@ -249,8 +209,6 @@ index 37ba86707f..6c906a497e 100644
if env['PLATFORM'] == 'Linux':
test_env.AppendUnique(LIBS='dl')
test_env.AppendUnique(LIBS='rt')
-diff --git a/benchmark/data/gdal-wgs.xml b/benchmark/data/gdal-wgs.xml
-index aa58665321..7a0ca60121 100644
--- a/benchmark/data/gdal-wgs.xml
+++ b/benchmark/data/gdal-wgs.xml
@@ -1,7 +1,7 @@
@@ -271,8 +229,6 @@ index aa58665321..7a0ca60121 100644
<StyleName>style</StyleName>
<Datasource>
<Parameter name="file">./valid.geotiff.tif</Parameter>
-diff --git a/benchmark/data/raster-wgs.xml b/benchmark/data/raster-wgs.xml
-index 3ee054d2dd..d879f4fc84 100644
--- a/benchmark/data/raster-wgs.xml
+++ b/benchmark/data/raster-wgs.xml
@@ -1,7 +1,7 @@
@@ -293,8 +249,6 @@ index 3ee054d2dd..d879f4fc84 100644
<StyleName>style</StyleName>
<Datasource>
<Parameter name="file">./valid.geotiff.tif</Parameter>
-diff --git a/benchmark/test_noop_rendering.cpp b/benchmark/test_noop_rendering.cpp
-index 03d2e675c6..55c09e34c2 100644
--- a/benchmark/test_noop_rendering.cpp
+++ b/benchmark/test_noop_rendering.cpp
@@ -11,7 +11,7 @@
@@ -306,7 +260,7 @@ index 03d2e675c6..55c09e34c2 100644
class test : public benchmark::test_case
{
public:
-@@ -24,7 +24,7 @@ class test : public benchmark::test_case
+@@ -24,7 +24,7 @@ public:
}
bool operator()() const
{
@@ -315,11 +269,9 @@ index 03d2e675c6..55c09e34c2 100644
mapnik::parameters params;
params["type"]="memory";
-diff --git a/benchmark/test_polygon_clipping.cpp b/benchmark/test_polygon_clipping.cpp
-index b189a04436..0c28dd5bfb 100644
--- a/benchmark/test_polygon_clipping.cpp
+++ b/benchmark/test_polygon_clipping.cpp
-@@ -51,7 +51,7 @@ void render(mapnik::geometry::multi_polygon<double> const& geom,
+@@ -51,7 +51,7 @@ void render(mapnik::geometry::multi_poly
agg::pixfmt_rgba32_plain pixf(buf);
ren_base renb(pixf);
renderer ren(renb);
@@ -328,8 +280,6 @@ index b189a04436..0c28dd5bfb 100644
ren.color(agg::rgba8(127,127,127,255));
agg::rasterizer_scanline_aa<> ras;
for (auto const& poly : geom)
-diff --git a/benchmark/test_proj_transform1.cpp b/benchmark/test_proj_transform1.cpp
-index 37f4b0c4c9..121c8b6205 100644
--- a/benchmark/test_proj_transform1.cpp
+++ b/benchmark/test_proj_transform1.cpp
@@ -9,7 +9,7 @@ class test : public benchmark::test_case
@@ -341,7 +291,7 @@ index 37f4b0c4c9..121c8b6205 100644
public:
test(mapnik::parameters const& params,
std::string const& src,
-@@ -22,11 +22,11 @@ class test : public benchmark::test_case
+@@ -22,11 +22,11 @@ public:
dest_(dest),
from_(from),
to_(to),
@@ -356,7 +306,7 @@ index 37f4b0c4c9..121c8b6205 100644
mapnik::proj_transform tr(src,dest);
mapnik::box2d<double> bbox = from_;
if (!tr.forward(bbox)) return false;
-@@ -38,15 +38,15 @@ class test : public benchmark::test_case
+@@ -38,15 +38,15 @@ public:
}
bool operator()() const
{
@@ -375,7 +325,7 @@ index 37f4b0c4c9..121c8b6205 100644
mapnik::box2d<double> box(j,k,j,k);
if (!tr.forward(box)) throw std::runtime_error("could not transform coords");
}
-@@ -56,19 +56,19 @@ class test : public benchmark::test_case
+@@ -56,19 +56,19 @@ public:
}
};
@@ -402,8 +352,6 @@ index 37f4b0c4c9..121c8b6205 100644
+ .run<test>("merc->lonlat literal (libproj)", to_str2, from_str2, to, from, true)
.done();
}
-diff --git a/bootstrap.sh b/bootstrap.sh
-index 5071d7e747..b13c026608 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -8,7 +8,7 @@ todo
@@ -428,11 +376,9 @@ index 5071d7e747..b13c026608 100755
install pixman 0.34.0 libpixman-1
install cairo 1.14.8 libcairo
install webp 0.6.0 libwebp
-diff --git a/demo/c++/build.py b/demo/c++/build.py
-index c059b05da0..d2d2bc5fa4 100644
--- a/demo/c++/build.py
+++ b/demo/c++/build.py
-@@ -41,7 +41,7 @@
+@@ -41,7 +41,7 @@ if env['HAS_CAIRO']:
demo_env.Append(CPPDEFINES = '-DHAVE_CAIRO')
libraries = [env['MAPNIK_NAME']]
@@ -441,8 +387,6 @@ index c059b05da0..d2d2bc5fa4 100644
rundemo = demo_env.Program('rundemo', source, LIBS=libraries)
Depends(rundemo, env.subst('../../src/%s' % env['MAPNIK_LIB_NAME']))
-diff --git a/demo/viewer/layerlistmodel.cpp b/demo/viewer/layerlistmodel.cpp
-index 55af8e76e4..ec0eaac260 100644
--- a/demo/viewer/layerlistmodel.cpp
+++ b/demo/viewer/layerlistmodel.cpp
@@ -21,13 +21,12 @@
@@ -461,7 +405,7 @@ index 55af8e76e4..ec0eaac260 100644
: QAbstractListModel(parent),
map_(map) {}
-@@ -37,7 +36,7 @@ int LayerListModel::rowCount(QModelIndex const&) const
+@@ -37,7 +36,7 @@ int LayerListModel::rowCount(QModelIndex
return 0;
}
@@ -470,7 +414,7 @@ index 55af8e76e4..ec0eaac260 100644
{
if (!index.isValid() || !map_)
return QVariant();
-@@ -64,6 +63,13 @@ QVariant LayerListModel::data(QModelIndex const& index,int role) const
+@@ -64,6 +63,13 @@ QVariant LayerListModel::data(QModelInde
else
return QVariant(Qt::Unchecked);
}
@@ -484,7 +428,7 @@ index 55af8e76e4..ec0eaac260 100644
else
{
return QVariant();
-@@ -101,7 +107,6 @@ bool LayerListModel::setData(const QModelIndex &index,
+@@ -101,7 +107,6 @@ bool LayerListModel::setData(const QMode
Qt::ItemFlags LayerListModel::flags(QModelIndex const& index) const
{
Qt::ItemFlags flags = QAbstractItemModel::flags(index);
@@ -492,8 +436,6 @@ index 55af8e76e4..ec0eaac260 100644
if (index.isValid())
flags |= Qt::ItemIsUserCheckable;
return flags;
-diff --git a/demo/viewer/layerwidget.cpp b/demo/viewer/layerwidget.cpp
-index a6ab6b8f49..5733f1e63c 100644
--- a/demo/viewer/layerwidget.cpp
+++ b/demo/viewer/layerwidget.cpp
@@ -29,12 +29,9 @@
@@ -509,7 +451,7 @@ index a6ab6b8f49..5733f1e63c 100644
LayerTab::LayerTab(QWidget* parent)
: QListView(parent) {}
-@@ -45,11 +42,11 @@ void LayerTab::paintEvent(QPaintEvent *e)
+@@ -45,11 +42,11 @@ void LayerTab::paintEvent(QPaintEvent *e
}
void LayerTab::dataChanged(const QModelIndex &topLeft,
@@ -525,7 +467,7 @@ index a6ab6b8f49..5733f1e63c 100644
}
void LayerTab::selectionChanged(const QItemSelection & selected, const QItemSelection &)
-@@ -57,7 +54,7 @@ void LayerTab::selectionChanged(const QItemSelection & selected, const QItemSele
+@@ -57,7 +54,7 @@ void LayerTab::selectionChanged(const QI
QModelIndexList list = selected.indexes();
if (list.size() != 0)
{
@@ -534,8 +476,6 @@ index a6ab6b8f49..5733f1e63c 100644
emit layerSelected(list[0].row());
}
}
-diff --git a/demo/viewer/layerwidget.hpp b/demo/viewer/layerwidget.hpp
-index f59196de78..6761d79a4c 100644
--- a/demo/viewer/layerwidget.hpp
+++ b/demo/viewer/layerwidget.hpp
@@ -27,19 +27,19 @@
@@ -580,11 +520,9 @@ index f59196de78..6761d79a4c 100644
};
#endif
-diff --git a/demo/viewer/mainwindow.cpp b/demo/viewer/mainwindow.cpp
-index cdfd434717..338180f668 100644
--- a/demo/viewer/mainwindow.cpp
+++ b/demo/viewer/mainwindow.cpp
-@@ -421,11 +421,11 @@ void MainWindow::set_default_extent(double x0,double y0, double x1, double y1)
+@@ -421,11 +421,11 @@ void MainWindow::set_default_extent(doub
if (map_ptr)
{
mapnik::projection prj(map_ptr->srs());
@@ -600,8 +538,6 @@ index cdfd434717..338180f668 100644
}
}
catch (...) {}
-diff --git a/demo/viewer/mapwidget.cpp b/demo/viewer/mapwidget.cpp
-index de4523059f..b1ea939b06 100644
--- a/demo/viewer/mapwidget.cpp
+++ b/demo/viewer/mapwidget.cpp
@@ -23,7 +23,7 @@
@@ -613,7 +549,7 @@ index de4523059f..b1ea939b06 100644
#include <mapnik/scale_denominator.hpp>
#include <mapnik/view_transform.hpp>
#include <mapnik/transform_path_adapter.hpp>
-@@ -156,7 +156,7 @@ void MapWidget::mousePressEvent(QMouseEvent* e)
+@@ -156,7 +156,7 @@ void MapWidget::mousePressEvent(QMouseEv
{
QVector<QPair<QString,QString> > info;
@@ -622,7 +558,7 @@ index de4523059f..b1ea939b06 100644
double scale_denom = scale_denominator(map_->scale(),map_proj.is_geographic());
view_transform t(map_->width(),map_->height(),map_->get_current_extent());
-@@ -170,7 +170,7 @@ void MapWidget::mousePressEvent(QMouseEvent* e)
+@@ -170,7 +170,7 @@ void MapWidget::mousePressEvent(QMouseEv
double x = e->x();
double y = e->y();
std::cout << "query at " << x << "," << y << "\n";
@@ -695,8 +631,6 @@ index de4523059f..b1ea939b06 100644
- selectedLayer_ = index;
+ selectedLayer_ = index;
}
-diff --git a/include/mapnik/feature_style_processor_impl.hpp b/include/mapnik/feature_style_processor_impl.hpp
-index bddeec91c7..645c6e0301 100644
--- a/include/mapnik/feature_style_processor_impl.hpp
+++ b/include/mapnik/feature_style_processor_impl.hpp
@@ -65,10 +65,9 @@ struct layer_rendering_material
@@ -713,7 +647,7 @@ index bddeec91c7..645c6e0301 100644
layer_rendering_material(layer_rendering_material && rhs) = default;
};
-@@ -240,8 +239,7 @@ void feature_style_processor<Processor>::prepare_layer(layer_rendering_material
+@@ -240,8 +239,7 @@ void feature_style_processor<Processor>:
}
processor_context_ptr current_ctx = ds->get_context(ctx_map);
@@ -723,7 +657,7 @@ index bddeec91c7..645c6e0301 100644
box2d<double> query_ext = extent; // unbuffered
box2d<double> buffered_query_ext(query_ext); // buffered
-@@ -271,22 +269,22 @@ void feature_style_processor<Processor>::prepare_layer(layer_rendering_material
+@@ -271,22 +269,22 @@ void feature_style_processor<Processor>:
bool early_return = false;
// first, try intersection of map extent forward projected into layer srs
@@ -750,7 +684,7 @@ index bddeec91c7..645c6e0301 100644
{
MAPNIK_LOG_ERROR(feature_style_processor)
<< "feature_style_processor: Layer=" << lay.name()
-@@ -338,17 +336,17 @@ void feature_style_processor<Processor>::prepare_layer(layer_rendering_material
+@@ -338,17 +336,17 @@ void feature_style_processor<Processor>:
layer_ext2 = lay.envelope();
if (fw_success)
{
@@ -771,7 +705,7 @@ index bddeec91c7..645c6e0301 100644
}
}
-@@ -465,9 +463,7 @@ void feature_style_processor<Processor>::render_material(layer_rendering_materia
+@@ -465,9 +463,7 @@ void feature_style_processor<Processor>:
layer const& lay = mat.lay_;
std::vector<rule_cache> const & rule_caches = mat.rule_caches_;
@@ -782,7 +716,7 @@ index bddeec91c7..645c6e0301 100644
bool cache_features = lay.cache_features() && active_styles.size() > 1;
datasource_ptr ds = lay.datasource();
-@@ -495,10 +491,9 @@ void feature_style_processor<Processor>::render_material(layer_rendering_materia
+@@ -495,10 +491,9 @@ void feature_style_processor<Processor>:
cache->prepare();
render_style(p, style,
@@ -795,7 +729,7 @@ index bddeec91c7..645c6e0301 100644
}
cache->clear();
}
-@@ -510,8 +505,7 @@ void feature_style_processor<Processor>::render_material(layer_rendering_materia
+@@ -510,8 +505,7 @@ void feature_style_processor<Processor>:
for (feature_type_style const* style : active_styles)
{
cache->prepare();
@@ -805,7 +739,7 @@ index bddeec91c7..645c6e0301 100644
}
cache->clear();
}
-@@ -535,9 +529,8 @@ void feature_style_processor<Processor>::render_material(layer_rendering_materia
+@@ -535,9 +529,8 @@ void feature_style_processor<Processor>:
{
cache->prepare();
render_style(p, style,
@@ -817,7 +751,7 @@ index bddeec91c7..645c6e0301 100644
}
}
// We only have a single style and no grouping.
-@@ -549,10 +542,9 @@ void feature_style_processor<Processor>::render_material(layer_rendering_materia
+@@ -549,10 +542,9 @@ void feature_style_processor<Processor>:
{
featureset_ptr features = *featuresets++;
render_style(p, style,
@@ -830,11 +764,9 @@ index bddeec91c7..645c6e0301 100644
}
}
p.end_layer_processing(mat.lay_);
-diff --git a/include/mapnik/layer.hpp b/include/mapnik/layer.hpp
-index 064ee8a158..ce69152d55 100644
--- a/include/mapnik/layer.hpp
+++ b/include/mapnik/layer.hpp
-@@ -41,7 +41,7 @@ using datasource_ptr = std::shared_ptr<datasource>;
+@@ -41,7 +41,7 @@ using datasource_ptr = std::shared_ptr<d
* @brief A Mapnik map layer.
*
* Create a layer with a named string and, optionally, an srs string either
@@ -852,8 +784,6 @@ index 064ee8a158..ce69152d55 100644
// copy
layer(layer const& l);
// move
-diff --git a/include/mapnik/map.hpp b/include/mapnik/map.hpp
-index 19b0cb8d3b..5bea9c1256 100644
--- a/include/mapnik/map.hpp
+++ b/include/mapnik/map.hpp
@@ -33,14 +33,16 @@
@@ -907,7 +837,7 @@ index 19b0cb8d3b..5bea9c1256 100644
enum aspect_fix_mode
{
-@@ -82,8 +109,8 @@ class MAPNIK_DECL Map : boost::equality_comparable<Map>
+@@ -82,8 +109,8 @@ public:
};
private:
@@ -918,7 +848,7 @@ index 19b0cb8d3b..5bea9c1256 100644
unsigned width_;
unsigned height_;
std::string srs_;
-@@ -103,7 +130,7 @@ class MAPNIK_DECL Map : boost::equality_comparable<Map>
+@@ -103,7 +130,7 @@ private:
boost::optional<std::string> font_directory_;
freetype_engine::font_file_mapping_type font_file_mapping_;
freetype_engine::font_memory_cache_type font_memory_cache_;
@@ -927,7 +857,7 @@ index 19b0cb8d3b..5bea9c1256 100644
public:
using const_style_iterator = std::map<std::string,feature_type_style>::const_iterator;
-@@ -125,7 +152,7 @@ class MAPNIK_DECL Map : boost::equality_comparable<Map>
+@@ -125,7 +152,7 @@ public:
* @param height Initial map height.
* @param srs Initial map projection.
*/
@@ -936,7 +866,7 @@ index 19b0cb8d3b..5bea9c1256 100644
/*! \brief Copy Constructor.
*
-@@ -502,9 +529,12 @@ class MAPNIK_DECL Map : boost::equality_comparable<Map>
+@@ -502,9 +529,12 @@ public:
return font_memory_cache_;
}
@@ -949,8 +879,6 @@ index 19b0cb8d3b..5bea9c1256 100644
};
DEFINE_ENUM(aspect_fix_mode_e,Map::aspect_fix_mode);
-diff --git a/include/mapnik/proj_transform.hpp b/include/mapnik/proj_transform.hpp
-index 2cdc1e2bdf..502e61ee62 100644
--- a/include/mapnik/proj_transform.hpp
+++ b/include/mapnik/proj_transform.hpp
@@ -26,6 +26,7 @@
@@ -1007,8 +935,6 @@ index 2cdc1e2bdf..502e61ee62 100644
bool is_source_longlat_;
bool is_dest_longlat_;
bool is_source_equal_dest_;
-diff --git a/include/mapnik/projection.hpp b/include/mapnik/projection.hpp
-index 7552eef588..73b1962704 100644
--- a/include/mapnik/projection.hpp
+++ b/include/mapnik/projection.hpp
@@ -36,6 +36,17 @@
@@ -1038,7 +964,7 @@ index 7552eef588..73b1962704 100644
projection(projection const& rhs);
~projection();
-@@ -65,7 +76,7 @@ class MAPNIK_DECL projection
+@@ -65,7 +76,7 @@ public:
void forward(double & x, double & y) const;
void inverse(double & x,double & y) const;
std::string expanded() const;
@@ -1047,7 +973,7 @@ index 7552eef588..73b1962704 100644
private:
void swap (projection& rhs);
-@@ -74,8 +85,8 @@ class MAPNIK_DECL projection
+@@ -74,8 +85,8 @@ private:
std::string params_;
bool defer_proj_init_;
mutable bool is_geographic_;
@@ -1058,8 +984,6 @@ index 7552eef588..73b1962704 100644
};
template <typename charT, typename traits>
-diff --git a/include/mapnik/well_known_srs.hpp b/include/mapnik/well_known_srs.hpp
-index 59e8cc4c39..c5df3a1827 100644
--- a/include/mapnik/well_known_srs.hpp
+++ b/include/mapnik/well_known_srs.hpp
@@ -40,7 +40,7 @@ namespace mapnik {
@@ -1071,7 +995,7 @@ index 59e8cc4c39..c5df3a1827 100644
well_known_srs_enum_MAX
};
-@@ -59,9 +59,11 @@ static const double MAX_LATITUDE = R2D * (2 * std::atan(std::exp(180 * D2R)) - M
+@@ -59,9 +59,11 @@ static const double MAX_LATITUDE = R2D *
static const std::string MAPNIK_LONGLAT_PROJ = "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs";
static const std::string MAPNIK_GMERC_PROJ = "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over";
@@ -1084,11 +1008,9 @@ index 59e8cc4c39..c5df3a1827 100644
static inline bool lonlat2merc(double * x, double * y , int point_count)
{
-diff --git a/src/build.py b/src/build.py
-index 1833d051cb..247bf54923 100644
--- a/src/build.py
+++ b/src/build.py
-@@ -77,8 +77,9 @@ def ldconfig(*args,**kwargs):
+@@ -77,8 +77,9 @@ if '-DHAVE_PNG' in env['CPPDEFINES']:
lib_env['LIBS'].append('png')
enabled_imaging_libraries.append('png_reader.cpp')
@@ -1099,11 +1021,9 @@ index 1833d051cb..247bf54923 100644
if '-DHAVE_TIFF' in env['CPPDEFINES']:
lib_env['LIBS'].append('tiff')
-diff --git a/src/map.cpp b/src/map.cpp
-index 7496bd2f4e..8e78252850 100644
--- a/src/map.cpp
+++ b/src/map.cpp
-@@ -66,7 +66,7 @@ IMPLEMENT_ENUM( aspect_fix_mode_e, aspect_fix_mode_strings )
+@@ -66,7 +66,7 @@ IMPLEMENT_ENUM( aspect_fix_mode_e, aspec
Map::Map()
: width_(400),
height_(400),
@@ -1218,7 +1138,7 @@ index 7496bd2f4e..8e78252850 100644
{
success = true;
MAPNIK_LOG_DEBUG(map) << "map: Layer " << layer.name() << " original ext=" << layer.envelope();
-@@ -707,11 +731,9 @@ featureset_ptr Map::query_point(unsigned index, double x, double y) const
+@@ -707,11 +731,9 @@ featureset_ptr Map::query_point(unsigned
mapnik::datasource_ptr ds = layer.datasource();
if (ds)
{
@@ -1232,7 +1152,7 @@ index 7496bd2f4e..8e78252850 100644
{
throw std::runtime_error("query_point: could not project x,y into layer srs");
}
-@@ -721,7 +743,7 @@ featureset_ptr Map::query_point(unsigned index, double x, double y) const
+@@ -721,7 +743,7 @@ featureset_ptr Map::query_point(unsigned
{
map_ex.clip(*maximum_extent_);
}
@@ -1241,7 +1161,7 @@ index 7496bd2f4e..8e78252850 100644
{
std::ostringstream s;
s << "query_point: could not project map extent '" << map_ex
-@@ -772,4 +794,28 @@ void Map::set_extra_parameters(parameters& params)
+@@ -772,4 +794,28 @@ void Map::set_extra_parameters(parameter
extra_params_ = params;
}
@@ -1270,8 +1190,6 @@ index 7496bd2f4e..8e78252850 100644
+}
+
}
-diff --git a/src/proj_transform.cpp b/src/proj_transform.cpp
-index 0c5e6cd965..b1ce3dab8d 100644
--- a/src/proj_transform.cpp
+++ b/src/proj_transform.cpp
@@ -28,13 +28,13 @@
@@ -1292,7 +1210,7 @@ index 0c5e6cd965..b1ce3dab8d 100644
#endif
// stl
-@@ -95,30 +95,28 @@ auto envelope_points(box2d<T> const& env, std::size_t num_points)
+@@ -95,30 +95,28 @@ auto envelope_points(box2d<T> const& env
proj_transform::proj_transform(projection const& source,
projection const& dest)
@@ -1329,7 +1247,7 @@ index 0c5e6cd965..b1ce3dab8d 100644
{
merc_to_wgs84_ = true;
known_trans = true;
-@@ -126,16 +124,45 @@ proj_transform::proj_transform(projection const& source,
+@@ -126,16 +124,45 @@ proj_transform::proj_transform(projectio
}
if (!known_trans)
{
@@ -1379,7 +1297,7 @@ index 0c5e6cd965..b1ce3dab8d 100644
bool proj_transform::equal() const
{
return is_source_equal_dest_;
-@@ -187,9 +214,8 @@ unsigned int proj_transform::forward (geometry::line_string<double> & ls) const
+@@ -187,9 +214,8 @@ unsigned int proj_transform::forward (ge
return 0;
}
@@ -1390,7 +1308,7 @@ index 0c5e6cd965..b1ce3dab8d 100644
if (is_source_equal_dest_)
return true;
-@@ -202,42 +228,19 @@ bool proj_transform::forward (double * x, double * y , double * z, int point_cou
+@@ -202,42 +228,19 @@ bool proj_transform::forward (double * x
return merc2lonlat(x,y,point_count);
}
@@ -1440,7 +1358,7 @@ index 0c5e6cd965..b1ce3dab8d 100644
{
if (is_source_equal_dest_)
return true;
-@@ -251,38 +254,13 @@ bool proj_transform::backward (double * x, double * y , double * z, int point_co
+@@ -251,38 +254,13 @@ bool proj_transform::backward (double *
return lonlat2merc(x,y,point_count);
}
@@ -1485,7 +1403,7 @@ index 0c5e6cd965..b1ce3dab8d 100644
#endif
return true;
}
-@@ -394,7 +372,7 @@ bool proj_transform::backward (box2d<double> & box) const
+@@ -394,7 +372,7 @@ bool proj_transform::backward (box2d<dou
// Alternative is to provide proper clipping box
// in the target srs by setting map 'maximum-extent'
@@ -1494,7 +1412,7 @@ index 0c5e6cd965..b1ce3dab8d 100644
{
if (is_source_equal_dest_)
return true;
-@@ -433,7 +411,7 @@ bool proj_transform::backward(box2d<double>& env, int points) const
+@@ -433,7 +411,7 @@ bool proj_transform::backward(box2d<doub
return true;
}
@@ -1503,7 +1421,7 @@ index 0c5e6cd965..b1ce3dab8d 100644
{
if (is_source_equal_dest_)
return true;
-@@ -473,13 +451,25 @@ bool proj_transform::forward(box2d<double>& env, int points) const
+@@ -473,13 +451,25 @@ bool proj_transform::forward(box2d<doubl
return true;
}
@@ -1536,8 +1454,6 @@ index 0c5e6cd965..b1ce3dab8d 100644
+ }
}
-diff --git a/src/projection.cpp b/src/projection.cpp
-index b8c2f5b71c..302ff418ed 100644
--- a/src/projection.cpp
+++ b/src/projection.cpp
@@ -28,23 +28,14 @@
@@ -1568,7 +1484,7 @@ index b8c2f5b71c..302ff418ed 100644
projection::projection(std::string const& params, bool defer_proj_init)
: params_(params),
defer_proj_init_(defer_proj_init),
-@@ -58,13 +49,13 @@ projection::projection(std::string const& params, bool defer_proj_init)
+@@ -58,13 +49,13 @@ projection::projection(std::string const
}
else
{
@@ -1586,7 +1502,7 @@ index b8c2f5b71c..302ff418ed 100644
}
projection::projection(projection const& rhs)
-@@ -74,7 +65,7 @@ projection::projection(projection const& rhs)
+@@ -74,7 +65,7 @@ projection::projection(projection const&
proj_(nullptr),
proj_ctx_(nullptr)
{
@@ -1595,7 +1511,7 @@ index b8c2f5b71c..302ff418ed 100644
}
projection& projection::operator=(projection const& rhs)
-@@ -83,7 +74,7 @@ projection& projection::operator=(projection const& rhs)
+@@ -83,7 +74,7 @@ projection& projection::operator=(projec
swap(tmp);
proj_ctx_ = nullptr;
proj_ = nullptr;
@@ -1604,7 +1520,7 @@ index b8c2f5b71c..302ff418ed 100644
return *this;
}
-@@ -97,34 +88,29 @@ bool projection::operator!=(const projection& other) const
+@@ -97,34 +88,29 @@ bool projection::operator!=(const projec
return !(*this == other);
}
@@ -1649,7 +1565,7 @@ index b8c2f5b71c..302ff418ed 100644
}
#endif
}
-@@ -151,82 +137,68 @@ std::string const& projection::params() const
+@@ -151,82 +137,68 @@ std::string const& projection::params()
void projection::forward(double & x, double &y ) const
{
@@ -1763,11 +1679,9 @@ index b8c2f5b71c..302ff418ed 100644
#endif
return params_;
}
-diff --git a/src/text/symbolizer_helpers.cpp b/src/text/symbolizer_helpers.cpp
-index ee9efb164b..69b2ec9fff 100644
--- a/src/text/symbolizer_helpers.cpp
+++ b/src/text/symbolizer_helpers.cpp
-@@ -325,10 +325,9 @@ void base_symbolizer_helper::initialize_points() const
+@@ -325,10 +325,9 @@ void base_symbolizer_helper::initialize_
else if (how_placed == INTERIOR_PLACEMENT && type == geometry::geometry_types::Polygon)
{
auto const& poly = util::get<geometry::polygon<double>>(geom);
@@ -1780,8 +1694,6 @@ index ee9efb164b..69b2ec9fff 100644
transform_group_type transform_group(ps, vs);
geometry::polygon<double> tranformed_poly(geometry::transform<double>(poly, transform_group));
geometry::point<double> pt;
-diff --git a/src/well_known_srs.cpp b/src/well_known_srs.cpp
-index e9e2a8948d..fdfa2cafab 100644
--- a/src/well_known_srs.cpp
+++ b/src/well_known_srs.cpp
@@ -32,21 +32,27 @@
@@ -1817,7 +1729,7 @@ index e9e2a8948d..fdfa2cafab 100644
}
return boost::optional<well_known_srs_e>();
}
-@@ -54,28 +60,13 @@ boost::optional<well_known_srs_e> is_well_known_srs(std::string const& srs)
+@@ -54,28 +60,13 @@ boost::optional<well_known_srs_e> is_wel
boost::optional<bool> is_known_geographic(std::string const& srs)
{
std::string trimmed = util::trim_copy(srs);
@@ -1849,8 +1761,6 @@ index e9e2a8948d..fdfa2cafab 100644
}
return boost::optional<bool>();
}
-diff --git a/test/cleanup.hpp b/test/cleanup.hpp
-index c775915b50..096d773aca 100644
--- a/test/cleanup.hpp
+++ b/test/cleanup.hpp
@@ -15,9 +15,6 @@
@@ -1879,8 +1789,6 @@ index c775915b50..096d773aca 100644
}
}
-diff --git a/test/unit/core/exceptions_test.cpp b/test/unit/core/exceptions_test.cpp
-index 16ed519742..2c6f14999d 100644
--- a/test/unit/core/exceptions_test.cpp
+++ b/test/unit/core/exceptions_test.cpp
@@ -1,4 +1,3 @@
@@ -1912,8 +1820,6 @@ index 16ed519742..2c6f14999d 100644
//REQUIRE(false);
} catch (...) {
REQUIRE(true);
-diff --git a/test/unit/geometry/geometry_equal.hpp b/test/unit/geometry/geometry_equal.hpp
-index 4ff80ababc..53f7d72df7 100644
--- a/test/unit/geometry/geometry_equal.hpp
+++ b/test/unit/geometry/geometry_equal.hpp
@@ -126,7 +126,7 @@ struct geometry_equal_visitor
@@ -1970,8 +1876,6 @@ index 4ff80ababc..53f7d72df7 100644
{
assert_g_equal(g.template get<0>(),g.template get<1>());
}
-diff --git a/test/unit/geometry/geometry_reprojection.cpp b/test/unit/geometry/geometry_reprojection.cpp
-index c8ec36243a..3b7abd7420 100644
--- a/test/unit/geometry/geometry_reprojection.cpp
+++ b/test/unit/geometry/geometry_reprojection.cpp
@@ -12,8 +12,8 @@ TEST_CASE("geometry reprojection") {
@@ -1985,7 +1889,7 @@ index c8ec36243a..3b7abd7420 100644
mapnik::proj_transform proj_trans(source, dest);
{
geometry_empty geom;
-@@ -38,8 +38,8 @@ SECTION("test_projection_4326_3857 - Empty Geometry Object") {
+@@ -38,8 +38,8 @@ SECTION("test_projection_4326_3857 - Emp
SECTION("test_projection_4326_3857 - Empty Geometry in Geometry Variant") {
using namespace mapnik::geometry;
@@ -1996,7 +1900,7 @@ index c8ec36243a..3b7abd7420 100644
mapnik::proj_transform proj_trans(source, dest);
{
geometry<double> geom = geometry_empty();
-@@ -67,8 +67,8 @@ SECTION("test_projection_4326_3857 - Empty Geometry in Geometry Variant") {
+@@ -67,8 +67,8 @@ SECTION("test_projection_4326_3857 - Emp
SECTION("test_projection_4326_3857 - Point Geometry Object") {
using namespace mapnik::geometry;
@@ -2007,7 +1911,7 @@ index c8ec36243a..3b7abd7420 100644
mapnik::proj_transform proj_trans1(source, dest);
mapnik::proj_transform proj_trans2(dest, source);
point<double> geom1(-97.552175, 35.522895);
-@@ -120,8 +120,8 @@ SECTION("test_projection_4326_3857 - Point Geometry Object") {
+@@ -120,8 +120,8 @@ SECTION("test_projection_4326_3857 - Poi
SECTION("test_projection_4326_3857 - Point Geometry Variant Object") {
using namespace mapnik::geometry;
@@ -2018,7 +1922,7 @@ index c8ec36243a..3b7abd7420 100644
mapnik::proj_transform proj_trans1(source, dest);
mapnik::proj_transform proj_trans2(dest, source);
double x1 = -97.552175;
-@@ -177,8 +177,8 @@ SECTION("test_projection_4326_3857 - Point Geometry Variant Object") {
+@@ -177,8 +177,8 @@ SECTION("test_projection_4326_3857 - Poi
SECTION("test_projection_4326_3857 - Line_String Geometry Object") {
using namespace mapnik::geometry;
@@ -2029,7 +1933,7 @@ index c8ec36243a..3b7abd7420 100644
mapnik::proj_transform proj_trans1(source, dest);
mapnik::proj_transform proj_trans2(dest, source);
line_string<double> geom1;
-@@ -242,8 +242,8 @@ SECTION("test_projection_4326_3857 - Line_String Geometry Object") {
+@@ -242,8 +242,8 @@ SECTION("test_projection_4326_3857 - Lin
SECTION("test_projection_4326_3857 - Line_String Geometry Variant Object") {
using namespace mapnik::geometry;
@@ -2040,7 +1944,7 @@ index c8ec36243a..3b7abd7420 100644
mapnik::proj_transform proj_trans1(source, dest);
mapnik::proj_transform proj_trans2(dest, source);
line_string<double> geom1_;
-@@ -317,8 +317,8 @@ SECTION("test_projection_4326_3857 - Line_String Geometry Variant Object") {
+@@ -317,8 +317,8 @@ SECTION("test_projection_4326_3857 - Lin
SECTION("test_projection_4326_3857 - Polygon Geometry Object") {
using namespace mapnik::geometry;
@@ -2051,7 +1955,7 @@ index c8ec36243a..3b7abd7420 100644
mapnik::proj_transform proj_trans1(source, dest);
mapnik::proj_transform proj_trans2(dest, source);
polygon<double> geom1;
-@@ -406,8 +406,8 @@ SECTION("test_projection_4326_3857 - Polygon Geometry Object") {
+@@ -406,8 +406,8 @@ SECTION("test_projection_4326_3857 - Pol
SECTION("test_projection_4326_3857 - Polygon Geometry Variant Object") {
using namespace mapnik::geometry;
@@ -2062,7 +1966,7 @@ index c8ec36243a..3b7abd7420 100644
mapnik::proj_transform proj_trans1(source, dest);
mapnik::proj_transform proj_trans2(dest, source);
polygon<double> geom1_;
-@@ -491,8 +491,8 @@ SECTION("test_projection_4326_3857 - Polygon Geometry Variant Object") {
+@@ -491,8 +491,8 @@ SECTION("test_projection_4326_3857 - Pol
SECTION("test_projection_4326_3857 - Multi_Point Geometry Object") {
using namespace mapnik::geometry;
@@ -2073,7 +1977,7 @@ index c8ec36243a..3b7abd7420 100644
mapnik::proj_transform proj_trans1(source, dest);
mapnik::proj_transform proj_trans2(dest, source);
multi_point<double> geom1;
-@@ -556,8 +556,8 @@ SECTION("test_projection_4326_3857 - Multi_Point Geometry Object") {
+@@ -556,8 +556,8 @@ SECTION("test_projection_4326_3857 - Mul
SECTION("test_projection_4326_3857 - Multi_Point Geometry Variant Object") {
using namespace mapnik::geometry;
@@ -2084,7 +1988,7 @@ index c8ec36243a..3b7abd7420 100644
mapnik::proj_transform proj_trans1(source, dest);
mapnik::proj_transform proj_trans2(dest, source);
multi_point<double> geom1_;
-@@ -631,8 +631,8 @@ SECTION("test_projection_4326_3857 - Multi_Point Geometry Variant Object") {
+@@ -631,8 +631,8 @@ SECTION("test_projection_4326_3857 - Mul
SECTION("test_projection_4326_3857 - Multi_Line_String Geometry Object") {
using namespace mapnik::geometry;
@@ -2095,7 +1999,7 @@ index c8ec36243a..3b7abd7420 100644
mapnik::proj_transform proj_trans1(source, dest);
mapnik::proj_transform proj_trans2(dest, source);
line_string<double> geom1a;
-@@ -708,8 +708,8 @@ SECTION("test_projection_4326_3857 - Multi_Line_String Geometry Object") {
+@@ -708,8 +708,8 @@ SECTION("test_projection_4326_3857 - Mul
SECTION("test_projection_4326_3857 - Multi_Line_String Geometry Variant Object") {
using namespace mapnik::geometry;
@@ -2106,7 +2010,7 @@ index c8ec36243a..3b7abd7420 100644
mapnik::proj_transform proj_trans1(source, dest);
mapnik::proj_transform proj_trans2(dest, source);
line_string<double> geom1a_;
-@@ -787,8 +787,8 @@ SECTION("test_projection_4326_3857 - Multi_Line_String Geometry Variant Object")
+@@ -787,8 +787,8 @@ SECTION("test_projection_4326_3857 - Mul
SECTION("test_projection_4326_3857 - Multi_Polygon Geometry Object") {
using namespace mapnik::geometry;
@@ -2117,7 +2021,7 @@ index c8ec36243a..3b7abd7420 100644
mapnik::proj_transform proj_trans1(source, dest);
mapnik::proj_transform proj_trans2(dest, source);
polygon<double> geom1a;
-@@ -880,8 +880,8 @@ SECTION("test_projection_4326_3857 - Multi_Polygon Geometry Object") {
+@@ -880,8 +880,8 @@ SECTION("test_projection_4326_3857 - Mul
SECTION("test_projection_4326_3857 - Multi_Polygon Geometry Variant Object") {
using namespace mapnik::geometry;
@@ -2128,7 +2032,7 @@ index c8ec36243a..3b7abd7420 100644
mapnik::proj_transform proj_trans1(source, dest);
mapnik::proj_transform proj_trans2(dest, source);
polygon<double> geom1a_;
-@@ -969,8 +969,8 @@ SECTION("test_projection_4326_3857 - Multi_Polygon Geometry Variant Object") {
+@@ -969,8 +969,8 @@ SECTION("test_projection_4326_3857 - Mul
SECTION("test_projection_4326_3857 - Geometry Collection Object") {
using namespace mapnik::geometry;
@@ -2139,7 +2043,7 @@ index c8ec36243a..3b7abd7420 100644
mapnik::proj_transform proj_trans1(source, dest);
mapnik::proj_transform proj_trans2(dest, source);
polygon<double> geom1a;
-@@ -1062,8 +1062,8 @@ SECTION("test_projection_4326_3857 - Geometry Collection Object") {
+@@ -1062,8 +1062,8 @@ SECTION("test_projection_4326_3857 - Geo
SECTION("test_projection_4326_3857 - Geometry Collection Variant Object") {
using namespace mapnik::geometry;
@@ -2150,7 +2054,7 @@ index c8ec36243a..3b7abd7420 100644
mapnik::proj_transform proj_trans1(source, dest);
mapnik::proj_transform proj_trans2(dest, source);
polygon<double> geom1a_;
-@@ -1149,10 +1149,11 @@ SECTION("test_projection_4326_3857 - Geometry Collection Variant Object") {
+@@ -1149,10 +1149,11 @@ SECTION("test_projection_4326_3857 - Geo
}
} // END SECTION
@@ -2164,7 +2068,7 @@ index c8ec36243a..3b7abd7420 100644
mapnik::proj_transform proj_trans1(source, dest);
mapnik::proj_transform proj_trans2(dest, source);
line_string<double> geom1;
-@@ -1216,8 +1217,8 @@ SECTION("test_projection_4269_3857 - Line_String Geometry Object") {
+@@ -1216,8 +1217,8 @@ SECTION("test_projection_4269_3857 - Lin
SECTION("test_projection_4269_3857 - Point Geometry Object") {
using namespace mapnik::geometry;
@@ -2175,15 +2079,13 @@ index c8ec36243a..3b7abd7420 100644
mapnik::proj_transform proj_trans1(source, dest);
mapnik::proj_transform proj_trans2(dest, source);
point<double> geom1(-97.552175, 35.522895);
-@@ -1267,5 +1268,6 @@ SECTION("test_projection_4269_3857 - Point Geometry Object") {
+@@ -1267,5 +1268,6 @@ SECTION("test_projection_4269_3857 - Poi
}
} // End Section
+#endif // MAPNIK_USE_PROJ
} // End Testcase
-diff --git a/test/unit/geometry/geometry_strategy_test.cpp b/test/unit/geometry/geometry_strategy_test.cpp
-index c08e828cb8..857bdd04a2 100644
--- a/test/unit/geometry/geometry_strategy_test.cpp
+++ b/test/unit/geometry/geometry_strategy_test.cpp
@@ -19,8 +19,8 @@ SECTION("proj and view strategy") {
@@ -2197,8 +2099,6 @@ index c08e828cb8..857bdd04a2 100644
mapnik::proj_transform proj_trans(source, dest);
mapnik::proj_transform proj_trans_rev(dest, source);
mapnik::proj_strategy ps(proj_trans);
-diff --git a/test/unit/projection/proj_transform.cpp b/test/unit/projection/proj_transform.cpp
-index cbaa4e13d2..cda0e1c9fe 100644
--- a/test/unit/projection/proj_transform.cpp
+++ b/test/unit/projection/proj_transform.cpp
@@ -4,20 +4,20 @@
@@ -2230,7 +2130,7 @@ index cbaa4e13d2..cda0e1c9fe 100644
mapnik::proj_transform prj_trans(proj_4326, proj_3857);
double minx = -45.0;
-@@ -43,36 +43,15 @@ SECTION("Test bounding box transforms - 4326 to 3857")
+@@ -43,36 +43,15 @@ SECTION("Test bounding box transforms -
}
@@ -2272,7 +2172,7 @@ index cbaa4e13d2..cda0e1c9fe 100644
double x0 = -180.0;
double y0 = -60.0;
CHECK( prj_trans.forward(&x0,&y0,nullptr,1,1) );
-@@ -84,47 +63,69 @@ SECTION("test pj_transform failure behavior")
+@@ -84,47 +63,69 @@ SECTION("test pj_transform failure behav
CHECK( x1 == Approx(-20037508.3427892439) );
CHECK( y1 == Approx(-8399737.8896366451) );
View it on GitLab: https://salsa.debian.org/debian-gis-team/mapnik/-/commit/936189c120106210a4ae8c519b4564f0665264ec
--
View it on GitLab: https://salsa.debian.org/debian-gis-team/mapnik/-/commit/936189c120106210a4ae8c519b4564f0665264ec
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/20220804/d07f3aac/attachment-0001.htm>
More information about the Pkg-grass-devel
mailing list