GNOME Bugzilla – Bug 498213
3.1.2 does not compile
Last modified: 2008-03-01 18:12:00 UTC
Please describe the problem: I tried to compile libgda 3.1.2, but it failed with the following error: i486-slackware-linux-gcc "-DPACKAGE_NAME=\"GNU Data Access\"" -DPACKAGE_TARNAME=\"libgda\" -DPACKAGE_VERSION=\"3.1.2\" "-DPACKAGE_STRING=\"GNU Data Access 3.1.2\"" -DPACKAGE_BUGREPORT=\"gnome-db-list@gnome.org\" -DBONOBO_EXPLICIT_TRANSLATION_DOMAIN=\"libgda-3.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DYYTEXT_POINTER=1 -DGETTEXT_PACKAGE=\"libgda-3.0\" -DHAVE_LOCALE_H=1 -DHAVE_LC_MESSAGES=1 -DHAVE_BIND_TEXTDOMAIN_CODESET=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DENABLE_NLS=1 -DHAVE_ODBC=1 -DHAVE_MYSQL=1 -DHAVE_POSTGRES=1 -DHAVE_READLINE_READLINE_H=1 -DHAVE_READLINE_HISTORY_H=1 -I. -I. -I.. -I.. -I../libgda/sqlite -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -DLIBGDA_ABI_NAME=\"libgda-3.0\" -pthread -DORBIT2=1 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/bonobo-activation-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/gconf/2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/orbit-2.0 -DHAVE_GNOMEVFS -O2 -march=i486 -mcpu=pentium2 -MT gda-data-model-dir.lo -MD -MP -MF .deps/gda-data-model-dir.Tpo -c gda-data-model-dir.c -fPIC -DPIC -o .libs/gda-data-model-dir.o gda-data-model-dir.c:31:40: libgnomevfs/gnome-vfs-mime.h: No such file or directory gda-data-model-dir.c: In function `update_file_mime': gda-data-model-dir.c:589: warning: assignment makes pointer from integer without a cast make[2]: *** [gda-data-model-dir.lo] Error 1 make[2]: Leaving directory `/mnt/raid/download/computer/software/gnome/libgda/3.1/src/libgda-3.1.2/libgda' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/mnt/raid/download/computer/software/gnome/libgda/3.1/src/libgda-3.1.2/libgda' make: *** [all-recursive] Error 1 make failed Now, the file libgnomevfs/gnome-vfs-mime.h is present on my system. It is located at /usr/include/gnome-vfs-module-2.0/libgnomevfs/gnome-vfs-mime.h Clearly, this path is not being included in the -I compiler options. I did some checking, and configure does check for gnome-vfs, but my gnome-vfs-2.0.pc file does not include this path. This path is included in gnome-vfs-module-2.0.pc, which is not checked by configure. Both of these files were installed by my gnome-vfs package. My version of gnome-vfs is 2.10.1 (the highest of 2.10.x). I see two possibilities: ONE My version of gnome-vfs is too old. In this case, configure should be checking for a minimum version and failing on me. i.e. there should be a configure-time failure rather than a build-time failure. TWO Perhaps, configure should be checking the gnome-vfs-module-2.0.pc file as well as gnome-vfs-2.0.pc. Thanks for any help, Mark Steps to reproduce: see description Actual results: see description Expected results: It should compile Does this happen every time? yes Other information: One can work around this by specifying C_INCLUDE_PATH environment variable. However, workarounds are never desirable as a long-term solution.
I prefer to check for a more recent version (I have 2.20) than to include 2 dependencies, so I've added a check for a version >= 2.20. It's now in SVN.
I'm afraid I didn't adequately investigate possibility ONE until now. The gnome-vfs-2.0.pc.in from version 2.20 still does not include the necessary path for finding the file. However, the gnome-vfs-module-2.0.pc.in does include the required path to find the file. So if I upgrade to 2.20, I still won't be able to find the file. Also, the upgrade to 2.20 will require me to upgrade/install some additional libraries (and those may in turn require more upgrades). Both gnome-vfs-2.0.pc.in and gnome-vfs-module-2.0.pc.in are included in the file gnome-vfs-2.20.1.tar.bz2 from the gnome project. Therefore, I don't see possibility TWO as adding a dependency. Both are from the same package. Would it be possible to restore the original version requirement for gnome-vfs and add the gnome-vfs-module-2.0.pc check next to the gnome-vfs-2.0.pc check?
The gnome-vfs-mime.h file was moved in version 2.16 of gnome-vfs. This permits it to be found using just the one check that libgda 3.1.2 uses. On further reflection, I agree that just the one check is preferable. Therefore, I am going to upgrade my system to 2.16, and see if that permits compiling. If so, I believe that 2.16 should be the minimum required version.
I've upgraded to gnome-vfs 2.16. Libgda 3.1.2 compiles with it. Therefore, I'd suggest that this be made the minimum version of gnome-vfs.
*** Bug 508455 has been marked as a duplicate of this bug. ***
svn trunk of libgda has this in configure.in: GNOMEVFS_MODULES="gnome-vfs-2.0 >= 2.20" so this seems to have been fixed.