Bug#729875: Bug #729875: gdal: FTBFS: libxml/encoding.h: No such file or directory

Michael Banck mbanck at debian.org
Fri Nov 22 19:35:14 UTC 2013


tags 729875 +patch

Hi,

On Mon, Nov 18, 2013 at 03:04:51PM +0100, Roland Stigge wrote:
> Source: gdal
> Version: 1.9.0-3.1
> Severity: serious
> 
> Hi!
> 
> gdal FTBFS like this:
> 
> ===================================================================
> make[3]: Entering directory `/«PKGBUILDDIR»/frmts/dods'
> /bin/bash /«PKGBUILDDIR»/libtool --mode=compile --tag=CXX g++ -g -O2  -Wall  -I/«PKGBUILDDIR»/port -I/«PKGBUILDDIR»/gcore -I/«PKGBUILDDIR»/alg -I/«PKGBUILDDIR»/ogr -I/«PKGBUILDDIR»/ogr/ogrsf_frmts -DOGR_ENABLED -I/«PKGBUILDDIR»/port -I/usr/include  -I/usr/include -I/usr/include/libdap -I/usr/include/dap -DLIBDAP_39 -c -o ../o/dodsdataset2.lo dodsdataset2.cpp
> libtool: compile:  g++ -g -O2 -Wall -I/«PKGBUILDDIR»/port -I/«PKGBUILDDIR»/gcore -I/«PKGBUILDDIR»/alg -I/«PKGBUILDDIR»/ogr -I/«PKGBUILDDIR»/ogr/ogrsf_frmts -DOGR_ENABLED -I/«PKGBUILDDIR»/port -I/usr/include -I/usr/include -I/usr/include/libdap -I/usr/include/dap -DLIBDAP_39 -c dodsdataset2.cpp  -fPIC -DPIC -o ../o/.libs/dodsdataset2.o
> In file included from /usr/include/libdap/AttrTable.h:54:0,
>                  from /usr/include/libdap/BaseType.h:57,
>                  from dodsdataset2.cpp:38:
> /usr/include/libdap/XMLWriter.h:33:29: fatal error: libxml/encoding.h: No such file or directory
> compilation terminated.
> make[3]: *** [../o/dodsdataset2.lo] Error 1
> make[2]: *** [dods-install-obj] Error 2
> make[3]: Leaving directory `/«PKGBUILDDIR»/frmts/dods'
> make[2]: Leaving directory `/«PKGBUILDDIR»/frmts'
> make[1]: *** [frmts-target] Error 2
> ===================================================================
> 
> Looks like pkg-config of libdap isn't used correctly. Would include
> -I/usr/include/libxml2 etc.

Attached is a debdiff, taken from upstream changeset r25197.


Michael
-------------- next part --------------
diff -Nru gdal-1.9.0/debian/changelog gdal-1.9.0/debian/changelog
--- gdal-1.9.0/debian/changelog	2012-09-18 17:26:01.000000000 +0200
+++ gdal-1.9.0/debian/changelog	2013-11-22 20:07:56.000000000 +0100
@@ -1,3 +1,12 @@
+gdal (1.9.0-3.2) unstable; urgency=low
+
+  * Non-maintainer upload. 
+  * debian/patches/libdap-xml2-include:  New patch, fixes required includes for
+    libdap, taken from upstream subversion revison 25197.
+    (Closes: #729875)
+
+ -- Michael Banck <mbanck at debian.org>  Fri, 22 Nov 2013 20:02:42 +0100
+
 gdal (1.9.0-3.1) unstable; urgency=low
 
   * Non-maintainer upload.
diff -Nru gdal-1.9.0/debian/patches/libdap-xml2-include gdal-1.9.0/debian/patches/libdap-xml2-include
--- gdal-1.9.0/debian/patches/libdap-xml2-include	1970-01-01 01:00:00.000000000 +0100
+++ gdal-1.9.0/debian/patches/libdap-xml2-include	2013-11-22 20:07:31.000000000 +0100
@@ -0,0 +1,153 @@
+Index: gdal-1.9.0/configure.in
+===================================================================
+--- gdal-1.9.0.orig/configure.in	2013-11-22 20:01:17.834062894 +0100
++++ gdal-1.9.0/configure.in	2013-11-22 20:07:26.743982986 +0100
+@@ -2269,37 +2269,49 @@
+     DODS_INC="-I$with_dods_root/include -I$with_dods_root/include/libdap -I$with_dods_root/include/dap"
+     DODS_BIN=$with_dods_root/bin
+ 
+-dnl Test if we have libdap >= 3.10
+-dnl From libdap 3.10, AISConnect.h has been renamed as Connect.h
+-rm -f islibdappost310.*
+-echo '#include "Connect.h"' > islibdappost310.cpp
+-echo 'int main(int argc, char** argv) { return 0; } ' >> islibdappost310.cpp
+-if test -z "`${CXX} islibdappost310.cpp -c ${DODS_INC} 2>&1`" ; then
+-dnl yes, libdap >= 3.10
+-    DODS_INC="$DODS_INC -DLIBDAP_310 -DLIBDAP_39"
+-    AC_MSG_RESULT([libdap >= 3.10])
+-else
+-    AC_MSG_RESULT([libdap < 3.10])
+-
+-    dnl Test if we have libdap < 3.9
+-    dnl Before libdap < 3.9, DAS derived from AttrTable class
+-    dnl I wish they had defines with version numbers instead of this test !
+-    rm -f islibdappre39.*
+-    echo '#include "DAS.h"' > islibdappre39.cpp
+-    echo '#include "AttrTable.h"' >> islibdappre39.cpp
+-    echo 'using namespace libdap;' >> islibdappre39.cpp
+-    echo 'int main(int argc, char** argv) { DAS oDAS; AttrTable& oAttrTable = oDAS; } ' >> islibdappre39.cpp
+-    if test -z "`${CXX} islibdappre39.cpp -c ${DODS_INC} 2>&1`" ; then
+-    dnl yes, libdap < 3.9
+-        AC_MSG_RESULT([libdap < 3.9])
++    dnl Check libdap version the sane way (if possible through dap-config)
++    if test -x $DODS_BIN/dap-config ; then
++        LIBDAP_VER=`${DODS_BIN}/dap-config --version |awk '{print \$2}'`
++        LIBDAP_CFLAGS=`${DODS_BIN}/dap-config --cflags`
++        dnl The dods driver needs LIBDAP_320 and LIBDAP_39 defined to include the right headers
++        DODS_INC="$DODS_INC $LIBDAP_CFLAGS -DLIBDAP_310 -DLIBDAP_39"
++        dnl libs from dap-config gets added further down
++        AC_MSG_RESULT([libdap $LIBDAP_VER])
+     else
+-        DODS_INC="$DODS_INC -DLIBDAP_39"
+-        AC_MSG_RESULT([libdap >= 3.9])
+-    fi
+-    rm -f islibdappre39.*
++        dnl Check the version by compiling test programs 
++
++        dnl Test if we have libdap >= 3.10
++        dnl From libdap 3.10, AISConnect.h has been renamed as Connect.h
++        rm -f islibdappost310.*
++        echo '#include "Connect.h"' > islibdappost310.cpp
++        echo 'int main(int argc, char** argv) { return 0; } ' >> islibdappost310.cpp
++        if test -z "`${CXX} islibdappost310.cpp -c ${DODS_INC} ${CPPFLAGS} 2>&1`" ; then
++        dnl yes, libdap >= 3.10
++            DODS_INC="$DODS_INC -DLIBDAP_310 -DLIBDAP_39"
++            AC_MSG_RESULT([libdap >= 3.10])
++        else
++            AC_MSG_RESULT([libdap < 3.10])
+ 
+-fi
+-rm -f islibdappost310.*
++            dnl Test if we have libdap < 3.9
++            dnl Before libdap < 3.9, DAS derived from AttrTable class
++            dnl I wish they had defines with version numbers instead of this test !
++            rm -f islibdappre39.*
++            echo '#include "DAS.h"' > islibdappre39.cpp
++            echo '#include "AttrTable.h"' >> islibdappre39.cpp
++            echo 'using namespace libdap;' >> islibdappre39.cpp
++            echo 'int main(int argc, char** argv) { DAS oDAS; AttrTable& oAttrTable = oDAS; } ' >> islibdappre39.cpp
++            if test -z "`${CXX} islibdappre39.cpp -c ${DODS_INC} 2>&1`" ; then
++            dnl yes, libdap < 3.9
++                AC_MSG_RESULT([libdap < 3.9])
++            else
++                DODS_INC="$DODS_INC -DLIBDAP_39"
++                AC_MSG_RESULT([libdap >= 3.9])
++            fi
++            rm -f islibdappre39.*
++
++        fi
++        rm -f islibdappost310.*
++    fi
+ 
+ 
+     dnl Add the DODS libraries to LIBS
+Index: gdal-1.9.0/configure
+===================================================================
+--- gdal-1.9.0.orig/configure	2013-11-22 20:07:26.711982819 +0100
++++ gdal-1.9.0/configure	2013-11-22 20:07:26.751983020 +0100
+@@ -24194,34 +24194,43 @@
+     DODS_INC="-I$with_dods_root/include -I$with_dods_root/include/libdap -I$with_dods_root/include/dap"
+     DODS_BIN=$with_dods_root/bin
+ 
+-rm -f islibdappost310.*
+-echo '#include "Connect.h"' > islibdappost310.cpp
+-echo 'int main(int argc, char** argv) { return 0; } ' >> islibdappost310.cpp
+-if test -z "`${CXX} islibdappost310.cpp -c ${DODS_INC} 2>&1`" ; then
+-    DODS_INC="$DODS_INC -DLIBDAP_310 -DLIBDAP_39"
+-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: libdap >= 3.10" >&5
++        if test -x $DODS_BIN/dap-config ; then
++        LIBDAP_VER=`${DODS_BIN}/dap-config --version |awk '{print \$2}'`
++        LIBDAP_CFLAGS=`${DODS_BIN}/dap-config --cflags`
++                DODS_INC="$DODS_INC $LIBDAP_CFLAGS -DLIBDAP_310 -DLIBDAP_39"
++                { $as_echo "$as_me:${as_lineno-$LINENO}: result: libdap $LIBDAP_VER" >&5
++$as_echo "libdap $LIBDAP_VER" >&6; }
++    else
++
++                        rm -f islibdappost310.*
++        echo '#include "Connect.h"' > islibdappost310.cpp
++        echo 'int main(int argc, char** argv) { return 0; } ' >> islibdappost310.cpp
++        if test -z "`${CXX} islibdappost310.cpp -c ${DODS_INC} ${CPPFLAGS} 2>&1`" ; then
++                    DODS_INC="$DODS_INC -DLIBDAP_310 -DLIBDAP_39"
++            { $as_echo "$as_me:${as_lineno-$LINENO}: result: libdap >= 3.10" >&5
+ $as_echo "libdap >= 3.10" >&6; }
+-else
+-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: libdap < 3.10" >&5
++        else
++            { $as_echo "$as_me:${as_lineno-$LINENO}: result: libdap < 3.10" >&5
+ $as_echo "libdap < 3.10" >&6; }
+ 
+-                rm -f islibdappre39.*
+-    echo '#include "DAS.h"' > islibdappre39.cpp
+-    echo '#include "AttrTable.h"' >> islibdappre39.cpp
+-    echo 'using namespace libdap;' >> islibdappre39.cpp
+-    echo 'int main(int argc, char** argv) { DAS oDAS; AttrTable& oAttrTable = oDAS; } ' >> islibdappre39.cpp
+-    if test -z "`${CXX} islibdappre39.cpp -c ${DODS_INC} 2>&1`" ; then
+-            { $as_echo "$as_me:${as_lineno-$LINENO}: result: libdap < 3.9" >&5
++                                                rm -f islibdappre39.*
++            echo '#include "DAS.h"' > islibdappre39.cpp
++            echo '#include "AttrTable.h"' >> islibdappre39.cpp
++            echo 'using namespace libdap;' >> islibdappre39.cpp
++            echo 'int main(int argc, char** argv) { DAS oDAS; AttrTable& oAttrTable = oDAS; } ' >> islibdappre39.cpp
++            if test -z "`${CXX} islibdappre39.cpp -c ${DODS_INC} 2>&1`" ; then
++                            { $as_echo "$as_me:${as_lineno-$LINENO}: result: libdap < 3.9" >&5
+ $as_echo "libdap < 3.9" >&6; }
+-    else
+-        DODS_INC="$DODS_INC -DLIBDAP_39"
+-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: libdap >= 3.9" >&5
++            else
++                DODS_INC="$DODS_INC -DLIBDAP_39"
++                { $as_echo "$as_me:${as_lineno-$LINENO}: result: libdap >= 3.9" >&5
+ $as_echo "libdap >= 3.9" >&6; }
+-    fi
+-    rm -f islibdappre39.*
++            fi
++            rm -f islibdappre39.*
+ 
+-fi
+-rm -f islibdappost310.*
++        fi
++        rm -f islibdappost310.*
++    fi
+ 
+ 
+         if test -x $DODS_BIN/opendap-config ; then
diff -Nru gdal-1.9.0/debian/patches/series gdal-1.9.0/debian/patches/series
--- gdal-1.9.0/debian/patches/series	2012-08-27 18:22:45.000000000 +0200
+++ gdal-1.9.0/debian/patches/series	2013-11-22 20:02:38.000000000 +0100
@@ -10,3 +10,4 @@
 symver
 spatialite
 force-ruby1.8
+libdap-xml2-include


More information about the Pkg-grass-devel mailing list