GNOME Bugzilla – Bug 347469
DBUS_API_SUBJECT_TO_CHANGE causes build to fail
Last modified: 2008-12-04 13:58:42 UTC
Please describe the problem: I installed dbus-0.60 & 0.622 usr/include/dbus-1.0/dbus/dbus.h:30:2: error: #error "Please define DBUS_API_SUBJECT_TO_CHANGE to acknowledge your understanding that D-BUS hasn't reached 1.0 and is subject to protocol and API churn. See the README for a full explanation." Same Error Steps to reproduce: 1. 2. 3. Actual results: Expected results: Does this happen every time? Other information:
It compiles just fine here. Can you give me the build log (the part where it fails?). I need to know which file.
make all-am make[3]: Entering directory `/home/hys545/GNOME/Cvs/gnome-vfs/libgnomevfs' if /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I.. -pthread -DORBIT2=1 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gconf/2 -I/usr/include/orbit-2.0 -I/usr/include/libxml2 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/kerberos/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -Wall -Werror -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-strict-aliasing -Wno-sign-compare -DXDG_PREFIX=_gnome_vfs_xdg -D_FILE_OFFSET_BITS=64 -D_BSD_SOURCE -D_LARGEFILE64_SOURCE -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -DG_DISABLE_DEPRECATED -DGNOME_VFS_PREFIX=\"/usr/local\" -DGNOME_VFS_BINDIR=\"/usr/local/bin\" -DGNOME_VFS_DATADIR=\"/usr/local/share\" -DGNOME_VFS_LIBDIR=\"/usr/local/lib\" -DGNOME_VFS_LOCALEDIR=\"/usr/local/share/locale\" -DGNOME_VFS_SYSCONFDIR=\"/usr/local/etc\" -DG_LOG_DOMAIN=\"libgnomevfs\" -g -O2 -MT gnome-vfs-cancellation.lo -MD -MP -MF ".deps/gnome-vfs-cancellation.Tpo" -c -o gnome-vfs-cancellation.lo gnome-vfs-cancellation.c; \ then mv -f ".deps/gnome-vfs-cancellation.Tpo" ".deps/gnome-vfs-cancellation.Plo"; else rm -f ".deps/gnome-vfs-cancellation.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I.. -pthread -DORBIT2=1 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gconf/2 -I/usr/include/orbit-2.0 -I/usr/include/libxml2 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/kerberos/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -Wall -Werror -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-strict-aliasing -Wno-sign-compare -DXDG_PREFIX=_gnome_vfs_xdg -D_FILE_OFFSET_BITS=64 -D_BSD_SOURCE -D_LARGEFILE64_SOURCE -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -DG_DISABLE_DEPRECATED -DGNOME_VFS_PREFIX=\"/usr/local\" -DGNOME_VFS_BINDIR=\"/usr/local/bin\" -DGNOME_VFS_DATADIR=\"/usr/local/share\" -DGNOME_VFS_LIBDIR=\"/usr/local/lib\" -DGNOME_VFS_LOCALEDIR=\"/usr/local/share/locale\" -DGNOME_VFS_SYSCONFDIR=\"/usr/local/etc\" -DG_LOG_DOMAIN=\"libgnomevfs\" -g -O2 -MT gnome-vfs-cancellation.lo -MD -MP -MF .deps/gnome-vfs-cancellation.Tpo -c gnome-vfs-cancellation.c -fPIC -DPIC -o .libs/gnome-vfs-cancellation.o In file included from ./gnome-vfs-dbus-utils.h:30, from gnome-vfs-cancellation.c:30: /usr/include/dbus-1.0/dbus/dbus.h:30:2: error: #error "Please define DBUS_API_SUBJECT_TO_CHANGE to acknowledge your understanding that D-BUS hasn't reached 1.0 and is subject to protocol and API churn. See the README for a full explanation." make[3]: *** [gnome-vfs-cancellation.lo] Error 1 make[3]: Leaving directory `/home/hys545/GNOME/Cvs/gnome-vfs/libgnomevfs' make[2]: *** [all] Error 2 make[2]: Leaving directory `/home/hys545/GNOME/Cvs/gnome-vfs/libgnomevfs' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/hys545/GNOME/Cvs/gnome-vfs' make: *** [all] Error 2 [hys545@localhost gnome-vfs]$
*** Bug 348368 has been marked as a duplicate of this bug. ***
So which OS or compiler is this? When looking at the file there is: #ifndef DBUS_API_SUBJECT_TO_CHANGE #define DBUS_API_SUBJECT_TO_CHANGE #endif maybe chaning the define line to "#define DBUS_API_SUBJECT_TO_CHANGE 1" would help. Can someone test?
Hmmm, what an annoying little bug. The file originally said: /usr/include/dbus-1.0/dbus/dbus.h --------------------------------------------- #ifndef DBUS_API_SUBJECT_TO_CHANGE #error "Please define DBUS_API_SUBJECT_TO_CHANGE to acknowledge your understanding that D-BUS hasn't reached 1.0 and is subject to protocol and API churn. See the README for a full explanation." #endif --------------------------------------------- I changed it to just say: #define DBUS_API_SUBJECT_TO_CHANGE 1 ...and this allowed gnome-vfs to compile correctly. Wonder why only a few of us are seeing this issue? I'm currently running dbus-0.62 (but I've also noticed that line was in dbus-0.50) currenlty running Gnome-2.14.2 gcc (GCC) 4.0.3 Thanks for the tip, I'm continuing on my install now.
Ok, I changed cvs head to always define DBUS_API_SUBJECT_TO_CHANGE 1 which should make your compiler happy. Thanks for the testing.
I failed Build on Cvs-2006-7-24 In file included from ./gnome-vfs-dbus-utils.h:30, from gnome-vfs-cancellation.c:30: /usr/include/dbus-1.0/dbus/dbus.h:30:2: error: #error "Please define DBUS_API_SUBJECT_TO_CHANGE to acknowledge your understanding that D-BUS hasn't reached 1.0 and is subject to protocol and API churn. See the README for a full explanation." make[1]: *** [gnome-vfs-cancellation.lo] Error 1 make[1]: Leaving directory `/home/hys545/GNOME/Cvs/gnome-vfs/libgnomevfs' make: *** [all] Error 2 In file included from gnome-vfs-volume-monitor-private.h:29, from gnome-vfs-dbus-utils.c:30: /usr/include/dbus-1.0/dbus/dbus.h:30:2: error: #error "Please define DBUS_API_SUBJECT_TO_CHANGE to acknowledge your understanding that D-BUS hasn't reached 1.0 and is subject to protocol and API churn. See the README for a full explanation." make[1]: *** [gnome-vfs-dbus-utils.lo] Error 1 n file included from gnome-vfs-volume-monitor-private.h:29, from gnome-vfs-drive.c:29: /usr/include/dbus-1.0/dbus/dbus.h:30:2: error: #error "Please define DBUS_API_SUBJECT_TO_CHANGE to acknowledge your understanding that D-BUS hasn't reached 1.0 and is subject to protocol and API churn. See the README for a full explanation." make[1]: *** [gnome-vfs-drive.lo] Error 1 make[1]: Leaving directory `/home/hys545/GNOME/Cvs/gnome-vfs/libgnomevfs' make: *** [all] Error 2 In file included from gnome-vfs-volume-monitor-private.h:29, from gnome-vfs-init.c:36: /usr/include/dbus-1.0/dbus/dbus.h:30:2: error: #error "Please define DBUS_API_SUBJECT_TO_CHANGE to acknowledge your understanding that D-BUS hasn't reached 1.0 and is subject to protocol and API churn. See the README for a full explanation." make[1]: *** [gnome-vfs-init.lo] Error 1 make[1]: Leaving directory `/home/hys545/GNOME/Cvs/gnome-vfs/libgnomevfs' make: *** [all] Error 2 In file included from gnome-vfs-module-callback-private.h:29, from gnome-vfs-job.c:36: /usr/include/dbus-1.0/dbus/dbus.h:30:2: error: #error "Please define DBUS_API_SUBJECT_TO_CHANGE to acknowledge your understanding that D-BUS hasn't reached 1.0 and is subject to protocol and API churn. See the README for a full explanation." make[1]: *** [gnome-vfs-job.lo] Error 1 make[1]: Leaving directory `/home/hys545/GNOME/Cvs/gnome-vfs/libgnomevfs' make: *** [all] Error 2 In file included from gnome-vfs-module-callback-private.h:29, from gnome-vfs-job.c:36: /usr/include/dbus-1.0/dbus/dbus.h:30:2: error: #error "Please define DBUS_API_SUBJECT_TO_CHANGE to acknowledge your understanding that D-BUS hasn't reached 1.0 and is subject to protocol and API churn. See the README for a full explanation." make[1]: *** [gnome-vfs-job.lo] Error 1 make[1]: Leaving directory `/home/hys545/GNOME/Cvs/gnome-vfs/libgnomevfs' make: *** [all] Error 2 In file included from gnome-vfs-daemon-method.h:27, from gnome-vfs-method.c:35: /usr/include/dbus-1.0/dbus/dbus.h:30:2: error: #error "Please define DBUS_API_SUBJECT_TO_CHANGE to acknowledge your understanding that D-BUS hasn't reached 1.0 and is subject to protocol and API churn. See the README for a full explanation." make[1]: *** [gnome-vfs-method.lo] Error 1 make[1]: Leaving directory `/home/hys545/GNOME/Cvs/gnome-vfs/libgnomevfs' make: *** [all] Error 2 In file included from gnome-vfs-module-callback-private.h:29, from gnome-vfs-module-callback-marshall.c:30: /usr/include/dbus-1.0/dbus/dbus.h:30:2: error: #error "Please define DBUS_API_SUBJECT_TO_CHANGE to acknowledge your understanding that D-BUS hasn't reached 1.0 and is subject to protocol and API churn. See the README for a full explanation." make[1]: *** [gnome-vfs-module-callback-marshall.lo] Error 1 make[1]: Leaving directory `/home/hys545/GNOME/Cvs/gnome-vfs/libgnomevfs' make: *** [all] Error 2 In file included from gnome-vfs-volume-monitor-client.h:32, from gnome-vfs-volume-monitor-client.c:30: /usr/include/dbus-1.0/dbus/dbus.h:30:2: error: #error "Please define DBUS_API_SUBJECT_TO_CHANGE to acknowledge your understanding that D-BUS hasn't reached 1.0 and is subject to protocol and API churn. See the README for a full explanation." make[1]: *** [gnome-vfs-volume-monitor-client.lo] Error 1 make[1]: Leaving directory `/home/hys545/GNOME/Cvs/gnome-vfs/libgnomevfs' make: *** [all] Error 2
Did you check and make sure that you have the changes I made (ano-cvs is behind sometimes). If yes, I will look again!
My Command: rm -Rf gnome-vfs export CVSROOT=:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome cvs co gnome-vfs cd gnome-vfs ./autogen.sh ./configure make
My Debian Sarge's gcc 3.3.5 fails too, on lot of files. Currently cvs diff says I had to put it in 16 files :/ though that number could be lower if double-checked where it really needs to be done (I just went through all .c:s that did not compile and added it to the top...). Want me to clean up and attach a patch?
Instead of adding it to all the .c, might be easier (and less annoying to maintain) to just add a -D flag to the Makefile.am (or even configure.in).
2006-08-07 Alexander Larsson <alexl@redhat.com> * daemon/Makefile.am: * libgnomevfs/Makefile.am: Define DBUS_API_SUBJECT_TO_CHANGE Thanks for your efforts.