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 606164 - Pango build broken: gobject-introspection
Pango build broken: gobject-introspection
Status: RESOLVED OBSOLETE
Product: pango
Classification: Platform
Component: general
1.26.x
Other Mac OS
: Normal blocker
: ---
Assigned To: pango-maint
pango-maint
Depends on:
Blocks:
 
 
Reported: 2010-01-05 22:33 UTC by John Ralls
Modified: 2012-08-07 19:06 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
[configure] Don't require introspection.m4 installed on the system (5.24 KB, patch)
2010-01-07 01:22 UTC, Colin Walters
none Details | Review

Description John Ralls 2010-01-05 22:33:27 UTC
Changesets f9adbd0a57b3f43451e6d1e05d75c96fd116c7ec, aad6150aa47601dcc1c3aa7766dec828197b5919, and
fd15a3a04c69af0f5c04cde8c659269d0b139c28 of 18 Dec 2009 

cause Pango to require gobject-introspection. Gobject-introspection is not a cross-platform library: It is only able to scan ELF libraries (see gobject-introspection/giscanner/shlibs.py line 56 ff).

Introspection must be removed from Pango until the gobject-introspection team decides to support OSX and MSWin.
Comment 1 Behdad Esfahbod 2010-01-06 22:50:18 UTC
I believe Pango does not require gobject-introspection.  introspection can be turned off at configure time.  What you mean I guess is that pango's autogen.sh requires gobject-introspection.  That is fine with me and I don't see that as a bug.
Comment 2 Colin Walters 2010-01-07 01:22:20 UTC
Created attachment 150944 [details] [review]
[configure] Don't require introspection.m4 installed on the system

