After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 647395 - Can't build due to calendar-server/calendar-sources.h:29:25: fatal error: glib-object.h: No such file or directory
Can't build due to calendar-server/calendar-sources.h:29:25: fatal error: gli...
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: building
unspecified
Other Linux
: Normal normal
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2011-04-10 22:00 UTC by Tobias Mueller
Modified: 2011-05-18 13:02 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
configure: remove support for evolution-data-server 1.2 (1.68 KB, patch)
2011-04-15 13:40 UTC, Dan Winship
committed Details | Review

Description Tobias Mueller 2011-04-10 22:00:27 UTC
I tried to build gnome-shell but it fails:

[jhbuild] muelli@bigbox ~/svn/gnome2/gnome-shell $ make V=1
make  all-recursive
make[1]: Entering directory `/home/muelli/svn/gnome2/gnome-shell'
Making all in data
make[2]: Entering directory `/home/muelli/svn/gnome2/gnome-shell/data'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/muelli/svn/gnome2/gnome-shell/data'
Making all in js
make[2]: Entering directory `/home/muelli/svn/gnome2/gnome-shell/js'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/muelli/svn/gnome2/gnome-shell/js'
Making all in src
make[2]: Entering directory `/home/muelli/svn/gnome2/gnome-shell/src'
make  all-am
make[3]: Entering directory `/home/muelli/svn/gnome2/gnome-shell/src'
gcc -DHAVE_CONFIG_H -I. -I..    -I../src -DPREFIX=\""/opt/gnome2"\" -DLIBDIR=\""/opt/gnome2/lib64"\" -DDATADIR=\""/opt/gnome2/share"\" -DG_DISABLE_DEPRECATED -DG_LOG_DOMAIN=\"ShellCalendarServer\"   -g -O2 -Wall -Wmissing-prototypes -Werror -MT gnome_shell_calendar_server-calendar-sources.o -MD -MP -MF .deps/gnome_shell_calendar_server-calendar-sources.Tpo -c -o gnome_shell_calendar_server-calendar-sources.o `test -f 'calendar-server/calendar-sources.c' || echo './'`calendar-server/calendar-sources.c
gcc -DHAVE_CONFIG_H -I. -I..    -I../src -DPREFIX=\""/opt/gnome2"\" -DLIBDIR=\""/opt/gnome2/lib64"\" -DDATADIR=\""/opt/gnome2/share"\" -DG_DISABLE_DEPRECATED -DG_LOG_DOMAIN=\"ShellCalendarServer\"   -g -O2 -Wall -Wmissing-prototypes -Werror -MT gnome_shell_calendar_server-gnome-shell-calendar-server.o -MD -MP -MF .deps/gnome_shell_calendar_server-gnome-shell-calendar-server.Tpo -c -o gnome_shell_calendar_server-gnome-shell-calendar-server.o `test -f 'calendar-server/gnome-shell-calendar-server.c' || echo './'`calendar-server/gnome-shell-calendar-server.c
gcc -DHAVE_CONFIG_H -I. -I..  -DGSEAL_ENABLE -pthread -I/opt/gnome2/include/gtk-3.0 -I/opt/gnome2/include/atk-1.0 -I/opt/gnome2/include/cairo -I/opt/gnome2/include/gdk-pixbuf-2.0 -I/opt/gnome2/include/pango-1.0 -I/opt/gnome2/include/glib-2.0 -I/opt/gnome2/lib64/glib-2.0/include -I/opt/gnome2/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12     -g -O2 -Wall -Wmissing-prototypes -Werror -MT gnome_shell_perf_helper-shell-perf-helper.o -MD -MP -MF .deps/gnome_shell_perf_helper-shell-perf-helper.Tpo -c -o gnome_shell_perf_helper-shell-perf-helper.o `test -f 'shell-perf-helper.c' || echo './'`shell-perf-helper.c
In file included from calendar-server/calendar-sources.c:28:0:
calendar-server/calendar-sources.h:29:25: fatal error: glib-object.h: No such file or directory
compilation terminated.
calendar-server/gnome-shell-calendar-server.c:36:21: fatal error: gio/gio.h: No such file or directory
compilation terminated.
make[3]: *** [gnome_shell_calendar_server-calendar-sources.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: *** [gnome_shell_calendar_server-gnome-shell-calendar-server.o] Error 1
mv -f .deps/gnome_shell_perf_helper-shell-perf-helper.Tpo .deps/gnome_shell_perf_helper-shell-perf-helper.Po
make[3]: Leaving directory `/home/muelli/svn/gnome2/gnome-shell/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/muelli/svn/gnome2/gnome-shell/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/muelli/svn/gnome2/gnome-shell'
make: *** [all] Error 2
[jhbuild] muelli@bigbox ~/svn/gnome2/gnome-shell $ find /opt/gnome2/ -name glib-object.h
/opt/gnome2/include/glib-2.0/glib-object.h
[jhbuild] muelli@bigbox ~/svn/gnome2/gnome-shell $ pkg-config --cflags gobject-2.0 
-pthread -I/opt/gnome2/include/glib-2.0 -I/opt/gnome2/lib64/glib-2.0/include  
[jhbuild] muelli@bigbox ~/svn/gnome2/gnome-shell/src $ 



