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 653965 - can't build mutter due to ui/ui.c:1003:26: error: ‘stock_delete_data’ undeclared (first use in this function)
can't build mutter due to ui/ui.c:1003:26: error: ‘stock_delete_data’ undecla...
Status: RESOLVED OBSOLETE
Product: mutter
Classification: Core
Component: general
git master
Other Linux
: Normal normal
: ---
Assigned To: mutter-maint
mutter-maint
Depends on:
Blocks:
 
 
Reported: 2011-07-04 19:27 UTC by Tobias Mueller
Modified: 2014-12-29 02:55 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
build: Create pixbufs cache file atomically (816 bytes, patch)
2011-07-10 17:36 UTC, Colin Walters
accepted-commit_now Details | Review

Description Tobias Mueller 2011-07-04 19:27:40 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.
Comment 1 Owen Taylor 2011-07-05 13:49:21 UTC
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 ***
Comment 2 Tobias Mueller 2011-07-05 22:17:31 UTC
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?] $
Comment 3 Colin Walters 2011-07-10 17:36:24 UTC
Created attachment 191643 [details] [review]
build: Create pixbufs cache file atomically

This avoids leaving a broken file if gdk-pixbuf fails.
Comment 4 Dan Winship 2011-07-11 15:13:34 UTC
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
Comment 5 Jasper St. Pierre (not reading bugmail) 2012-05-02 18:12:23 UTC
Is this still an issue?
Comment 6 Tobias Mueller 2012-05-03 13:11:14 UTC
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.
Comment 7 Jasper St. Pierre (not reading bugmail) 2014-12-29 02:55:41 UTC
There are no more stock icons.