This avoids having a hard dependency on gobject-introspection for
building from git, which is problematic on OS X and Windows.
Comment 3 John Ralls 2010-01-07 04:03:56 UTC
(In reply to comment #1)
> I believe Pango does not require gobject-introspection.  introspection can be
> turned off at configure time.  What you mean I guess is that pango's autogen.sh
> requires gobject-introspection.  That is fine with me and I don't see that as a
> bug.

Yes, once I knew to try, Pango built when introspection.m4 was available, even though the rest of introspection wasn't. Colin Walters's patch to include introspection.m4 in the pango tree should therefore resolve the problem.

It might be preferable, though, to check 
PKG_CHECK_MODULES([INTROSPECTION], gobject-introspection >= 0.6.7,
    [GOBJECT_INTROSPECTION_CHECK([0.6.7])], HAVE_INTROSPECTION="no")
or something like that (I didn't test it), so introspection.m4 isn't even required. Then you wouldn't have to worry about the local copy of introspection.m4 becoming obsolete.
Comment 4 Behdad Esfahbod 2010-01-07 21:25:55 UTC
(In reply to comment #2)
> Created an attachment (id=150944) [details] [review]
> [configure] Don't require introspection.m4 installed on the system
> 
> This avoids having a hard dependency on gobject-introspection for
> building from git, which is problematic on OS X and Windows.

May be fine in the mean time, but long-term I don't like something like this.


(In reply to comment #3)
> It might be preferable, though, to check 
> PKG_CHECK_MODULES([INTROSPECTION], gobject-introspection >= 0.6.7,
>     [GOBJECT_INTROSPECTION_CHECK([0.6.7])], HAVE_INTROSPECTION="no")
> or something like that (I didn't test it), so introspection.m4 isn't even
> required. Then you wouldn't have to worry about the local copy of
> introspection.m4 becoming obsolete.

That doesn't work.
Comment 5 Owen Taylor 2010-01-11 16:34:25 UTC
(In reply to comment #0)
> Changesets f9adbd0a57b3f43451e6d1e05d75c96fd116c7ec,
> aad6150aa47601dcc1c3aa7766dec828197b5919, and
> fd15a3a04c69af0f5c04cde8c659269d0b139c28 of 18 Dec 2009 
> 
> cause Pango to require gobject-introspection. Gobject-introspection is not a
> cross-platform library: It is only able to scan ELF libraries (see
> gobject-introspection/giscanner/shlibs.py line 56 ff).
> 
> Introspection must be removed from Pango until the gobject-introspection team
> decides to support OSX and MSWin.

Hold on here, the comment in shlibs.py refers to the *non* libtool case. If you base --library=<blah>.la, then the current code is supposed to work fine, though it hasn't (to my knowledge) been tested on Windows.

See: https://bugzilla.gnome.org/show_bug.cgi?id=591669#c13

And I assume the Pango makefiles are set up to use --library=<blah>.la

(There may be other issues with gobject-introspection on Windows. In fact, if nobody has tested it there, than there almost certainly *are* other problems. But someobody is going to have to step up and try it out and find out what those are.)
Comment 6 John Ralls 2010-01-11 17:36:03 UTC
(In reply to comment #5)
> (In reply to comment #0)
> 
> Hold on here, the comment in shlibs.py refers to the *non* libtool case. If you
> base --library=<blah>.la, then the current code is supposed to work fine,
> though it hasn't (to my knowledge) been tested on Windows
> 
> See: https://bugzilla.gnome.org/show_bug.cgi?id=591669#c13
> 
> And I assume the Pango makefiles are set up to use --library=<blah>.la
> 
> (There may be other issues with gobject-introspection on Windows. In fact, if
> nobody has tested it there, than there almost certainly *are* other problems.
> But someobody is going to have to step up and try it out and find out what
> those are.)

You misunderstand the fundamental problem: gobject-introspection itself won't build on non-ELF platforms, but its presence is required to autogen Pango because introspection.m4 is needed to determine that gobject-introspection isn't installed. Building Pango from a tarball works OK, because a configure is already built so there's no need to run autogen.sh; one can't build from git unless one first downloads gobject-introspection and manually copies introspection.m4 to somewhere on aclocal's m4 search path.

I've added a comment to the bug you cited above with the details of the introspection build failing on OSX. 

I'll also point out that what you said in the comment you cited above was "With luck this should get us working for libtool on non-ELF systems as well." 

No such luck.
Comment 7 Owen Taylor 2010-01-11 23:11:04 UTC
(In reply to comment #6)
> (In reply to comment #5)
> > (In reply to comment #0)
> > 
> > Hold on here, the comment in shlibs.py refers to the *non* libtool case. If you
> > base --library=<blah>.la, then the current code is supposed to work fine,
> > though it hasn't (to my knowledge) been tested on Windows
> > 
> > See: https://bugzilla.gnome.org/show_bug.cgi?id=591669#c13
> > 
> > And I assume the Pango makefiles are set up to use --library=<blah>.la
> > 
> > (There may be other issues with gobject-introspection on Windows. In fact, if
> > nobody has tested it there, than there almost certainly *are* other problems.
> > But someobody is going to have to step up and try it out and find out what
> > those are.)
> 
> You misunderstand the fundamental problem: gobject-introspection itself won't
> build on non-ELF platforms

Your claim:

 - The gobject-introspection authors don't support non-ELF platforms as explained in this comment

My claim:

 - That comment is about something fairly obscure, and only refers to building without autotools and libtool.

If gobject-introspection isn't building because of that comment, it can most likely be fixed simply and with minimal effort.

>  but its presence is required to autogen Pango
> because introspection.m4 is needed to determine that gobject-introspection
> isn't installed. Building Pango from a tarball works OK, because a configure is
> already built so there's no need to run autogen.sh; one can't build from git
> unless one first downloads gobject-introspection and manually copies
> introspection.m4 to somewhere on aclocal's m4 search path.

There's quite a bit of precedent for such steps, there's also some precendent for duplicated .m4 files to avoid that, though that can easily lead to problems when the upstream .m4 file is fixed. Don't really have much of an opinion, it's whatever Behdad thinks.

> I've added a comment to the bug you cited above with the details of the
> introspection build failing on OSX. 
> 
> I'll also point out that what you said in the comment you cited above was "With
> luck this should get us working for libtool on non-ELF systems as well." 
> 
> No such luck.

Well, darn it all, my genius doeesn't extend to writing code that works perfectly the first time on all platforms...

Can you file a new bug about the problem you ran into? adding comments to old closed bugs doesn't generally work out well, since those bugs no longer show up in queries that developers make.
Comment 8 John Ralls 2010-01-11 23:32:19 UTC
No problem, the new bug is https://bugzilla.gnome.org/show_bug.cgi?id=606686

The comment doesn't affect anything, of course. The claim that the code the comment refers to is a corner-case which isn't encountered when building with libtool is disproved by the error message "../libtool: line 8858: exec: ldd: not found".