# proj 6.2.0 compatibility?

**URL:** https://discourse.vtk.org/t/proj-6-2-0-compatibility/1729
**Category:** Support
**Created:** [September 10, 2019, 2:30am UTC](https://discourse.vtk.org/t/proj-6-2-0-compatibility/1729 "2019-09-10T02:30:53Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![Richard\_Shaw](https://discourse.vtk.org/user_avatar/discourse.vtk.org/richard_shaw/32/865_2.png) [@Richard\_Shaw](https://discourse.vtk.org/u/Richard_Shaw)
#### Post date: [September 10, 2019, 2:30am UTC](https://discourse.vtk.org/t/proj-6-2-0-compatibility/1729/1 "2019-09-10T02:30:53Z")

</div>

I’m trying to help out a fellow Fedora packager. I maintain FreeCAD for Fedora which uses vtk. One of it’s dependencies is of course proj which has been updated to 6.2.0.

While trying to build vtk 8.2.0 with proj 6.2.0 the following error occured:

> [85%] Building CXX object Geovis/Core/CMakeFiles/vtkGeovisCore.dir/vtkGeoProjection.cxx.o  
> cd /builddir/build/BUILD/VTK-8.2.0/build/Geovis/Core && /usr/bin/c++ -DVTK\_IN\_VTK -DvtkGeovisCore\_EXPORTS -I/builddir/build/BUILD/VTK-8.2.0/build/Geovis/Core -I/builddir/build/BUILD/VTK-8.2.0/Geovis/Core -I/builddir/build/BUILD/VTK-8.2.0/build/Common/Core -I/builddir/build/BUILD/VTK-8.2.0/Common/Core -I/builddir/build/BUILD/VTK-8.2.0/build/Utilities/KWIML -I/builddir/build/BUILD/VTK-8.2.0/Utilities/KWIML -I/builddir/build/BUILD/VTK-8.2.0/build/Utilities/KWSys -I/builddir/build/BUILD/VTK-8.2.0/Utilities/KWSys -I/builddir/build/BUILD/VTK-8.2.0/build/ThirdParty/utf8 -I/builddir/build/BUILD/VTK-8.2.0/ThirdParty/utf8 -I/builddir/build/BUILD/VTK-8.2.0/build/Common/DataModel -I/builddir/build/BUILD/VTK-8.2.0/Common/DataModel -I/builddir/build/BUILD/VTK-8.2.0/build/Common/Math -I/builddir/build/BUILD/VTK-8.2.0/Common/Math -I/builddir/build/BUILD/VTK-8.2.0/build/Common/Misc -I/builddir/build/BUILD/VTK-8.2.0/Common/Misc -I/builddir/build/BUILD/VTK-8.2.0/build/Common/System -I/builddir/build/BUILD/VTK-8.2.0/Common/System -I/builddir/build/BUILD/VTK-8.2.0/build/Common/Transforms -I/builddir/build/BUILD/VTK-8.2.0/Common/Transforms -I/builddir/build/BUILD/VTK-8.2.0/build/Common/ExecutionModel -I/builddir/build/BUILD/VTK-8.2.0/Common/ExecutionModel -I/builddir/build/BUILD/VTK-8.2.0/build/Filters/Core -I/builddir/build/BUILD/VTK-8.2.0/Filters/Core -I/builddir/build/BUILD/VTK-8.2.0/build/Filters/General -I/builddir/build/BUILD/VTK-8.2.0/Filters/General -I/builddir/build/BUILD/VTK-8.2.0/build/Common/ComputationalGeometry -I/builddir/build/BUILD/VTK-8.2.0/Common/ComputationalGeometry -I/builddir/build/BUILD/VTK-8.2.0/build/IO/Image -I/builddir/build/BUILD/VTK-8.2.0/IO/Image -I/builddir/build/BUILD/VTK-8.2.0/build/Utilities/DICOMParser -I/builddir/build/BUILD/VTK-8.2.0/Utilities/DICOMParser -I/builddir/build/BUILD/VTK-8.2.0/build/Utilities/MetaIO/vtkmetaio -I/builddir/build/BUILD/VTK-8.2.0/build/Utilities/MetaIO -I/builddir/build/BUILD/VTK-8.2.0/Utilities/MetaIO -I/builddir/build/BUILD/VTK-8.2.0/build/ThirdParty/zlib -I/builddir/build/BUILD/VTK-8.2.0/ThirdParty/zlib -I/builddir/build/BUILD/VTK-8.2.0/build/ThirdParty/jpeg -I/builddir/build/BUILD/VTK-8.2.0/ThirdParty/jpeg -I/builddir/build/BUILD/VTK-8.2.0/build/ThirdParty/png -I/builddir/build/BUILD/VTK-8.2.0/ThirdParty/png -I/builddir/build/BUILD/VTK-8.2.0/build/ThirdParty/tiff -I/builddir/build/BUILD/VTK-8.2.0/ThirdParty/tiff -I/builddir/build/BUILD/VTK-8.2.0/build/IO/XML -I/builddir/build/BUILD/VTK-8.2.0/IO/XML -I/builddir/build/BUILD/VTK-8.2.0/build/IO/Core -I/builddir/build/BUILD/VTK-8.2.0/IO/Core -I/builddir/build/BUILD/VTK-8.2.0/build/ThirdParty/doubleconversion -I/builddir/build/BUILD/VTK-8.2.0/ThirdParty/doubleconversion -I/usr/include/double-conversion -I/builddir/build/BUILD/VTK-8.2.0/build/ThirdParty/lz4 -I/builddir/build/BUILD/VTK-8.2.0/ThirdParty/lz4 -I/builddir/build/BUILD/VTK-8.2.0/build/ThirdParty/lzma -I/builddir/build/BUILD/VTK-8.2.0/ThirdParty/lzma -I/builddir/build/BUILD/VTK-8.2.0/build/IO/XMLParser -I/builddir/build/BUILD/VTK-8.2.0/IO/XMLParser -I/builddir/build/BUILD/VTK-8.2.0/build/ThirdParty/expat -I/builddir/build/BUILD/VTK-8.2.0/ThirdParty/expat -I/builddir/build/BUILD/VTK-8.2.0/build/Imaging/Core -I/builddir/build/BUILD/VTK-8.2.0/Imaging/Core -I/builddir/build/BUILD/VTK-8.2.0/build/Imaging/Sources -I/builddir/build/BUILD/VTK-8.2.0/Imaging/Sources -I/builddir/build/BUILD/VTK-8.2.0/build/Infovis/Core -I/builddir/build/BUILD/VTK-8.2.0/Infovis/Core -I/builddir/build/BUILD/VTK-8.2.0/build/Filters/Extraction -I/builddir/build/BUILD/VTK-8.2.0/Filters/Extraction -I/builddir/build/BUILD/VTK-8.2.0/build/Filters/Statistics -I/builddir/build/BUILD/VTK-8.2.0/Filters/Statistics -I/builddir/build/BUILD/VTK-8.2.0/build/Imaging/Fourier -I/builddir/build/BUILD/VTK-8.2.0/Imaging/Fourier -I/builddir/build/BUILD/VTK-8.2.0/build/ThirdParty/eigen -I/builddir/build/BUILD/VTK-8.2.0/ThirdParty/eigen -I/usr/include/eigen3 -I/builddir/build/BUILD/VTK-8.2.0/build/Infovis/Layout -I/builddir/build/BUILD/VTK-8.2.0/Infovis/Layout -I/builddir/build/BUILD/VTK-8.2.0/build/Filters/Modeling -I/builddir/build/BUILD/VTK-8.2.0/Filters/Modeling -I/builddir/build/BUILD/VTK-8.2.0/build/Filters/Sources -I/builddir/build/BUILD/VTK-8.2.0/Filters/Sources -I/builddir/build/BUILD/VTK-8.2.0/build/Imaging/Hybrid -I/builddir/build/BUILD/VTK-8.2.0/Imaging/Hybrid -I/builddir/build/BUILD/VTK-8.2.0/build/Interaction/Style -I/builddir/build/BUILD/VTK-8.2.0/Interaction/Style -I/builddir/build/BUILD/VTK-8.2.0/build/Rendering/Core -I/builddir/build/BUILD/VTK-8.2.0/Rendering/Core -I/builddir/build/BUILD/VTK-8.2.0/build/Common/Color -I/builddir/build/BUILD/VTK-8.2.0/Common/Color -I/builddir/build/BUILD/VTK-8.2.0/build/Filters/Geometry -I/builddir/build/BUILD/VTK-8.2.0/Filters/Geometry -I/builddir/build/BUILD/VTK-8.2.0/build/Interaction/Widgets -I/builddir/build/BUILD/VTK-8.2.0/Interaction/Widgets -I/builddir/build/BUILD/VTK-8.2.0/build/Filters/Hybrid -I/builddir/build/BUILD/VTK-8.2.0/Filters/Hybrid -I/builddir/build/BUILD/VTK-8.2.0/build/Imaging/Color -I/builddir/build/BUILD/VTK-8.2.0/Imaging/Color -I/builddir/build/BUILD/VTK-8.2.0/build/Imaging/General -I/builddir/build/BUILD/VTK-8.2.0/Imaging/General -I/builddir/build/BUILD/VTK-8.2.0/build/Rendering/Annotation -I/builddir/build/BUILD/VTK-8.2.0/Rendering/Annotation -I/builddir/build/BUILD/VTK-8.2.0/build/Rendering/FreeType -I/builddir/build/BUILD/VTK-8.2.0/Rendering/FreeType -I/builddir/build/BUILD/VTK-8.2.0/build/ThirdParty/freetype -I/builddir/build/BUILD/VTK-8.2.0/ThirdParty/freetype -I/usr/include/freetype2 -I/builddir/build/BUILD/VTK-8.2.0/build/Rendering/Volume -I/builddir/build/BUILD/VTK-8.2.0/Rendering/Volume -I/builddir/build/BUILD/VTK-8.2.0/build/Views/Core -I/builddir/build/BUILD/VTK-8.2.0/Views/Core -I/builddir/build/BUILD/VTK-8.2.0/build/ThirdParty/libproj -I/builddir/build/BUILD/VTK-8.2.0/ThirdParty/libproj -O2 -g -pipe -Wall -Werror=format-security -Wp,-D\_FORTIFY\_SOURCE=2 -Wp,-D\_GLIBCXX\_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D\_UNICODE -DHAVE\_UINTPTR\_T -g -fPIC -fvisibility=hidden -std=c++11 -o CMakeFiles/vtkGeovisCore.dir/vtkGeoProjection.cxx.o -c /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.cxx  
> BUILDSTDERR: In file included from /builddir/build/BUILD/VTK-8.2.0/build/ThirdParty/libproj/vtk\_libproj.h:22,  
> BUILDSTDERR: from /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.cxx:30:  
> BUILDSTDERR: /usr/include/proj\_api.h:115:19: error: conflicting declaration ‘typedef void\* projPJ’  
> BUILDSTDERR: 115 | typedef void _projPJ;  
> BUILDSTDERR: | ^ ~~~~~  
> BUILDSTDERR: In file included from /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.cxx:21:  
> BUILDSTDERR: /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.h:37:13: note: previous declaration as 'typedef PJ_ projPJ’  
> BUILDSTDERR: 37 | typedef PJ\* projPJ;  
> BUILDSTDERR: | ^ ~~~~~  
> BUILDSTDERR: /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.cxx: In static member function ‘static int vtkGeoProjection::GetNumberOfProjections()’:  
> BUILDSTDERR: /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.cxx:83:17: error: ‘PJ\_LIST’ does not name a type  
> BUILDSTDERR: 83 | for ( const PJ\_LIST\* pj = pj\_get\_list\_ref(); pj && pj-\>id; ++ pj )  
> BUILDSTDERR: | ^ ~~~~~~  
> BUILDSTDERR: /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.cxx:83:49: error: expected ‘;’ before ‘pj’  
> BUILDSTDERR: 83 | for ( const PJ\_LIST\* pj = pj\_get\_list\_ref(); pj && pj-\>id; ++ pj )  
> BUILDSTDERR: | ^~~  
> BUILDSTDERR: | ;  
> BUILDSTDERR: /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.cxx:83:50: error: ‘pj’ was not declared in this scope  
> BUILDSTDERR: 83 | for ( const PJ\_LIST\* pj = pj\_get\_list\_ref(); pj && pj-\>id; ++ pj )  
> BUILDSTDERR: | ^~  
> BUILDSTDERR: /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.cxx: In static member function ‘static const char\* vtkGeoProjection::GetProjectionName(int)’:  
> BUILDSTDERR: /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.cxx:94:10: error: ‘pj\_get\_list\_ref’ was not declared in this scope; did you mean ‘pj\_get\_errno\_ref’?  
> BUILDSTDERR: 94 | return pj\_get\_list\_ref()[projection].id;  
> BUILDSTDERR: | ^ ~~~~~~~~~~~~~~  
> BUILDSTDERR: | pj\_get\_errno\_ref  
> BUILDSTDERR: /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.cxx: In static member function ‘static const char\* vtkGeoProjection::GetProjectionDescription(int)’:  
> BUILDSTDERR: /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.cxx:102:10: error: ‘pj\_get\_list\_ref’ was not declared in this scope; did you mean ‘pj\_get\_errno\_ref’?  
> BUILDSTDERR: 102 | return pj\_get\_list\_ref()[projection].descr[0];  
> BUILDSTDERR: | ^ ~~~~~~~~~~~~~~  
> BUILDSTDERR: | pj\_get\_errno\_ref  
> BUILDSTDERR: /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.cxx: In member function ‘int vtkGeoProjection::GetIndex()’:  
> BUILDSTDERR: /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.cxx:147:15: error: ‘PJ\_LIST’ does not name a type  
> BUILDSTDERR: 147 | for ( const PJ\_LIST\* proj = pj\_get\_list\_ref(); proj && proj-\>id; ++ proj, ++ i )  
> BUILDSTDERR: | ^ ~~~~~~  
> BUILDSTDERR: /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.cxx:147:49: error: expected ‘;’ before ‘proj’  
> BUILDSTDERR: 147 | for ( const PJ\_LIST\* proj = pj\_get\_list\_ref(); proj && proj-\>id; ++ proj, ++ i )  
> BUILDSTDERR: | ^ ~~~~  
> BUILDSTDERR: | ;  
> BUILDSTDERR: /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.cxx:147:50: error: ‘proj’ was not declared in this scope; did you mean ‘projUV’?  
> BUILDSTDERR: 147 | for ( const PJ\_LIST\* proj = pj\_get\_list\_ref(); proj && proj-\>id; ++ proj, ++ i )  
> BUILDSTDERR: | ^~~~  
> BUILDSTDERR: | projUV  
> BUILDSTDERR: /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.cxx: In member function ‘const char\* vtkGeoProjection::GetDescription()’:  
> BUILDSTDERR: /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.cxx:164:26: error: invalid use of incomplete type ‘PJ’ {aka ‘struct PJconsts’}  
> BUILDSTDERR: 164 | return this-\>Projection-\>descr;  
> BUILDSTDERR: | ^~  
> BUILDSTDERR: In file included from /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.cxx:21:  
> BUILDSTDERR: /builddir/build/BUILD/VTK-8.2.0/Geovis/Core/vtkGeoProjection.h:35:8: note: forward declaration of ‘PJ’ {aka ‘struct PJconsts’}  
> BUILDSTDERR: 35 | struct PJconsts;  
> BUILDSTDERR: | ^ ~~~~~~~

The full and lengthy log can be found here:  
[https://kojipkgs.fedoraproject.org//work/tasks/2716/37552716/build.log](https://kojipkgs.fedoraproject.org//work/tasks/2716/37552716/build.log)

GCC 9.2.1…

Thanks,  
Richard

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.vtk.org/u/ben.boeckel)
#### Post date: [October 10, 2019, 7:27pm UTC](https://discourse.vtk.org/t/proj-6-2-0-compatibility/1729/2 "2019-10-10T19:27:33Z")

</div>

I don’t think we’ve updated to support proj 6 yet. @danlipsa do you know if we’ve done this for `master` and have patches that we can backport?

---

<div class="post-metadata">

### Author: ![Richard\_Shaw](https://discourse.vtk.org/user_avatar/discourse.vtk.org/richard_shaw/32/865_2.png) [@Richard\_Shaw](https://discourse.vtk.org/u/Richard_Shaw)
#### Post date: [October 10, 2019, 8:03pm UTC](https://discourse.vtk.org/t/proj-6-2-0-compatibility/1729/3 "2019-10-10T20:03:12Z")

</div>

I only had to apply a small patch for it to work on Fedora…

[https://src.fedoraproject.org/rpms/vtk/blob/master/f/vtk-proj6\_compat.patch](https://src.fedoraproject.org/rpms/vtk/blob/master/f/vtk-proj6_compat.patch)

Thanks,  
Richard

---

<div class="post-metadata">

### Author: ![danlipsa](https://discourse.vtk.org/user_avatar/discourse.vtk.org/danlipsa/32/390_2.png) [@danlipsa](https://discourse.vtk.org/u/danlipsa)
#### Post date: [October 10, 2019, 8:05pm UTC](https://discourse.vtk.org/t/proj-6-2-0-compatibility/1729/4 "2019-10-10T20:05:36Z")

</div>

True, we are still at proj 4.4 it seems. I remember a patch for updating some of our classes to work with later proj 6.0 but I have not tried it.

[https://gitlab.kitware.com/vtk/vtk/merge\_requests/5582](https://gitlab.kitware.com/vtk/vtk/merge_requests/5582)

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.vtk.org/u/ben.boeckel)
#### Post date: [October 10, 2019, 8:22pm UTC](https://discourse.vtk.org/t/proj-6-2-0-compatibility/1729/5 "2019-10-10T20:22:27Z")

</div>

The Fedora patch and ours look pretty much the same. Looks like 9.0 will have official support for it at least; I don’t think another 8.2.x release is planned at all.

---

<div class="post-metadata">

### Author: ![Richard\_Shaw](https://discourse.vtk.org/user_avatar/discourse.vtk.org/richard_shaw/32/865_2.png) [@Richard\_Shaw](https://discourse.vtk.org/u/Richard_Shaw)
#### Post date: [October 10, 2019, 8:29pm UTC](https://discourse.vtk.org/t/proj-6-2-0-compatibility/1729/6 "2019-10-10T20:29:15Z")

</div>

Yes, I adapted it from current git. I hope it works but it at least compiles.
