Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#39246 closed defect (fixed)

glib2 @2.36.2: build fails with automake 1.13.2

Reported by: mndavidoff (Monte Davidoff) Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.1.3
Keywords: Cc: me@…, cooljeanius (Eric Gallager), sia@…, ibiwan@…, dualityim@…
Port: glib2, glib2-devel

Description

The recent upgrade to automake 1.13.2 (r106431) seems to have broken the glib2 build.

$ sudo port -vs install glib2
...
make[4]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_glib2/glib2/work/glib-2.36.2/docs/reference/glib'
 cd ../../.. && /bin/sh /opt/local/var/macports/build/_opt_local_var_macports_s cd ../../.. && /bin/sh /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_glib2/glib2/work/glib-2.36.2/missing automake-1.13 --gnu docs/reference/glib/Makefile
configure.ac:66: error: version mismatch.  This is Automake 1.13.2,
configure.ac:66: but the definition used by this AM_INIT_AUTOMAKE
configure.ac:66: comes from Automake 1.13.1.  You should recreate
configure.ac:66: aclocal.m4 with aclocal and run automake again.
gtk-doc.make:32: warning: EXTRA_DIST multiply defined in condition TRUE ...
docs/reference/glib/Makefile.am:85:   'gtk-doc.make' included from here
Makefile.decl:8: ... 'EXTRA_DIST' previously defined here
docs/reference/glib/Makefile.am:2:   'Makefile.decl' included from here
WARNING: 'automake-1.13' is probably too old.
         You should only need it if you modified 'Makefile.am' or
         'configure.ac' or m4 files included by 'configure.ac'.
         The 'automake' program is part of the GNU Automake package:
         <http://www.gnu.org/software/automake>
         It also requires GNU Autoconf, GNU m4 and Perl in order to run:
         <http://www.gnu.org/software/autoconf>
         <http://www.gnu.org/software/m4/>
         <http://www.perl.org/>
make[4]: *** [Makefile.in] Error 63
make[4]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_glib2/glib2/work/glib-2.36.2/docs/reference/glib'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_glib2/glib2/work/glib-2.36.2/docs/reference'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_glib2/glib2/work/glib-2.36.2/docs'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_glib2/glib2/work/glib-2.36.2'
make: *** [all] Error 2
make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_glib2/glib2/work/glib-2.36.2'
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_glib2/glib2/work/glib-2.36.2" && /usr/bin/make -j2 -w all V=1 
Exit code: 2
Error: org.macports.build for port glib2 returned: command execution failed
Warning: targets not executed for glib2: org.macports.activate org.macports.build org.macports.destroot org.macports.install

Attachments (3)

main.log.gz (55.5 KB) - added by mndavidoff (Monte Davidoff) 11 years ago.
debug.txt (30.3 KB) - added by missourian55@… 11 years ago.
Debug Message from console
glib2+universal_failure.txt (631.3 KB) - added by missourian55@… 11 years ago.
Build output

Download all attachments as: .zip

Change History (36)

Changed 11 years ago by mndavidoff (Monte Davidoff)

Attachment: main.log.gz added

comment:1 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign@… removed
Owner: changed from macports-tickets@… to ryandesign@…
Port: glib2-devel added
Status: newassigned

comment:2 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: me@… added

Has duplicate #39250.

comment:3 Changed 11 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:4 Changed 11 years ago by sia@…

Cc: sia@… added

Cc Me!

comment:5 Changed 11 years ago by jmroot (Joshua Root)

Does running autoreconf help?

comment:6 Changed 11 years ago by cooljeanius (Eric Gallager)

Has duplicate #39257

comment:7 in reply to:  5 ; Changed 11 years ago by cooljeanius (Eric Gallager)

Replying to jmr@…:

Does running autoreconf help?

I think it would be worth it to run autoreconf anyway; there's a patch for glib2's configure.ac file that I've been meaning to write... but that's another topic...

comment:8 Changed 11 years ago by missourian55@…

Cc: missourian55@… added

Cc Me!

comment:9 Changed 11 years ago by ibiwan@…

Cc: ibiwan@… added

Cc Me!

comment:10 Changed 11 years ago by ibiwan@…

I went into /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_glib2/glib2/work/glib-2.36.2 and ran "autoreconf" without parameters. When it was done, I ran "port upgrade glib2" and it worked without errors.

comment:11 in reply to:  10 ; Changed 11 years ago by missourian55@…

Replying to ibiwan@…:

