GNOME Bugzilla – Bug 776658
Fix build using jhbuild by updating cairomm dependencies
Last modified: 2017-01-12 11:15:48 UTC
Building cairomm directly from git rather than from increasingly outdated tarballs ought to resolve this. I'm testing a patch at the moment. > Message: 1 > Date: Fri, 30 Dec 2016 13:36:20 +0100 > From: Kjell Ahlstedt <kjell.ahlstedt@bredband.net> > To: Pavlo Solntsev <p_solntsev@meta.ua> > Cc: gtkmm-list@gnome.org > Subject: Re: gtkmm compilation issue via jhbuild > Message-ID: <2f3d927f-77f6-02bd-ef5e-94f09a7b3db4@bredband.net> > Content-Type: text/plain; charset=windows-1252; format=flowed > > jhbuild builds cairomm 1.15.1 from a tarball, but gtkmm at present > requires the latest cairomm from the git repository. See > https://www.cairographics.org/cairomm/ for instructions how to get > cairomm from git. > > Do you know that gtkmm and gtk+ are now unusually unstable? They will > become gtkmm-4.0 and gtk+-4.0, which will not be ABI-compatible with > gtkmm-3.0 and gtk+-3.0. If you want less unstable programs, you can > build gtkmm-3 with jhbuild. > > Kjell > > Den 2016-12-30 kl. 07:06, skrev Pavlo Solntsev: > > Hi, > > I was trying to compile gtkmm via jhbuild. All modules were ok, except > > gtkmm. I got this massage: > > > > /home/pavlo/jhbuild/checkout/gtkmm/gdk/gdkmm/cursor.cc: In member > > function ?Cairo::RefPtr<Cairo::Surface> > > Gdk::Cursor::get_surface(double&, double&)?: > > /home/pavlo/jhbuild/checkout/gtkmm/gdk/gdkmm/cursor.cc:178:10: error: > > ?make_refptr_for_instance? is not a member of ?Cairo? > > return ::Cairo::make_refptr_for_instance< ::Cairo::Surface>(new > > ::Cairo::Surface(gdk_cursor_get_surface(gobj(), &(x_hot), &(y_hot)), > > true /* take reference */)); > > ^~ > > /home/pavlo/jhbuild/checkout/gtkmm/gdk/gdkmm/cursor.cc:178:61: error: > > expected primary-expression before ?>? token > > return ::Cairo::make_refptr_for_instance< ::Cairo::Surface>(new > > ::Cairo::Surface(gdk_cursor_get_surface(gobj(), &(x_hot), &(y_hot)), > > true /* take reference */)); > > ^ > > Makefile:625: recipe for target 'cursor.lo' failed
I got past the Cairo issue and gdkmm, only to find a pile of errors in cellrenderer.cc due to this commit in GTK+: https://git.gnome.org/browse/gtk+/commit/?id=a36e5ceea74fecb7b8f5f196e592a4b633ed6eb3
Which version of cairomm-1.0 should be used by gtkmm-3? The old tarball was for 1.13.1. Is that an unstable release? If so, should we pull the cairomm-1-14 branch from git, assuming that's its stable counterpart and doesn't break ABI?
(In reply to Daniel Boles from comment #1) > I got past the Cairo issue and gdkmm, only to find a pile of errors in > cellrenderer.cc due to this commit in GTK+: > > https://git.gnome.org/browse/gtk+/commit/ > ?id=a36e5ceea74fecb7b8f5f196e592a4b633ed6eb3 => Bug 776659
Created attachment 342668 [details] [review] [PATCH] 3.24: Build cairomm from git instead of tarballs (In reply to Daniel Boles from comment #2) > Which version of cairomm-1.0 should be used by gtkmm-3? The old tarball was > for 1.13.1. Is that an unstable release? If so, should we pull the > cairomm-1-14 branch from git, assuming that's its stable counterpart and > doesn't break ABI? Assuming yes, this patch should sort it. Once I'm sure which branch gtkmm3 should check out, I'll move this to jhbuild so that someone there can review it.
Created attachment 342669 [details] [review] [PATCH] 3.24: Build cairomm from git instead of tarballs slimmed down slightly, mostly by letting jhbuild apply defaults for some attributes.
Created attachment 342670 [details] [review] [PATCH] 3.24: Build cairomm from git instead of tarballs 1st upload didn't take for some reason
Created attachment 342671 [details] [review] [PATCH] 3.24: Build cairomm from git instead of tarballs going to try that one last time, with a different filename to be certain...
I let Murray decide on this one, too (like bug 776520). He has made the patch that selects cairomm-1.15.1. There might be a good reason for not building cairomm from git, but I don't know what is the reason.
I guess this is probably not needed, due to Murray's recent commit: https://git.gnome.org/browse/jhbuild/commit/?id=28e78460bc54b03cdee49db39d403b84e7e3d0f6 but will leave it open for a while for confirmation.
I believe that the GNOME release team prefer to use cairomm via tarball, because they prefer to use cairo via a tarball, because it has a different release schedule, or because they generally want to have a less moving target at some level of the dependency stack. I wouldn't change that unless they wanted to. I've actually done the cairomm release and updated jhbuild to use it. Thanks for noticing the problem and trying to fix it.