Opened 8 years ago

Last modified 8 years ago

#2382 new defect

OSSIM 1.8.20-3 fails to build with GEOS 3.6.0

Reported by: Bas Couwenberg Owned by: kmelero
Priority: highest Milestone: OMAR Dec 2012
Component: Other Version: ossim/OMAR 1.8.14-3
Severity: blocker Keywords:
Cc: Bas Couwenberg

Description

GEOS 3.6.0 has been released, and unfortunately OSSIM 1.8.20-3 fails to build with it:

[ 14%] Building CXX object src/ossim/CMakeFiles/ossim.dir/base/ossimPolyArea2d.cpp.o
cd /build/ossim-1.8.20.3+ds/debian/build/src/ossim && /usr/bin/c++   -DOSSIMMAKINGDLL -Dossim_EXPORTS -I/build/ossim-1.8.20.3+ds/ossim/include -I/build/ossim-1.8.20.3+ds/debian/build/include -I/usr/include/geos -I/usr/include/geotiff -I/usr/include/x86_64-linux-gnu -I/usr/include/freetype2  -g -O2 -fdebug-prefix-map=/build/ossim-1.8.20.3+ds=. -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -O3 -DNDEBUG -fPIC    -o CMakeFiles/ossim.dir/base/ossimPolyArea2d.cpp.o -c /build/ossim-1.8.20.3+ds/ossim/src/ossim/base/ossimPolyArea2d.cpp
[ 14%] Building CXX object src/ossim/CMakeFiles/ossim.dir/base/ossimPolyLine.cpp.o
cd /build/ossim-1.8.20.3+ds/debian/build/src/ossim && /usr/bin/c++   -DOSSIMMAKINGDLL -Dossim_EXPORTS -I/build/ossim-1.8.20.3+ds/ossim/include -I/build/ossim-1.8.20.3+ds/debian/build/include -I/usr/include/geos -I/usr/include/geotiff -I/usr/include/x86_64-linux-gnu -I/usr/include/freetype2  -g -O2 -fdebug-prefix-map=/build/ossim-1.8.20.3+ds=. -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -O3 -DNDEBUG -fPIC    -o CMakeFiles/ossim.dir/base/ossimPolyLine.cpp.o -c /build/ossim-1.8.20.3+ds/ossim/src/ossim/base/ossimPolyLine.cpp
/build/ossim-1.8.20.3+ds/ossim/src/ossim/base/ossimPolyArea2d.cpp: In constructor 'ossimGeometryFactoryWrapper::ossimGeometryFactoryWrapper()':
/build/ossim-1.8.20.3+ds/ossim/src/ossim/base/ossimPolyArea2d.cpp:39:61: error: 'geos::geom::GeometryFactory::GeometryFactory(const geos::geom::PrecisionModel*, int)' is protected within this context
       m_geomFactory = new geos::geom::GeometryFactory(pm, -1);
                                                             ^
In file included from /build/ossim-1.8.20.3+ds/ossim/src/ossim/base/ossimPolyArea2d.cpp:15:0:
/usr/include/geos/geom/GeometryFactory.h:464:2: note: declared protected here
  GeometryFactory(const PrecisionModel* pm, int newSRID);
  ^~~~~~~~~~~~~~~
/build/ossim-1.8.20.3+ds/ossim/src/ossim/base/ossimPolyArea2d.cpp: In destructor 'virtual ossimGeometryFactoryWrapper::~ossimGeometryFactoryWrapper()':
/build/ossim-1.8.20.3+ds/ossim/src/ossim/base/ossimPolyArea2d.cpp:41:68: error: 'virtual geos::geom::GeometryFactory::~GeometryFactory()' is protected within this context
    virtual ~ossimGeometryFactoryWrapper(){if(m_geomFactory) delete m_geomFactory;m_geomFactory=0;}
                                                                    ^~~~~~~~~~~~~
In file included from /build/ossim-1.8.20.3+ds/ossim/src/ossim/base/ossimPolyArea2d.cpp:15:0:
/usr/include/geos/geom/GeometryFactory.h:474:10: note: declared protected here
  virtual ~GeometryFactory();
          ^
/build/ossim-1.8.20.3+ds/ossim/src/ossim/base/ossimPolyArea2d.cpp: In member function 'void ossimPolyArea2d::recurseVisibleGeometries(std::vector<ossimPolygon>&, const geos::geom::Geometry*) const':
/build/ossim-1.8.20.3+ds/ossim/src/ossim/base/ossimPolyArea2d.cpp:168:21: warning: 'template<class> class std::auto_ptr' is deprecated [-Wdeprecated-declarations]
                std::auto_ptr<const geos::geom::Point> point(lineString->getPointN(idx));
                     ^~~~~~~~
