Bug 33145

Summary: unclear error message if your GLib is too old
Product: dbus Reporter: Sergei Steshenko <sergstesh>
Component: GLibAssignee: Simon McVittie <smcv>
Status: RESOLVED FIXED QA Contact: John (J5) Palmieri <johnp>
Severity: minor    
Priority: medium CC: walters
Version: unspecifiedKeywords: patch
Hardware: x86 (IA32)   
OS: Linux (All)   
URL: http://git.collabora.co.uk/?p=user/smcv/dbus-glib-smcv.git;a=shortlog;h=refs/heads/error-clarity-33145
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 23616    
Attachments: autogenerated script used to run 'configure'
'config.log' generated by 'configure'
Stop overriding pkg-config's nice informative message if GLib is too old

Description Sergei Steshenko 2011-01-15 00:24:24 UTC
Created attachment 42071 [details]
autogenerated script used to run 'configure'

I do not know where to file bugs against 'dbus-glib', so I'm filing it here.

Running 'configure' using the attached autogenerated script I'm getting:

"
checking for DBUS... yes
checking for DBUS_GLIB... no
checking for DBUS_GLIB_THREADS... yes
configure: error: GLib development libraries not found
".

Using exactly the same settings I successfully build dbus-glib-0.88.

The messages are strange first of because 'configure' checks for 'dbus-glib' which is supposed to be built.
Comment 1 Sergei Steshenko 2011-01-15 00:27:00 UTC
Created attachment 42072 [details]
'config.log' generated by 'configure'
Comment 2 Sergei Steshenko 2011-01-15 00:29:00 UTC
Changing platform, priority, etc.
Comment 3 Sergei Steshenko 2011-01-15 00:36:53 UTC
OK, I see in 'config.log':

"Requested 'gobject-2.0 >= 2.26' but version of GObject is 2.24.2"

- i.e. first of all the error message in screen output is unclear - typically version errors are prominently printed.
Comment 4 Sergei Steshenko 2011-01-15 00:38:22 UTC
Looking at http://library.gnome.org/devel/glib/2.26/ I see:

"
for GLib 2.26.1 The latest version of this documentation can be found on-line at http://library.gnome.org/devel/glib/unstable/.
"

- I do not quite like the "unstable" part of the URL.
Comment 5 Simon McVittie 2011-01-17 03:22:51 UTC
(In reply to comment #3)
> OK, I see in 'config.log':
> 
> "Requested 'gobject-2.0 >= 2.26' but version of GObject is 2.24.2"

That's the real bug here: we need a newer GLib than you have, but the message isn't clear.

(In reply to comment #4)
> The latest version of this documentation can be found on-line
> at http://library.gnome.org/devel/glib/unstable/.

That doesn't mean that *every* version of GLib is unstable, it just means that the unstable branch (currently 2.27.x) is the newest. The latest stable branch is currently 2.26.x. When GLib 2.28 is released (soon), 2.28.x will be the new stable branch and 2.29.x will be the new unstable branch.
Comment 6 Simon McVittie 2011-03-29 06:47:28 UTC
Created attachment 44998 [details] [review]
Stop overriding pkg-config's nice informative message if GLib is too old

This means that instead of this rather ambiguous text:

    checking for DBUS_GLIB... no
    checking for DBUS_GLIB_THREADS... yes
    configure: error: GLib development libraries not found

platforms whose GLib is too old will get the conventional output:

    checking for DBUS_GLIB... no
    configure: error: Package requirements (gobject-2.0 >= 2.26) were not met:

    Requested 'gobject-2.0 >= 2.26' but version of GObject is 2.24.0

---

I personally think it's weird to use DBUS_GLIB as the variable name - we should be using GLIB or GOBJECT - but that's a more intrusive change, since the Makefiles need corresponding changes.
Comment 7 Colin Walters 2011-04-05 10:01:01 UTC
(In reply to comment #6)
> Created an attachment (id=44998) [details]
> Stop overriding pkg-config's nice informative message if GLib is too old

Looks obviously good; idly curious why we were overriding it in the first place, but not really worth the archaeology necessary.
Comment 8 Simon McVittie 2011-04-05 10:13:01 UTC
Fixed in git for 0.94, commit 0f782b478a.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.