GNOME Bugzilla – Bug 608065
Unable to build gparted 0.5.1 on OpenSuSE 11.1
Last modified: 2010-01-27 23:36:47 UTC
Created attachment 152251 [details] Config.log of gparted When I try to compile gparted 0.5.1 on OpenSuSE 11.1 I get the following error : make[2]: Entering directory `/usr/src/gparted-0.5.1/src' g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/include/atkmm-1.6 -I/usr/include/gtk-2.0 -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/gtk-2.0/include -I/usr/include/cairomm-1.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/atk-1.0 -DGPARTED_DATADIR=\""/usr/local/share"\" -DGNOMELOCALEDIR=\""/usr/local/share/locale"\" -Wall -g -O2 -MT Win_GParted.o -MD -MP -MF .deps/Win_GParted.Tpo -c -o Win_GParted.o Win_GParted.cc Win_GParted.cc: In member function ‘void GParted::Win_GParted::show_help_dialog(const Glib::ustring&, const Glib::ustring&)’: Win_GParted.cc:1220: error: ‘gtk_show_uri’ was not declared in this scope make[2]: *** [Win_GParted.o] Error 1 make[2]: Leaving directory `/usr/src/gparted-0.5.1/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/src/gparted-0.5.1' make: *** [all] Error 2 What's going wrong ?
It would appear that the configure script found a version of gtkmm-2.4 which is >= 2.14.0. However, the show_gtk_uri() function call was somehow not declared. This change was implemented to align with GNOME Goals. See Bug #600046 - Replace gnome_help and gnome-open calls with gtk_show_uri. The error message suggests that 'gtk_show_uri' was missed in an include file, or is not part of the version of gtkmm-2.4 that you have installed. This code has been tested to correctly compile under Ubuntu 9.10 and Fedora 12. Perhaps there is something different with OpenSUSE 11.1? Can you check which version of gtkmm-2.4 that is installed on your system?
Version 2.14.1 of gtkmm is installed. For OpenSuSE 11.1 there is no official update for this package available. Which version do you think I need ?
Interesting. According to the following link, version 2.14.1 should have had the gtk_show_uri() function call: http://live.gnome.org/GnomeGoals/RemoveGnomeOpenGnomeHelp A work around to enable you to compile the code would be to edit the "configure" file to change the gtkmm-2.4 comparison to look for a higher version than 2.14.1. The section of code to change is as follows: if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtkmm-2.4 >= 2.14.0\"") >&5 ($PKG_CONFIG --exists --print-errors "gtkmm-2.4 >= 2.14.0") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then cat >>confdefs.h <<\_ACEOF #define HAVE_GTK_SHOW_URI 1 _ACEOF fi In the above if you change the "2.14.0" to something higher than your gtkmm-2.4 library, such as "2.15.0", that should permit you to configure, make, and make install the GParted 0.5.1 application.
Thanks a lot. Now it works. But I had to change both "2.14.0" to "2.15.0", not only the first one. Furthermore I examined all files of the gtkmm development package. I did a "grep -i gtk_show_uri" on all files. The gtk_show_uri function call is nowhere declared. Perhaps you should check if your information that this function call is contained in gtk 2.14 is right.
It is good to hear that you are now able to compile GParted. The documentation for gtk implies that the gtk_show_uri function was added in version 2.14.0. See the following link: http://library.gnome.org/devel/gtk/unstable/gtk-Filesystem-utilities.html#gtk-show-uri I also downloaded gtkmm versions 2.13.0, 2.14.0, and 2.15.0, and searched for "gtk_show_uri". Performing these actions leads me to believe that the function gtk_show_uri was indeed added in version 2.14. Link to download source for gtkmm: http://ftp.gnome.org/pub/GNOME/sources/gtkmm/ Output from searching the above three listed versions: gedakc@quad:~/tmp/gtkmm-2.13.0$ find . -exec grep -li gtk_show_uri {} \; gedakc@quad:~/tmp/gtkmm-2.13.0$ gedakc@quad:~/tmp/gtkmm-2.14.0$ find . -exec grep -li gtk_show_uri {} \; ./gtk/src/gtk_methods.defs gedakc@quad:~/tmp/gtkmm-2.14.0$ gedakc@quad:~/tmp/gtkmm-2.15.0$ find . -exec grep -li gtk_show_uri {} \; ./gtk/src/gtk_methods.defs ./gtk/src/gtk_docs.xml gedakc@quad:~/tmp/gtkmm-2.15.0$ The above output suggests to me that the function call gtk_show_uri was added to gtkmm in version 2.14.0, and documentation for the function call was later added in version 2.15.0 Perhaps OpenSUSE 11.1 used a pre-release version of gtkmm, or somehow modified gtkmm after release??? This is just a guess since I don't actively use OpenSUSE myself.
Funny. I downloaded the sourcecode from gtkmm-2.14.1 from OpenSuSE 11.1 and found the same file "gtk_methods.def" containing gtk_show_uri But still no hint that this function call is implemented in the binary release of gtkmm-2.14.1 from OpenSuSE 11.1 ...
What command are you using to check for the function call in the binary release?
OK. Not the binary release itself. I still can´t find this function call in the development package which came with gtkmm. A "grep -i" for gtk_show_uri on all these files still finds nothing.
To learn more about this problem I tried compiling gparted-0.5.1 with some of my older virtual machines: Ubuntu Jaunty 9.04 which has version 2.16.0-1 of gtkmm compiled successfully. Ubuntu Intrepid 8.10 which has version 2.14.0-1 of gtkmm _did not_ compile successfully. Hence there does appear to be some problem with the gtk_show_uri() function call in at least the OpenSUSE 11.1 and Ubuntu Intrepid 8.10 GNU/Linux distributions. To avoid this problem in the future I have updated the required gtkmm library to version 2.16.0. With this change, I was able to compile GParted on both Ubuntu Intrepid 8.10 and Ubuntu Jaunty 9.04. This change has been committed to the GNOME repository for inclusion in the next release of GParted. The relevant git commit can be viewed at the following link: http://git.gnome.org/browse/gparted/commit/?id=32ab5f0ec0319d0f1dc9e880b594c579851af54c Closing this bug.