In file included from /usr/include/c++/6/bits/locale_conv.h:41:0,
                 from /usr/include/c++/6/locale:43,
                 from /usr/include/c++/6/iomanip:43,
                 from /build/ossim-1.8.20.3+ds/ossim/include/ossim/base/ossimColumnVector3d.h:17,
                 from /build/ossim-1.8.20.3+ds/ossim/include/ossim/base/ossimDpt3d.h:24,
                 from /build/ossim-1.8.20.3+ds/ossim/include/ossim/base/ossimGpt.h:23,
                 from /build/ossim-1.8.20.3+ds/ossim/include/ossim/base/ossimPolyArea2d.h:13,
                 from /build/ossim-1.8.20.3+ds/ossim/src/ossim/base/ossimPolyArea2d.cpp:7:
/usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
/build/ossim-1.8.20.3+ds/ossim/src/ossim/base/ossimPolyArea2d.cpp: In member function 'void ossimPolyArea2d::recurseHoles(std::vector<ossimPolygon>&, const geos::geom::Geometry*) const':
/build/ossim-1.8.20.3+ds/ossim/src/ossim/base/ossimPolyArea2d.cpp:210:24: warning: 'template<class> class std::auto_ptr' is deprecated [-Wdeprecated-declarations]
                   std::auto_ptr<const geos::geom::Point> point(lineString->getPointN(idx));
                        ^~~~~~~~
In file included from /usr/include/c++/6/bits/locale_conv.h:41:0,
                 from /usr/include/c++/6/locale:43,
                 from /usr/include/c++/6/iomanip:43,
                 from /build/ossim-1.8.20.3+ds/ossim/include/ossim/base/ossimColumnVector3d.h:17,
                 from /build/ossim-1.8.20.3+ds/ossim/include/ossim/base/ossimDpt3d.h:24,
                 from /build/ossim-1.8.20.3+ds/ossim/include/ossim/base/ossimGpt.h:23,
                 from /build/ossim-1.8.20.3+ds/ossim/include/ossim/base/ossimPolyArea2d.h:13,
                 from /build/ossim-1.8.20.3+ds/ossim/src/ossim/base/ossimPolyArea2d.cpp:7:
/usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
/build/ossim-1.8.20.3+ds/ossim/src/ossim/base/ossimPolyArea2d.cpp: In member function 'void ossimPolyArea2d::recurseCompleteGeometries(std::vector<ossimPolyArea2d>&, const geos::geom::Geometry*) const':
/build/ossim-1.8.20.3+ds/ossim/src/ossim/base/ossimPolyArea2d.cpp:247:21: warning: 'template<class> class std::auto_ptr' is deprecated [-Wdeprecated-declarations]
                std::auto_ptr<const geos::geom::Point> point(lineString->getPointN(idx));
                     ^~~~~~~~
In file included from /usr/include/c++/6/bits/locale_conv.h:41:0,
                 from /usr/include/c++/6/locale:43,
                 from /usr/include/c++/6/iomanip:43,
                 from /build/ossim-1.8.20.3+ds/ossim/include/ossim/base/ossimColumnVector3d.h:17,
                 from /build/ossim-1.8.20.3+ds/ossim/include/ossim/base/ossimDpt3d.h:24,
                 from /build/ossim-1.8.20.3+ds/ossim/include/ossim/base/ossimGpt.h:23,
                 from /build/ossim-1.8.20.3+ds/ossim/include/ossim/base/ossimPolyArea2d.h:13,
                 from /build/ossim-1.8.20.3+ds/ossim/src/ossim/base/ossimPolyArea2d.cpp:7:
/usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
/build/ossim-1.8.20.3+ds/ossim/src/ossim/base/ossimPolyArea2d.cpp:263:24: warning: 'template<class> class std::auto_ptr' is deprecated [-Wdeprecated-declarations]
                   std::auto_ptr<const geos::geom::Point> point(lineString->getPointN(idx));
                        ^~~~~~~~
In file included from /usr/include/c++/6/bits/locale_conv.h:41:0,
                 from /usr/include/c++/6/locale:43,
                 from /usr/include/c++/6/iomanip:43,
                 from /build/ossim-1.8.20.3+ds/ossim/include/ossim/base/ossimColumnVector3d.h:17,
                 from /build/ossim-1.8.20.3+ds/ossim/include/ossim/base/ossimDpt3d.h:24,
                 from /build/ossim-1.8.20.3+ds/ossim/include/ossim/base/ossimGpt.h:23,
                 from /build/ossim-1.8.20.3+ds/ossim/include/ossim/base/ossimPolyArea2d.h:13,
                 from /build/ossim-1.8.20.3+ds/ossim/src/ossim/base/ossimPolyArea2d.cpp:7:
/usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~

OSSIM is one of the few GEOS reverse dependencies that doesn't limit itself to the C API, which you should consider as it is very stable unlike the C++ API.

Change History (1)

comment:1 by Bas Couwenberg, 8 years ago

From the GEOS 3.6.0 NEWS file:

- C++ API changes:
  - Automatic memory management for GeometryFactory objects
Note: See TracTickets for help on using tickets.