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 776658 - Fix build using jhbuild by updating cairomm dependencies
Fix build using jhbuild by updating cairomm dependencies
Status: RESOLVED FIXED
Product: gtkmm
Classification: Bindings
Component: build
3.89.x
Other All
: Normal normal
: ---
Assigned To: gtkmm-forge
gtkmm-forge
Depends on:
Blocks:
 
 
Reported: 2016-12-31 19:07 UTC by Daniel Boles
Modified: 2017-01-12 11:15 UTC
See Also:
GNOME target: ---
GNOME version: 3.23/3.24


Attachments
[PATCH] 3.24: Build cairomm from git instead of tarballs (2.76 KB, patch)
2016-12-31 19:26 UTC, Daniel Boles
none Details | Review
[PATCH] 3.24: Build cairomm from git instead of tarballs (2.76 KB, patch)
2016-12-31 19:32 UTC, Daniel Boles
none Details | Review
[PATCH] 3.24: Build cairomm from git instead of tarballs (2.76 KB, patch)
2016-12-31 19:33 UTC, Daniel Boles
none Details | Review
[PATCH] 3.24: Build cairomm from git instead of tarballs (2.74 KB, patch)
2016-12-31 19:34 UTC, Daniel Boles
none Details | Review

Description Daniel Boles 2016-12-31 19:07:04 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
Comment 1 Daniel Boles 2016-12-31 19:11:06 UTC
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
Comment 2 Daniel Boles 2016-12-31 19:12:56 UTC
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?
Comment 3 Daniel Boles 2016-12-31 19:17:04 UTC
(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
Comment 4 Daniel Boles 2016-12-31 19:26:00 UTC
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.
Comment 5 Daniel Boles 2016-12-31 19:32:37 UTC
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.
Comment 6 Daniel Boles 2016-12-31 19:33:45 UTC
Created attachment 342670 [details] [review]
[PATCH] 3.24: Build cairomm from git instead of tarballs

1st upload didn't take for some reason
Comment 7 Daniel Boles 2016-12-31 19:34:58 UTC
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...
Comment 8 Kjell Ahlstedt 2017-01-02 17:31:01 UTC
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.
Comment 9 Daniel Boles 2017-01-12 11:09:30 UTC
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.
Comment 10 Murray Cumming 2017-01-12 11:15:48 UTC
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.