I went into /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_glib2/glib2/work/glib-2.36.2 and ran "autoreconf" without parameters. When it was done, I ran "port upgrade glib2" and it worked without errors.

Thank You! Now glib2 upgrade was successful but "gobject-introspection" failed, I will open a separate ticket for it

comment:12 in reply to:  11 ; Changed 11 years ago by ibiwan@…

Replying to missourian55@…:

Replying to ibiwan@…:

I went into /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_glib2/glib2/work/glib-2.36.2 and ran "autoreconf" without parameters. When it was done, I ran "port upgrade glib2" and it worked without errors.

Thank You! Now glib2 upgrade was successful but "gobject-introspection" failed, I will open a separate ticket for it

Same for me... what ticket number!?

comment:13 in reply to:  12 Changed 11 years ago by missourian55@…

Replying to ibiwan@…:

Replying to missourian55@…:

Replying to ibiwan@…:

I went into /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_glib2/glib2/work/glib-2.36.2 and ran "autoreconf" without parameters. When it was done, I ran "port upgrade glib2" and it worked without errors.

Thank You! Now glib2 upgrade was successful but "gobject-introspection" failed, I will open a separate ticket for it

Same for me... what ticket number!?

Opened an new ticket for "gobject-introspection" issue, ticket #39258

Last edited 11 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:14 in reply to:  5 Changed 11 years ago by mndavidoff (Monte Davidoff)

Replying to jmr@…:

Does running autoreconf help?

I did a port clean glib2, made a local copy of the Portfile and added this to the end of the post-patch step, and was then able to successfully build glib2.

system "cd ${worksrcpath} && aclocal && automake"

Replying to missourian55@…:

Now glib2 upgrade was successful but "gobject-introspection" failed

gobject-introspection built successfully for me.

comment:15 Changed 11 years ago by dualityim@…

Cc: dualityim@… added

Cc Me!

comment:16 Changed 11 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: assignedclosed

comment:17 in reply to:  7 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: closedreopened

Replying to jmr@…:

Does running autoreconf help?

Replying to jmr@…:

r106494

Thank you for trying to fix this, but I have a number of concerns with this fix.

First, any change you make to glib2 should also be made to glib2-devel.

