Opened 2 years ago

Closed 2 years ago

#64005 closed defect (fixed)

cairo was updated to 1.17.4

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: i0ntempest
Port: cairo

Description

The cairo port was updated to 1.17.4 in [e1e53f19f7ad0e7c754af3dd872a3adf54e8d9c4/macports-ports]. I didn't approve that; in fact I explained in #63398 why we should not do that. (It is not a stable version.) Why was it done anyway?

Change History (9)

comment:1 Changed 2 years ago by mascguy (Christopher Nielsen)

I thought we had reverted all such commits, before merging the GIMP 2.10.28 update PR.

I'll have to go back and review, Oct 7 feels like a lifetime ago...

comment:2 Changed 2 years ago by mascguy (Christopher Nielsen)

Cc: mascguy removed
Owner: set to mascguy
Status: newassigned

Ryan, I'll have to do some digging during my lunch break. But perhaps one of the GIMP dependencies - and/or GIMP itself - may have required the latest Cairo release. (Despite 1.17.x being considered less-than-stable.)

That's the only thing I can think of at the moment, as otherwise we tried to respect all of your comments/feedback.

More to follow though.

comment:3 in reply to:  2 Changed 2 years ago by mascguy (Christopher Nielsen)

Replying to mascguy:

Ryan, I'll have to do some digging during my lunch break. But perhaps one of the GIMP dependencies - and/or GIMP itself - may have required the latest Cairo release. (Despite 1.17.x being considered less-than-stable.)

That's the only thing I can think of at the moment, as otherwise we tried to respect all of your comments/feedback.

More to follow though.

Longer-term, we may need to support multiple versions of foundational ports like cairo, pango, glib2, etc - via the same segregation scheme used for Boost and OpenSSL - as being locked into one version causes serious dependency hell. That's something I'd take care of maintaining though, so that you don't have to deal with it.

I'm hoping to avoid that as much as possible, so don't get too nervous just yet. (And we'll certainly give you an opportunity to chime in, and provide feedback, before going crazy with more versioned ports.) But just a proactive heads-up, for future thought/consideration.

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

As far as I know, cairo, pango, and glib2 have always striven to be highly backward compatible, so I would most strongly oppose the creation of multiple segregated ports for them. It should completely suffice to have -devel ports for those wishing to explore new features or bug fixes, as we have already had for a long time.

cairo 1.16.0 is the latest stable version; the port should be at that version. Hopefully the developers of gimp did not depend upon things not included in that version. If they did, then we should ask the developers of cairo to release 1.18.0 stable.

comment:5 in reply to:  4 ; Changed 2 years ago by mascguy (Christopher Nielsen)

Replying to ryandesign:

As far as I know, cairo, pango, and glib2 have always striven to be highly backward compatible, so I would most strongly oppose the creation of multiple segregated ports for them. It should completely suffice to have -devel ports for those wishing to explore new features or bug fixes, as we have already had for a long time.

Agreed, and to reiterate, the desire is to avoid creation of additional ports when possible. Indeed, perhaps cairo and pango weren't the best examples.

But in the case of glib2, we're presently using an older release, due to various concerns voiced during the GIMP 2.10.28 upgrade. And if we supported multiple segregated versions, we could have the best of both worlds: Keep the older release for the umpteen different ports that may break, but still move forward for dependents when desired/possible.

So I'm not sure I agree, at least for glib2.

cairo 1.16.0 is the latest stable version; the port should be at that version. Hopefully the developers of gimp did not depend upon things not included in that version. If they did, then we should ask the developers of cairo to release 1.18.0 stable.

Still need to look into this further.

comment:6 in reply to:  5 ; Changed 2 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to mascguy:

But in the case of glib2, we're presently using an older release, due to various concerns voiced during the GIMP 2.10.28 upgrade.

Oh. Could you point me to what those concerns were? I recently updated glib2-devel to the next major version and was planning on updating glib2 as well, not aware there were problems with doing so.

And what's the verdict with regard to why cairo was updated to an unstable version?

comment:7 in reply to:  6 ; Changed 2 years ago by mascguy (Christopher Nielsen)

Replying to ryandesign:

Oh. Could you point me to what those concerns were? I recently updated glib2-devel to the next major version and was planning on updating glib2 as well, not aware there were problems with doing so.

The key concern was that we might break ports dependent on glib2. But so long as we gradually update it - per the approach you're currently following - there aren't any concerns, at least from my perspective.

And what's the verdict with regard to why cairo was updated to an unstable version?

Sorry for the delay on this. It may simply have been an oversight on my part, but can't say for sure.

So, I'm currently rebuilding a number of direct dependents with Cairo 1.16.0, to see whether there are any issues. And while this list is only a small subset of all dependents, it's a starting point:

  • cairomm
  • clutter
  • cogl
  • darktable
  • frei0r-plugins
  • grass7
  • gstreamer1-gst-plugins-good
  • harfbuzz-devel
  • libchamplain
  • libiodbc
  • librsvg
  • libspectre
  • pango
  • poppler
  • py27-cairo
  • py310-cairo
  • py39-cairo
  • rrdtool
  • texlive-bin
  • webkit2-gtk

But from a practical perspective: Given that Cairo 1.17.4 has been in use for a few months now - without any known issues (I believe?) - is it worth the effort of reverting to 1.16.0? (If nothing else, we'll need to rev-bump every direct dependent.)

Last edited 2 years ago by mascguy (Christopher Nielsen) (previous) (diff)

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

Replying to mascguy:

Replying to ryandesign:

Oh. Could you point me to what those concerns were? I recently updated glib2-devel to the next major version and was planning on updating glib2 as well, not aware there were problems with doing so.

The key concern was that we might break ports dependent on glib2. But so long as we gradually update it - per the approach you're currently following - there aren't any concerns, at least from my perspective.

Ok. I thought you were referring to a specific known build failure that would occur in gimp2 if we were to update glib2 to a newer version.

Given that Cairo 1.17.4 has been in use for a few months now - without any known issues (I believe?) - is it worth the effort of reverting to 1.16.0? (If nothing else, we'll need to rev-bump every direct dependent.)

Yeah let's keep it then. I'll fix the livecheck to only track stable versions again.

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

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

Resolution: fixed
Status: assignedclosed

In 69a791f4f5d26d193e348ff0d26e2dded3733f5c/macports-ports (master):

cairo: Fix livecheck to only track stable versions

Reverts 14aabe5edea652ab664733815f70246d547b5f29.

Actually reverting to the last stable version would require revbumping
everything that uses cairo which would be a pain. This latest
development version has been out for a year, so hopefully it doesn't
have too many huge problems, and it does fix a few issues the latest
stable version had, which is two years older. The release notes say the
person who has been doing cairo releases will not do any more, so we may
have to make do with this development version for awhile until someone
else volunteers to take over the releases.

Closes: #64005

Note: See TracTickets for help on using tickets.