The interwebs show other people apparently having the very same problem, but no solution.

I jhbuilt -afc gnome-shell, hoping for this to go away, but it didn't help.

So given that /opt/gnome2/include/glib-2.0/glib-object.h exists, I presume, that the include path misses /opt/gnome2/include/glib-2.0/

And well, if I do that manually, it looks much better:

[jhbuild] muelli@bigbox ~/svn/gnome2/gnome-shell/src $ gcc -DHAVE_CONFIG_H -I. -I..    -I../src -DPREFIX=\""/opt/gnome2"\" -DLIBDIR=\""/opt/gnome2/lib64"\" -DDATADIR=\""/opt/gnome2/share"\" -DG_DISABLE_DEPRECATED -DG_LOG_DOMAIN=\"ShellCalendarServer\"   -g -O2 -Wall -Wmissing-prototypes -Werror -MT gnome_shell_calendar_server-calendar-sources.o -MD -MP -MF .deps/gnome_shell_calendar_server-calendar-sources.Tpo -c -o gnome_shell_calendar_server-calendar-sources.o `test -f 'calendar-server/calendar-sources.c' || echo './'`calendar-server/calendar-sources.c `pkg-config --cflags gobject-2.0`
calendar-server/calendar-sources.c:32:32: fatal error: gconf/gconf-client.h: No such file or directory
compilation terminated.
[jhbuild] muelli@bigbox ~/svn/gnome2/gnome-shell/src $ 

Note the additional pkg-config call, at the end of the command line. 