I had considered using autoreconf to solve this. But the last time we did this, it caused the build to fail if pkgconfig was not installed (#32185), and I've verified this still happens today:

configure.ac:2650: warning: PKG_PROG_PKG_CONFIG is m4_require'd but not m4_defun'd
m4macros/gtk-doc.m4:7: GTK_DOC_CHECK is expanded from...
configure.ac:2650: the top level
configure.ac:88: error: possibly undefined macro: AC_DEFINE
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
autoreconf: /opt/local/bin/autoconf failed with exit status: 1

We could add a pkgconfig build dependency to solve this. We had previously not been able to do this, because pkgconfig depended on glib2, but it no longer does (it now includes a bundled copy of glib2).

Most problematic though, running autoreconf blows away the patches we're applying to the configure script, which I suspect caused #39258; the error there is:

:info:build girepository/girparser.c:462:11: error: duplicate case value '4'
:info:build             case sizeof(guint64):
:info:build                  ^
:info:build girepository/girparser.c:456:11: note: previous case defined here
:info:build             case sizeof(guint32):
:info:build                  ^
:info:build 1 error generated.

And the patch we want to apply relates to properly defining guint64, guint32 and related values.

Instead of patching configure, we could patch configure.ac, like we were doing before r87503. The patch has changed slightly since that time, so if we copy that old patch we would need to adjust it.

Whatever we do, we'll have to increase the revision of the glib2 port so that anyone who built it with the unpatched configure script will get it rebuilt properly.

Replying to md14-macports@…:

I did a port clean glib2, made a local copy of the Portfile and added this to the end of the post-patch step, and was then able to successfully build glib2.

system "cd ${worksrcpath} && aclocal && automake"

Replying to missourian55@…:

Now glib2 upgrade was successful but "gobject-introspection" failed

gobject-introspection built successfully for me.

Having the port manually run aclocal and automake would be another solution, since that would not regenerate the configure script. I think I like this solution best since it doesn't involve rewriting the patchfile, doesn't involve adding a pkgconfig dependency, and doesn't involve the time spent running autoconf. I'll look into it.

The real cause of the problem is the upstream bug I mentioned in comment:1 that they're using automake here at all. They shouldn't be using it here.

Replying to egall@…:

I think it would be worth it to run autoreconf anyway; there's a patch for glib2's configure.ac file that I've been meaning to write... but that's another topic...

We don't ever just "run autoreconf anyway". We run it if there's a reason to run it, and we don't if there isn't.

comment:18 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: reopenedclosed

glib2 fixed in r106496; merged to glib2-devel in r106497.

comment:19 Changed 11 years ago by jmroot (Joshua Root)

OK, the actual problem is that they're shipping docs/reference/*/Makefile.in with an older mtime than $(top_srcdir)/gtk-doc.make (upon which they are correctly declared to depend). r106498

comment:20 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Has duplicate #39262.

Merged r106498 to glib2-devel in r106500 and added a note to the upstream bug report.

comment:21 Changed 11 years ago by ibiwan@…

So... how do I undo my "fix" since it breaks other installs?

comment:22 in reply to:  21 ; Changed 11 years ago by larryv (Lawrence Velázquez)

Replying to ibiwan@…:

So... how do I undo my "fix" since it breaks other installs?

Do a selfupdate and then upgrade glib2.

comment:23 in reply to:  22 ; Changed 11 years ago by missourian55@…

Replying to larryv@…:

Replying to ibiwan@…:

So... how do I undo my "fix" since it breaks other installs?

Do a selfupdate and then upgrade glib2.

I am one of early ones who tried "autoreconf" even though it seems worked but it did break others, so i did uninstall the "glib2" and it dependents, but when I try to re-install , the build is simply sitting there for almost 20 minutes and nothing happening, any idea how to recover from this, I use wine a lot , which got un installed as a dependent of "glib2"

==> sudo port install glib2 +universal
--->  Computing dependencies for glib2
--->  Fetching archive for glib2
--->  Attempting to fetch glib2-2.36.2_1+universal.darwin_11.i386-x86_64.tbz2 from http://packages.macports.org/glib2
--->  Attempting to fetch glib2-2.36.2_1+universal.darwin_11.i386-x86_64.tbz2 from http://mse.uk.packages.macports.org/sites/packages.macports.org/glib2
--->  Attempting to fetch glib2-2.36.2_1+universal.darwin_11.i386-x86_64.tbz2 from http://lil.fr.packages.macports.org/glib2
--->  Fetching distfiles for glib2
--->  Attempting to fetch glib-2.36.2.tar.xz from ftp://ftp.gtk.org/pub/glib/2.36/
--->  Attempting to fetch glib-2.36.2.tar.xz from ftp://ftp.cse.buffalo.edu/pub/Gnome/sources/glib/2.36/
--->  Verifying checksum(s) for glib2
--->  Extracting glib2
--->  Applying patches to glib2
--->  Configuring glib2
--->  Building glib2

It's been struck like this for about 30 minutes now :-)

comment:24 in reply to:  23 ; Changed 11 years ago by larryv (Lawrence Velázquez)

Replying to missourian55@…:

It's been struck like this for about 30 minutes now :-)

Kill the build, clean glib2, and try sudo port -d install. If it gets stuck again, attach the output from that. (Do not paste it inline.)

NB: You didn’t have to uninstall all the dependents.

Changed 11 years ago by missourian55@…

Attachment: debug.txt added

Debug Message from console

Changed 11 years ago by missourian55@…

Attachment: glib2+universal_failure.txt added

Build output

comment:25 in reply to:  24 Changed 11 years ago by missourian55@…

Replying to larryv@…:

Replying to missourian55@…:

It's been struck like this for about 30 minutes now :-)

Kill the build, clean glib2, and try sudo port -d install. If it gets stuck again, attach the output from that. (Do not paste it inline.)

NB: You didn’t have to uninstall all the dependents.

Thanks, I ran the build as you explained and attached the two files with debug & build contents. Let me know if you need more detaisl

make[4]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_glib2/glib2/work/glib-2.36.2/gio/tests'
..
..
		
UNINSTALLED_GLIB_SRCDIR=../.. \
		UNINSTALLED_GLIB_BUILDDIR=../.. \
		/usr/bin/python ../../gio/gdbus-2.0/codegen/gdbus-codegen \
		--interface-prefix org.project. \
		--generate-c-code gdbus-test-codegen-generated \
		--c-generate-object-manager \
		--c-namespace Foo_iGen \
		--generate-docbook gdbus-test-codegen-generated-doc \
		--annotate "org.project.Bar" Key1 Value1 \
		--annotate "org.project.Bar" org.gtk.GDBus.Internal Value2 \
		--annotate "org.project.Bar.HelloWorld()" Key3 Value3 \
		--annotate "org.project.Bar::TestSignal" Key4 Value4 \
		--annotate "org.project.Bar:ay" Key5 Value5 \
		--annotate "org.project.Bar.TestPrimitiveTypes()[val_int32]" Key6 Value6 \
		--annotate "org.project.Bar.TestPrimitiveTypes()[ret_uint32]" Key7 Value7 \
		--annotate "org.project.Bar::TestSignal[array_of_strings]" Key8 Value8 \
		./test-codegen.xml \
		
../../gio/glib-compile-resources --target=test_resources.c --sourcedir=. --generate-source --c-name _g_test1 test2.gresource.xml
../../gio/glib-compile-resources --target=test_resources2.c --sourcedir=. --generate --c-name _g_test2 --manual-register test3.gresource.xml
../../gio/glib-compile-resources --target=test_resources2.h --sourcedir=. --generate --c-name _g_test2 --manual-register test3.gresource.xml

(glib-compile-resources:29334): GLib-CRITICAL **: attempting to free a locked GVariant instance.  This should never happen.
Last edited 11 years ago by missourian55@… (previous) (diff)

comment:26 Changed 11 years ago by missourian55@…

Any one still seeing below issue when executing

sudo port install glib2 +universal

(glib-compile-resources:29334): GLib-CRITICAL **: attempting to free a locked GVariant instance.  This should never happen.

comment:27 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

According to a quick Google search, nobody has ever seen this problem except you.

I see you are on Lion. What version of Xcode and clang do you have?

Does the problem occur when not building universal? Or only when building universal?

comment:28 in reply to:  27 ; Changed 11 years ago by missourian55@…

Replying to ryandesign@…:

According to a quick Google search, nobody has ever seen this problem except you.

I see you are on Lion. What version of Xcode and clang do you have?

Does the problem occur when not building universal? Or only when building universal?

This problem happens only when building universal, wine has dependency on glib2 +universal I don't know how to avoid that. I had xcode 4.2 or something until yesterday but I have upgraded to xcode Version 4.6.2 (4H1003), still my glib2 +universal installation fails.

comment:29 in reply to:  28 ; Changed 11 years ago by missourian55@…

Replying to missourian55@…:

Replying to ryandesign@…:

According to a quick Google search, nobody has ever seen this problem except you.

I see you are on Lion. What version of Xcode and clang do you have?

Does the problem occur when not building universal? Or only when building universal?

This problem happens only when building universal, wine has dependency on glib2 +universal I don't know how to avoid that. I had xcode 4.2 or something until yesterday but I have upgraded to xcode Version 4.6.2 (4H1003), still my glib2 +universal installation fails.

My clang is

==> clang --version
Apple clang version 3.0 (tags/Apple/clang-211.12) (based on LLVM 3.0svn)
Target: x86_64-apple-darwin11.4.2
Thread model: posix

comment:30 in reply to:  29 ; Changed 11 years ago by larryv (Lawrence Velázquez)

Replying to missourian55@…:

My clang is

==> clang --version
Apple clang version 3.0 (tags/Apple/clang-211.12) (based on LLVM 3.0svn)
Target: x86_64-apple-darwin11.4.2
Thread model: posix

This is the Clang included with Xcode 4.2. Please update your Command Line Tools via Xcode > Preferences > Downloads > Components.

comment:31 in reply to:  30 Changed 11 years ago by missourian55@…

Replying to larryv@…:

Replying to missourian55@…:

My clang is

==> clang --version
Apple clang version 3.0 (tags/Apple/clang-211.12) (based on LLVM 3.0svn)
Target: x86_64-apple-darwin11.4.2
Thread model: posix

This is the Clang included with Xcode 4.2. Please update your Command Line Tools via Xcode > Preferences > Downloads > Components.

Thank You larryv & ryandesign, as soon as I updated Clang , my installation of glib2 +universal went smooth, installed wine and I am back to business, I appreciate y'all for the help.

comment:32 Changed 11 years ago by missourian55@…

Cc: missourian55@… removed

Cc Me!

comment:33 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Thanks. For years we've prevented glib2 from building with clang at all because of various issues, but future versions of Xcode will contain no compilers other than clang, and recently the port seemed to build OK with even older versions of clang, so two days ago we started allowing it again. See #32202. But I may not have tested with the universal variant, so thank you for finding that problem. I've verified that clang 318.0.61 from Xcode 4.3.3 builds glib2 fine universal, so in r106550 I've blacklisted just older versions of clang again.

Note: See TracTickets for help on using tickets.