Bug 1565050

Summary: GDAL: wrong declaration in /usr/include/gdal/gdal_priv.h (with patch)
Product: [Fedora] Fedora Reporter: markusN <neteler>
Component: gdalAssignee: Devrim Gündüz <devrim>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 27CC: alex, devrim, jmlich83, mmahut, oliver, orion, pavel.lisy, pertusus, praiskup, volker27
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: gdal-2.1.4-5.1.fc27 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-18 01:23:13 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
COPR builder log with compile error in gdal_priv.h
none
Patch fixing the problem, extracted from GDAL trac none

Description markusN 2018-04-09 09:02:15 UTC
Created attachment 1419154 [details]
COPR builder log with compile error in gdal_priv.h

Description of problem:

I am trying to compile PDAL on COPR. The compilation fails due to the rather old GDAL in F26 and F27 which lacks a later bugfix.

Indeed it commonly compiles but due to Fedora's -Werror=pedantic setting the warning is turned into a compiler error, see attachment (yet available at
https://copr-be.cloud.fedoraproject.org/results/neteler/pdal/fedora-27-x86_64/00738791-PDAL/builder-live.log):

...
/usr/bin/c++  -DUNIX -Dpdal_base_EXPORTS -I/builddir/build/BUILD/PDAL-1.7.0-src/vendor/gtest/include -I/builddir/build/BUILD/PDAL-1.7.0-src/vendor/gtest -I/builddir/build/BUILD/PDAL-1.7.0-src -I/builddir/build/BUILD/PDAL-1.7.0-src/include -I/builddir/build/BUILD/PDAL-1.7.0-src/vendor -I/builddir/build/BUILD/PDAL-1.7.0-src/vendor/eigen -I/builddir/build/BUILD/PDAL-1.7.0-src/vendor/pdalboost -I/usr/include/gdal -I/usr/include/libgeotiff -isystem /usr/local/include -I/usr/include/libxml2  -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -DNDEBUG -fPIC   -std=c++11 -Wno-implicit-fallthrough -Wno-int-in-bool-context -Wno-dangling-else -Wno-noexcept-type -Wextra -Wpedantic -Werror -Wall -Wno-unused-parameter -Wno-unused-variable -Wpointer-arith -Wcast-align -Wcast-qual -Wredundant-decls -Wno-long-long -Wno-unknown-pragmas -Wno-deprecated-declarations -o CMakeFiles/pdal_base.dir/filters/ColorinterpFilter.cpp.o -c /builddir/build/BUILD/PDAL-1.7.0-src/filters/ColorinterpFilter.cpp
In file included from /builddir/build/BUILD/PDAL-1.7.0-src/pdal/GDALUtils.hpp:51:0,
                 from /builddir/build/BUILD/PDAL-1.7.0-src/filters/ColorinterpFilter.hpp:43,
                 from /builddir/build/BUILD/PDAL-1.7.0-src/filters/ColorinterpFilter.cpp:35:
/usr/include/gdal/gdal_priv.h:110:54: error: extra ';' [-Werror=pedantic]
     CPL_DISALLOW_COPY_ASSIGN(GDALMultiDomainMetadata);
                                                      ^
/usr/include/gdal/gdal_priv.h:229:51: error: extra ';' [-Werror=pedantic]
     CPL_DISALLOW_COPY_ASSIGN(GDALDefaultOverviews);
                                                   ^
/usr/include/gdal/gdal_priv.h:269:43: error: extra ';' [-Werror=pedantic]
     CPL_DISALLOW_COPY_ASSIGN(GDALOpenInfo);
                                           ^
/usr/include/gdal/gdal_priv.h:564:42: error: extra ';' [-Werror=pedantic]
     CPL_DISALLOW_COPY_ASSIGN(GDALDataset);
                                          ^
/usr/include/gdal/gdal_priv.h:651:46: error: extra ';' [-Werror=pedantic]
     CPL_DISALLOW_COPY_ASSIGN(GDALRasterBlock);
                                              ^
/usr/include/gdal/gdal_priv.h:925:45: error: extra ';' [-Werror=pedantic]
     CPL_DISALLOW_COPY_ASSIGN(GDALRasterBand);
                                             ^
/usr/include/gdal/gdal_priv.h:1126:41: error: extra ';' [-Werror=pedantic]
     CPL_DISALLOW_COPY_ASSIGN(GDALDriver);
                                         ^

Affected are F26 and F27 since an older GDAL 2.1 is provided.

Solution:
This declaration issue got fixed in 2016 by GDAL Changeset 35751:
"Remove semi-colon at end of use of CPL_DISALLOW_COPY_ASSIGN macro (patch by behrisch, fixes https://trac.osgeo.org/gdal/ticket/6685)"

Please fix GDAL in F26 and F27 accordingly with this "trivial" patch in order to deliver PDAL COPR packages. Thanks!

Comment 1 markusN 2018-04-10 10:33:54 UTC
Created attachment 1419821 [details]
Patch fixing the problem, extracted from GDAL trac

Comment 2 Fedora Update System 2018-04-10 20:10:20 UTC
gdal-2.1.3-2.1.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2018-78b9d2b164

Comment 3 Fedora Update System 2018-04-10 20:10:35 UTC
gdal-2.1.4-5.1.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2018-b996d9f1cd

Comment 4 Fedora Update System 2018-04-11 22:04:14 UTC
gdal-2.1.3-2.1.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-78b9d2b164

Comment 5 Fedora Update System 2018-04-11 22:39:29 UTC
gdal-2.1.4-5.1.fc27 has been pushed to the Fedora 27 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-b996d9f1cd

Comment 6 Fedora Update System 2018-04-18 01:23:13 UTC
gdal-2.1.4-5.1.fc27 has been pushed to the Fedora 27 stable repository. If problems still persist, please make note of it in this bug report.