GNOME Bugzilla – Bug 653965
can't build mutter due to ui/ui.c:1003:26: error: ‘stock_delete_data’ undeclared (first use in this function)
Last modified: 2014-12-29 02:55:41 UTC
[jhbuild] muelli@bigbox ~/svn/gnome2/mutter [±:master?] $ make make all-recursive make[1]: Entering directory `/home/muelli/svn/gnome2/mutter' Making all in src make[2]: Entering directory `/home/muelli/svn/gnome2/mutter/src' make all-recursive make[3]: Entering directory `/home/muelli/svn/gnome2/mutter/src' Making all in wm-tester make[4]: Entering directory `/home/muelli/svn/gnome2/mutter/src/wm-tester' make[4]: Nothing to be done for `all'. make[4]: Leaving directory `/home/muelli/svn/gnome2/mutter/src/wm-tester' Making all in tools make[4]: Entering directory `/home/muelli/svn/gnome2/mutter/src/tools' make[4]: Nothing to be done for `all'. make[4]: Leaving directory `/home/muelli/svn/gnome2/mutter/src/tools' Making all in compositor/plugins make[4]: Entering directory `/home/muelli/svn/gnome2/mutter/src/compositor/plugins' make[4]: Nothing to be done for `all'. make[4]: Leaving directory `/home/muelli/svn/gnome2/mutter/src/compositor/plugins' make[4]: Entering directory `/home/muelli/svn/gnome2/mutter/src' CC ui.lo CC testasyncgetprop.o CC testgradient.o LC_ALL=C /opt/gnome2/bin/intltool-merge -d -u -c ../po/.intltool-merge-cache ../po mutter.desktop.in mutter.desktop Generating and caching the translation database ui/ui.c: In function ‘meta_stock_icons_init’: ui/ui.c:1003:26: error: ‘stock_delete_data’ undeclared (first use in this function) ui/ui.c:1003:26: note: each undeclared identifier is reported only once for each function it appears in ui/ui.c:1004:28: error: ‘stock_minimize_data’ undeclared (first use in this function) ui/ui.c:1005:28: error: ‘stock_maximize_data’ undeclared (first use in this function) make[4]: *** [ui.lo] Error 1 make[4]: *** Waiting for unfinished jobs.... Merging translations into mutter.desktop. make[4]: Leaving directory `/home/muelli/svn/gnome2/mutter/src' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/home/muelli/svn/gnome2/mutter/src' make[2]: *** [all] Error 2 make[2]: Leaving directory `/home/muelli/svn/gnome2/mutter/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/muelli/svn/gnome2/mutter' make: *** [all] Error 2 [jhbuild] muelli@bigbox ~/svn/gnome2/mutter [±:master?] $ I would have expected it to build fine. [jhbuild] muelli@bigbox ~/svn/gnome2/mutter/src [±:master?] $ ls -l inlinepixbufs.h -rw-rw-r--. 1 muelli muelli 0 4. Jul 19:58 inlinepixbufs.h [jhbuild] muelli@bigbox ~/svn/gnome2/mutter/src [±:master?] $ rm inlinepixbufs.h [jhbuild] muelli@bigbox ~/svn/gnome2/mutter/src [±:master?] $ make inlinepixbufs.h /opt/gnome2/bin/gdk-pixbuf-csource --raw --build-list stock_maximize_data ./stock_maximize.png stock_minimize_data ./stock_minimize.png stock_delete_data ./stock_delete.png >./inlinepixbufs.h (process:16932): GdkPixbuf-WARNING **: Cannot open pixbuf loader module file '/opt/gnome2/lib64/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory failed to load "./stock_maximize.png": Couldn't recognize the image file format for file './stock_maximize.png' make: *** [inlinepixbufs.h] Error 1 [jhbuild] muelli@bigbox ~/svn/gnome2/mutter/src [±:master?] $ ls -l inlinepixbufs.h -rw-rw-r--. 1 muelli muelli 0 4. Jul 20:59 inlinepixbufs.h [jhbuild] muelli@bigbox ~/svn/gnome2/mutter/src [±:master?] $ So this seems to be a two-folded problem: Firstly, the empty inlinepixbufs.h shouldn't be created to not confuse the Makefile and secondly, configure should check whether loading the necessary images works.
There are certainly improvements that could be made to the Makefile to avoid generating empty files (you'll find examples other places of this - output to a temporary file and copy, rather than to the target file) But basically, you have a broken gdk-pixbuf installation (because of a jhbuild problem), and that's not a supportable configuration. If you cd <checkoutdir>/gdk-pixbuf && jhbuild run make install-exec then restart the build process 'jhbuild --start-at=gdk-pixbuf -afc' to build the remaining stuff from scratch, that's a workaround. *** This bug has been marked as a duplicate of bug 653842 ***
Hey Owen, I appreciate your help. But unfortunately, it doesn't work. It still complains about not being able to load the image. I filed bug 653977 if that's any help. I have a fairly standard Fedora 14 system and I expected to be able to build GNOME stuff. [jhbuild] muelli@bigbox ~/svn/gnome2/gdk-pixbuf [±:master?] $ jhbuild run make install-exec && /opt/gnome2/bin/gdk-pixbuf-csource --struct --build-list sdf ../mutter/src/stock_maximize.png Making install-exec in gdk-pixbuf make[1]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf/gdk-pixbuf' Making install-exec in pixops make[2]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf/gdk-pixbuf/pixops' make[2]: Nothing to be done for `install-exec'. make[2]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf/gdk-pixbuf/pixops' make[2]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf/gdk-pixbuf' test -z "/opt/gnome2/lib64" || /bin/mkdir -p "/opt/gnome2/lib64" /bin/sh ../libtool --mode=install /home/muelli/bin/install-check libgdk_pixbuf-2.0.la '/opt/gnome2/lib64' libtool: install: /home/muelli/bin/install-check .libs/libgdk_pixbuf-2.0.so.0.2300.6 /opt/gnome2/lib64/libgdk_pixbuf-2.0.so.0.2300.6 libtool: install: (cd /opt/gnome2/lib64 && { ln -s -f libgdk_pixbuf-2.0.so.0.2300.6 libgdk_pixbuf-2.0.so.0 || { rm -f libgdk_pixbuf-2.0.so.0 && ln -s libgdk_pixbuf-2.0.so.0.2300.6 libgdk_pixbuf-2.0.so.0; }; }) libtool: install: (cd /opt/gnome2/lib64 && { ln -s -f libgdk_pixbuf-2.0.so.0.2300.6 libgdk_pixbuf-2.0.so || { rm -f libgdk_pixbuf-2.0.so && ln -s libgdk_pixbuf-2.0.so.0.2300.6 libgdk_pixbuf-2.0.so; }; }) libtool: install: /home/muelli/bin/install-check .libs/libgdk_pixbuf-2.0.lai /opt/gnome2/lib64/libgdk_pixbuf-2.0.la libtool: finish: PATH="/opt/gnome2/bin:/home/muelli/bin:/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/sbin" ldconfig -n /opt/gnome2/lib64 ---------------------------------------------------------------------- Libraries have been installed in: /opt/gnome2/lib64 If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- test -z "/opt/gnome2/bin" || /bin/mkdir -p "/opt/gnome2/bin" /bin/sh ../libtool --mode=install /home/muelli/bin/install-check gdk-pixbuf-csource gdk-pixbuf-query-loaders '/opt/gnome2/bin' libtool: install: /home/muelli/bin/install-check .libs/gdk-pixbuf-csource /opt/gnome2/bin/gdk-pixbuf-csource libtool: install: /home/muelli/bin/install-check .libs/gdk-pixbuf-query-loaders /opt/gnome2/bin/gdk-pixbuf-query-loaders make[2]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf/gdk-pixbuf' make[1]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf/gdk-pixbuf' Making install-exec in po make[1]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf/po' make[1]: Nothing to be done for `install-exec'. make[1]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf/po' Making install-exec in docs make[1]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf/docs' Making install-exec in reference make[2]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf/docs/reference' Making install-exec in gdk-pixbuf make[3]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf/docs/reference/gdk-pixbuf' make[3]: Nothing to be done for `install-exec'. make[3]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf/docs/reference/gdk-pixbuf' make[3]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf/docs/reference' make[3]: Nothing to be done for `install-exec-am'. make[3]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf/docs/reference' make[2]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf/docs/reference' make[2]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf/docs' make[2]: Nothing to be done for `install-exec-am'. make[2]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf/docs' make[1]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf/docs' Making install-exec in tests make[1]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf/tests' make[1]: Nothing to be done for `install-exec'. make[1]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf/tests' Making install-exec in contrib make[1]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf/contrib' Making install-exec in gdk-pixbuf-xlib make[2]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf/contrib/gdk-pixbuf-xlib' test -z "/opt/gnome2/lib64" || /bin/mkdir -p "/opt/gnome2/lib64" /bin/sh ../../libtool --mode=install /home/muelli/bin/install-check libgdk_pixbuf_xlib-2.0.la '/opt/gnome2/lib64' libtool: install: warning: relinking `libgdk_pixbuf_xlib-2.0.la' libtool: install: (cd /home/muelli/svn/gnome2/gdk-pixbuf/contrib/gdk-pixbuf-xlib; /bin/sh /home/muelli/svn/gnome2/gdk-pixbuf/libtool --tag CC --mode=relink gcc -std=gnu99 -DGDK_PIXBUF_DISABLE_DEPRECATED -g -O2 -g -Wall -export-dynamic -version-info 2300:6:2300 -L/opt/gnome2/lib64 -Wl,-O0 -Wl,--enable-new-dtags -Wl,--sort-common -Wl,--as-needed -o libgdk_pixbuf_xlib-2.0.la -rpath /opt/gnome2/lib64 gdk-pixbuf-xlib.lo gdk-pixbuf-xlib-render.lo gdk-pixbuf-xlib-drawable.lo gdk-pixbuf-xlibrgb.lo ../../gdk-pixbuf/libgdk_pixbuf-2.0.la -pthread -L/opt/gnome2/lib64 -lX11 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 ) libtool: relink: gcc -std=gnu99 -shared .libs/gdk-pixbuf-xlib.o .libs/gdk-pixbuf-xlib-render.o .libs/gdk-pixbuf-xlib-drawable.o .libs/gdk-pixbuf-xlibrgb.o -Wl,-rpath -Wl,/opt/gnome2/lib64 -L/opt/gnome2/lib64 -lgdk_pixbuf-2.0 -lgio-2.0 -lgmodule-2.0 -lm -lX11 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 -Wl,-O0 -Wl,--enable-new-dtags -Wl,--sort-common -Wl,--as-needed -pthread -pthread -Wl,-soname -Wl,libgdk_pixbuf_xlib-2.0.so.0 -o .libs/libgdk_pixbuf_xlib-2.0.so.0.2300.6 libtool: install: /home/muelli/bin/install-check .libs/libgdk_pixbuf_xlib-2.0.so.0.2300.6T /opt/gnome2/lib64/libgdk_pixbuf_xlib-2.0.so.0.2300.6 libtool: install: (cd /opt/gnome2/lib64 && { ln -s -f libgdk_pixbuf_xlib-2.0.so.0.2300.6 libgdk_pixbuf_xlib-2.0.so.0 || { rm -f libgdk_pixbuf_xlib-2.0.so.0 && ln -s libgdk_pixbuf_xlib-2.0.so.0.2300.6 libgdk_pixbuf_xlib-2.0.so.0; }; }) libtool: install: (cd /opt/gnome2/lib64 && { ln -s -f libgdk_pixbuf_xlib-2.0.so.0.2300.6 libgdk_pixbuf_xlib-2.0.so || { rm -f libgdk_pixbuf_xlib-2.0.so && ln -s libgdk_pixbuf_xlib-2.0.so.0.2300.6 libgdk_pixbuf_xlib-2.0.so; }; }) libtool: install: /home/muelli/bin/install-check .libs/libgdk_pixbuf_xlib-2.0.lai /opt/gnome2/lib64/libgdk_pixbuf_xlib-2.0.la libtool: finish: PATH="/opt/gnome2/bin:/home/muelli/bin:/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/sbin" ldconfig -n /opt/gnome2/lib64 ---------------------------------------------------------------------- Libraries have been installed in: /opt/gnome2/lib64 If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[2]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf/contrib/gdk-pixbuf-xlib' make[2]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf/contrib' make[2]: Nothing to be done for `install-exec-am'. make[2]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf/contrib' make[1]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf/contrib' Making install-exec in build make[1]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf/build' Making install-exec in win32 make[2]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf/build/win32' Making install-exec in vs9 make[3]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf/build/win32/vs9' make[3]: Nothing to be done for `install-exec'. make[3]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf/build/win32/vs9' Making install-exec in vs10 make[3]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf/build/win32/vs10' make[3]: Nothing to be done for `install-exec'. make[3]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf/build/win32/vs10' make[3]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf/build/win32' make[3]: Nothing to be done for `install-exec-am'. make[3]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf/build/win32' make[2]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf/build/win32' make[2]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf/build' make[2]: Nothing to be done for `install-exec-am'. make[2]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf/build' make[1]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf/build' make[1]: Entering directory `/home/muelli/svn/gnome2/gdk-pixbuf' make[1]: Nothing to be done for `install-exec-am'. make[1]: Leaving directory `/home/muelli/svn/gnome2/gdk-pixbuf' failed to load "../mutter/src/stock_maximize.png": Couldn't recognize the image file format for file '../mutter/src/stock_maximize.png' [jhbuild] muelli@bigbox ~/svn/gnome2/gdk-pixbuf [±:master?] $
Created attachment 191643 [details] [review] build: Create pixbufs cache file atomically This avoids leaving a broken file if gdk-pixbuf fails.
Comment on attachment 191643 [details] [review] build: Create pixbufs cache file atomically > inlinepixbufs.h: $(IMAGES) >- $(GDK_PIXBUF_CSOURCE) --raw --build-list $(VARIABLES) >$(srcdir)/inlinepixbufs.h >+ $(GDK_PIXBUF_CSOURCE) --raw --build-list $(VARIABLES) >$@.tmp && mv $@.tmp $@ hm... i was going to say you should delete the .tmp file in the failure case, but it looks like we don't do that in other rules, so ok
Is this still an issue?
I don't know, because I can't build glib right now, due to ../../glibconfig.h:107:0: warning: "GLIB_MICRO_VERSION" redefined [enabled by default] ../../config.h:52:0: note: this is the location of the previous definition In file included from ../../glib/gtypes.h:36:0, from ../../glib/gquark.h:34, from ../../glib/gerror.h:30, from ../../glib/gunicode.h:29, from ucp.h:13, from pcre_internal.h:336, from pcre_compile.c:53: ../../glib/gversionmacros.h:155:2: error: #error "GLIB_VERSION_MIN_REQUIRED must be >= GLIB_VERSION_2_26" make[4]: *** [libpcre_la-pcre_compile.lo] Error 1 But I think that if the mentioned patch landed (has it?) it'll be fine.
There are no more stock icons.