Opened 12 years ago

Closed 11 years ago

#4630 closed defect (fixed)

LibDap test for version >= 3.10 fails due to libxml dependencies in headers

Reported by: Sharpie Owned by: rburhum
Priority: normal Milestone:
Component: ConfigBuild Version: 1.9.0
Severity: normal Keywords:
Cc:

Description

The test on line 2277 of configure.in fails on my system because insufficient header include paths are provided to compile the test program:

grendel:gdal-1.9.0 sharpie$ c++ islibdappost310.cpp -c -I/usr/local/include -I/usr/local/include/libdap -I/usr/local/include/dap
In file included from /usr/local/include/libdap/AttrTable.h:54,
                 from /usr/local/include/libdap/DAS.h:46,
                 from /usr/local/include/libdap/Connect.h:62,
                 from islibdappost310.cpp:1:
/usr/local/include/libdap/XMLWriter.h:11:29: error: libxml/encoding.h: No such file or directory
/usr/local/include/libdap/XMLWriter.h:12:30: error: libxml/xmlwriter.h: No such file or directory
islibdappost310.cpp:2:47: warning: missing terminating ' character
islibdappost310.cpp:2: error: missing terminating ' character
In file included from /usr/local/include/libdap/AttrTable.h:54,
                 from /usr/local/include/libdap/DAS.h:46,
                 from /usr/local/include/libdap/Connect.h:62,
                 from islibdappost310.cpp:1:
/usr/local/include/libdap/XMLWriter.h:23: error: ‘xmlTextWriterPtr’ does not name a type
/usr/local/include/libdap/XMLWriter.h:24: error: ‘xmlBufferPtr’ does not name a type
/usr/local/include/libdap/XMLWriter.h:36: error: ‘xmlTextWriterPtr’ does not name a type

The test fails, so GDAL assumes the LibDAP version is < 3.10 which causes compilation to fail later on due to requirements for depreciated DAP headers that no longer exist. The test would succeed if it had the preprocessor flag -I/usr/include/libxml2, which I add to CPPFLAGS before running configure.

Possible solutions:

  • Add ${CPPFLAGS} to the test on line 2277 of configure.in so that the user can give configure some direction if things are in weird places.
  • On line 2269 of configure.in, initialize DODS_INC using dap-config --cflags if dap-config is available. On my system this returns everything necessary to find the headers needed by LibDAP:
grendel:gdal-1.9.0 sharpie$ dap-config --cflags
-I/usr/local/Cellar/libdap/3.11.2/include/libdap -I/usr/include/libxml2

Change History (4)

comment:1 by Even Rouault, 12 years ago

Do people actually use this DODS driver ? I'm wondering if it is still functional. I've noticed that building regularly breaks as the libdap interface breaks. Perhaps we should just remove those drivers ?

comment:2 by Sharpie, 11 years ago

Still broken in 1.9.2.

It may be the case that LibDAP changes its interface rapidly and is not worth the trouble of supporting anymore. However, that issue is somewhat external to the problem occurring here: the GDAL configure script makes no allowance for external headers that LibDAP may require when such information is obtainable from dap-config and there is no pathway for the user to provide assistance.

comment:3 by rburhum, 11 years ago

Owner: changed from warmerdam to rburhum
Status: newassigned

I can reproduce this on OSX.

comment:4 by rburhum, 11 years ago

Resolution: fixed
Status: assignedclosed

Fixed in trunk r25197

Note: See TracTickets for help on using tickets.