Hence, I don't think it's an error on my side but rather something with the build system.
Comment 1 Dan Winship 2011-04-11 13:08:59 UTC
(In reply to comment #0)
> gcc -DHAVE_CONFIG_H -I. -I..  -DGSEAL_ENABLE -pthread
> -I/opt/gnome2/include/gtk-3.0 -I/opt/gnome2/include/atk-1.0
> -I/opt/gnome2/include/cairo -I/opt/gnome2/include/gdk-pixbuf-2.0
> -I/opt/gnome2/include/pango-1.0 -I/opt/gnome2/include/glib-2.0
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> -I/opt/gnome2/lib64/glib-2.0/include -I/opt/gnome2/include/pixman-1
> -I/usr/include/freetype2 -I/usr/include/libpng12     -g -O2 -Wall
> -Wmissing-prototypes -Werror -MT gnome_shell_perf_helper-shell-perf-helper.o
> -MD -MP -MF .deps/gnome_shell_perf_helper-shell-perf-helper.Tpo -c -o
> gnome_shell_perf_helper-shell-perf-helper.o `test -f 'shell-perf-helper.c' ||
> echo './'`shell-perf-helper.c
> In file included from calendar-server/calendar-sources.c:28:0:
> calendar-server/calendar-sources.h:29:25: fatal error: glib-object.h: No such
> file or directory

> So given that /opt/gnome2/include/glib-2.0/glib-object.h exists, I presume,
> that the include path misses /opt/gnome2/include/glib-2.0/

But it's right there in the compile line you quoted...
Comment 2 Tobias Mueller 2011-04-11 13:47:02 UTC
Yeah, it's weird. But the failing line is

gcc -DHAVE_CONFIG_H -I. -I..    -I../src -DPREFIX=\""/opt/gnome2"\"
-DLIBDIR=\""/opt/gnome2/lib64"\" -DDATADIR=\""/opt/gnome2/share"\"
-DG_DISABLE_DEPRECATED -DG_LOG_DOMAIN=\"ShellCalendarServer\"   -g -O2 -Wall
-Wmissing-prototypes -Werror -MT gnome_shell_calendar_server-calendar-sources.o
-MD -MP -MF .deps/gnome_shell_calendar_server-calendar-sources.Tpo -c -o
gnome_shell_calendar_server-calendar-sources.o `test -f
'calendar-server/calendar-sources.c' || echo
'./'`calendar-server/calendar-sources.c


And it doesn't have the necessary -Is.
Comment 3 Dan Winship 2011-04-11 13:49:29 UTC
oh... you're using "make -j". should have mentioned that. presumably the bug is that some dependency is wrong and so it doesn't work with parallelized make
Comment 4 Tobias Mueller 2011-04-15 00:06:39 UTC
hm. I don't fully understand your comment. However, "make clean && make -j1" doesn't help it.

I seems that src/Makefile-calendar-server.am is responsible for the compiler flags. It uses $CALENDAR_SERVER_CFLAGS. These, however, have not been defined: muelli@bigbox ~/svn/gnome2/gnome-shell/src $ grep -C 2 -n CALENDAR_SERVER_CFLAGS Makefile
316-AWK = gawk
317-BLUETOOTH_LIBS = 
318:CALENDAR_SERVER_CFLAGS = 
319-CALENDAR_SERVER_LIBS = 
320-CATALOGS = 
--
792-	-DG_DISABLE_DEPRECATED			\
793-	-DG_LOG_DOMAIN=\"ShellCalendarServer\"	\
794:	$(CALENDAR_SERVER_CFLAGS)		\
795-	$(NULL)
796-
muelli@bigbox ~/svn/gnome2/gnome-shell/src $ 


The configure didn't seem to have it defined, either:
muelli@bigbox ~/svn/gnome2/gnome-shell/src $ grep -C 2 -n CALENDAR_SERVER_CFLAGS ../config.log 
846-ac_cv_build=x86_64-unknown-linux-gnu
847-ac_cv_c_compiler_gnu=yes
848:ac_cv_env_CALENDAR_SERVER_CFLAGS_set=
849:ac_cv_env_CALENDAR_SERVER_CFLAGS_value=
850-ac_cv_env_CALENDAR_SERVER_LIBS_set=
851-ac_cv_env_CALENDAR_SERVER_LIBS_value=
--
991-lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\'''
992-lt_cv_sys_max_cmd_len=1572864
993:pkg_cv_CALENDAR_SERVER_CFLAGS=
994-pkg_cv_CALENDAR_SERVER_LIBS=
995-pkg_cv_DESKTOP_SCHEMAS_CFLAGS='-I/opt/gnome2/include/gsettings-desktop-schemas  '
--
1061-BUILD_RECORDER_FALSE='#'
1062-BUILD_RECORDER_TRUE=''
1063:CALENDAR_SERVER_CFLAGS=''
1064-CALENDAR_SERVER_LIBS=''
1065-CATALOGS=''
muelli@bigbox ~/svn/gnome2/gnome-shell/src $ 

And well, e-d-s is not installed. JHBuild doesn't list e-d-s as dependency of gnome-shell. I guess that's a separate issue.
But I feel that configuration of gnome-shell should bail out if the necessary packages, i.e. e-d-s, are not found or are not working.
After installing e-d-s, I could compile gnome-shell.
Comment 5 Dan Winship 2011-04-15 13:35:42 UTC
danw@laptop:gnome-shell (master)> sudo rpm -e evolution-data-server-devel
[sudo] password for danw: 
danw@laptop:gnome-shell (master)> jhbuild -f ~/.jhbuildrc-gs buildone -nfa gnome-shell
*** Configuring gnome-shell *** [1/1]
./autogen.sh --prefix /opt/gnome-shell --libdir '/opt/gnome-shell/lib64' --enable-jhbuild-wrapper-script --disable-static --disable-gtk-doc 

...

checking for CALENDAR_SERVER... no
configure: error: Package requirements (libecal-1.2 >= 2.32.0 libedataserver-1.2 >= 1.2.0 libedataserverui-1.2 >= 1.2.0 gio-2.0) were not met:

No package 'libecal-1.2' found
No package 'libedataserver-1.2' found
No package 'libedataserverui-1.2' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables CALENDAR_SERVER_CFLAGS
and CALENDAR_SERVER_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
*** Error during phase configure of gnome-shell: ########## Error running ./autogen.sh --prefix /opt/gnome-shell --libdir '/opt/gnome-shell/lib64' --enable-jhbuild-wrapper-script --disable-static --disable-gtk-doc  *** [1/1]
Comment 6 Dan Winship 2011-04-15 13:36:51 UTC
at any rate, we should get rid of the e-d-s 1.2 support though
Comment 7 Dan Winship 2011-04-15 13:40:01 UTC
Created attachment 186021 [details] [review]
configure: remove support for evolution-data-server 1.2
Comment 8 Tobias Mueller 2011-04-30 19:42:15 UTC
Marking as NEW as per comment #6
Comment 9 Dan Winship 2011-05-16 10:41:21 UTC
poke
Comment 10 Tobias Mueller 2011-05-16 12:00:20 UTC
Well. I didn't test the patch, because I installed e-d-s. But it looks good to me.
Comment 11 David Zeuthen (not reading bugmail) 2011-05-16 19:07:35 UTC
Review of attachment 186021 [details] [review]:

Didn't test it but looks good to me. Thanks.
Comment 12 Dan Winship 2011-05-18 13:02:24 UTC
Attachment 186021 [details] pushed as 986d72d - configure: remove support for evolution-data-server 1.2