#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@…, alexleigh (Alex Leigh) | |
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)
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: | new → assigned |
comment:2 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | me@… added |
---|
Has duplicate #39250.
comment:5 follow-ups: 7 14 Changed 11 years ago by jmroot (Joshua Root)
Does running autoreconf help?
comment:7 follow-up: 17 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:10 follow-up: 11 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 follow-up: 12 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 follow-up: 13 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 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
comment:14 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:16 Changed 11 years ago by jmroot (Joshua Root)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:17 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | fixed |
---|---|
Status: | closed → reopened |
Replying to jmr@…:
Does running autoreconf help?
Replying to jmr@…:
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'sconfigure.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: | reopened → closed |
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)
comment:21 follow-up: 22 Changed 11 years ago by ibiwan@…
So... how do I undo my "fix" since it breaks other installs?
comment:22 follow-up: 23 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 follow-up: 24 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 follow-up: 25 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.
comment:25 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.
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 follow-up: 28 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 follow-up: 29 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 follow-up: 30 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 follow-up: 31 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 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: posixThis 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: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.
Great...
See also https://bugzilla.gnome.org/show_bug.cgi?id=700350