Opened 8 months ago

Closed 7 months ago

Last modified 7 months ago

#68269 closed update (fixed)

libpixman{,-devel}: update to latest release; currently 0.42.x; required by latest release of cairo

Reported by: mascguy (Christopher Nielsen) Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: haspatch Cc: bgilbert (Benjamin Gilbert), ryandesign (Ryan Carsten Schmidt)
Port: libpixman libpixman-devel

Description

While upstream has marked these as pre-releases - whether intentionally or not - downstream projects like cairo are dependent on them. And upgrading the latter will require a newer release, for things like pixman_dither_t.

We can start by updating libpixman-devel, to allow testing locally with the latest changes. And I'll submit a PR to get this moving along.

Change History (25)

comment:1 Changed 8 months ago by mascguy (Christopher Nielsen)

PR created, to update libpixman-devel:

PR 20623 - libpixman-devel: update to 0.42.2

comment:2 Changed 8 months ago by ryandesign (Ryan Carsten Schmidt)

Keywords: haspatch added
Type: defectupdate

Thanks! I didn't know a new version was available. Looks like I completely missed the release of 0.40.0 three years ago. Livecheck didn't find it because it was checking for .tar.bz2 files and they switched to .tar.xz, so your update should fix the livecheck too.

Updating cairo (and first cairo-devel) to 1.18.0 is desired; I've recently been asked if I could do that; but as you know that requires switching to meson (#66852); my lack of familiarity with meson makes me reluctant to do that update but if you want to tackle it please do!

comment:3 Changed 8 months ago by Christopher Nielsen <mascguy@…>

In 1527679fa57cab283318fd5377a8fc4ef96fdb11/macports-ports (master):

libpixman-devel: update to 0.42.2

See: #68269

comment:4 Changed 8 months ago by ryandesign (Ryan Carsten Schmidt)

Looks like we have some problems on arm64.

comment:5 in reply to:  4 Changed 8 months ago by mascguy (Christopher Nielsen)

Replying to ryandesign:

Looks like we have some problems on arm64.

Yes indeed, will take a look when I get a chance.

comment:6 in reply to:  4 Changed 8 months ago by mascguy (Christopher Nielsen)

Replying to ryandesign:

Looks like we have some problems on arm64.

There's at least one merge request - only recently committed to master - which adds support for arm64 detection/builds:

MR 71 - pixman-arma64: Adjustments to build with llvm

That may not be the only one necessary though. So net-net, I need to dig through everything, to see what's needed. But encouraging, to be sure!

comment:7 in reply to:  description ; Changed 8 months ago by ryandesign (Ryan Carsten Schmidt)

Replying to mascguy:

downstream projects like cairo are dependent on them.

Are you sure? Even at the tip of its repository, cairo's meson.build says it only requires pixman 0.36.0.

https://gitlab.freedesktop.org/cairo/cairo/-/blob/77c2820840a8fc0fd5417e1b85f0fb3c153141d1/meson.build#L635-638

comment:8 in reply to:  7 ; Changed 8 months ago by mascguy (Christopher Nielsen)

Replying to ryandesign:

Replying to mascguy:

downstream projects like cairo are dependent on them.

Are you sure? Even at the tip of its repository, cairo's meson.build says it only requires pixman 0.36.0.

Then either that's out-of-date, or they aren't checking for newer features: The build fails due to the identifier mentioned, not being available in the older pixman release.

Last edited 8 months ago by mascguy (Christopher Nielsen) (previous) (diff)

comment:9 in reply to:  8 ; Changed 8 months ago by mascguy (Christopher Nielsen)

Replying to mascguy:

Replying to ryandesign:

Replying to mascguy:

downstream projects like cairo are dependent on them.

Are you sure? Even at the tip of its repository, cairo's meson.build says it only requires pixman 0.36.0.

Then either that's out-of-date, or they aren't checking for newer features: The build fails due to the identifier mentioned, not being available in the older pixman release.

I'll check to see whether there's already an upstream merge request, and/or issue. And if not, I'll submit a new issue.

comment:10 in reply to:  9 ; Changed 8 months ago by mascguy (Christopher Nielsen)

Replying to mascguy:

I'll check to see whether there's already an upstream merge request, and/or issue. And if not, I'll submit a new issue.

There didn't appear to be either. So I asked about the pixman required version, via the following merge request:

MR 511 - Enable access to the pixman dithering path

comment:11 Changed 8 months ago by bgilbert (Benjamin Gilbert)

Cc: bgilbert added

comment:12 in reply to:  description ; Changed 8 months ago by ryandesign (Ryan Carsten Schmidt)

Replying to mascguy:

While upstream has marked these as pre-releases - whether intentionally or not

Where do you see them marked as pre-releases?

They are in the "releases" directory on the server, which makes them releases; otherwise they would be in the "snapshots" directory.

This project follows the even-odd rule that many other GNOME projects used to follow. The second number in the version number—38, 40, 42, etc.—being even indicates a stable version.

From the mailing list announcements:

https://lists.freedesktop.org/archives/pixman/2020-April/004959.html:

A new pixman release 0.40.0 is now available. This is a stable release.

https://lists.freedesktop.org/archives/pixman/2022-October/004993.html

A new pixman release 0.42.0 is now available. This is a stable release.

https://lists.freedesktop.org/archives/pixman/2022-November/004994.html

A new pixman release 0.42.2 is now available. This is a stable release in the 0.42 series.

Last edited 8 months ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:13 in reply to:  12 Changed 8 months ago by mascguy (Christopher Nielsen)

Replying to ryandesign:

Replying to mascguy:

While upstream has marked these as pre-releases - whether intentionally or not

Where do you see them marked as pre-releases?

If you look at the tags, the newer releases are all shown as "Prerelease version bump to 0.xx.x:"

https://gitlab.freedesktop.org/pixman/pixman/-/tags

Not a big deal though, and glad you confirmed that they're all official releases.

comment:14 in reply to:  10 Changed 8 months ago by mascguy (Christopher Nielsen)

Replying to mascguy:

Replying to mascguy:

I'll check to see whether there's already an upstream merge request, and/or issue. And if not, I'll submit a new issue.

There didn't appear to be either. So I asked about the pixman required version, via the following merge request

Upstream quickly responded, and updated the minimum required version of pixman to 0.40.0 via the following. (Which has already been merged.)

MR 522 - Require pixman >= 0.40

comment:15 Changed 8 months ago by mascguy (Christopher Nielsen)

Cc: ryandesign added
Owner: changed from ryandesign to mascguy

comment:16 Changed 8 months ago by Christopher Nielsen <mascguy@…>

In 88e16204877c9eb0889ff5723295206a13d9193c/macports-ports (master):

libpixman-devel: add patch for arm; take co-ownership

See: #68269

comment:17 Changed 8 months ago by Christopher Nielsen <mascguy@…>

In 57f002868462e000ddcca8f097536a4c9852a1fb/macports-ports (master):

libpixman-devel: migrate to meson

See: #68269

comment:18 in reply to:  17 Changed 8 months ago by mascguy (Christopher Nielsen)

Replying to Christopher Nielsen <mascguy@…>:

In 57f002868462e000ddcca8f097536a4c9852a1fb/macports-ports (master):

libpixman-devel: migrate to meson

See: #68269

It looks like pixman is missing the requisite additions to meson.build, for setting the dylib versions. (Same issue as cairo; details in comment:5:issue:66852)

Created the following issue with upstream, and will submit a merge request with the changes necessary:

https://gitlab.freedesktop.org/pixman/pixman/-/issues/81

comment:19 Changed 8 months ago by Christopher Nielsen <mascguy@…>

In cea1fa47ed84843ea4ad6ac891647a08fcb159bf/macports-ports (master):

libpixman-devel: add patch for dylib versioning

See: #68269

comment:20 in reply to:  16 Changed 8 months ago by mascguy (Christopher Nielsen)

Replying to Christopher Nielsen <mascguy@…>:

In 88e16204877c9eb0889ff5723295206a13d9193c/macports-ports (master):

libpixman-devel: add patch for arm; take co-ownership

See: #68269

Unfortunately this patch hasn't fixed the ARM build, even in concert with the subsequent switch to Meson. (And had hoped that both combined, would result in a good build.)

Something is definitely awry, as pixman-config.h isn't being generated by the build script [during an ARM build].

Did some initial digging through upstream's issues, but didn't see anything applicable. The research continues...

comment:21 Changed 7 months ago by bgilbert (Benjamin Gilbert)

In 79f6caa48847bbc77c4e4b8f09527127bb2133d7/macports-ports (master):

libpixman-devel: fix build failure in ARM patch

Upstream renamed config.h to pixman-config.h in ee145e53d1.

See: #68269

comment:22 in reply to:  21 Changed 7 months ago by mascguy (Christopher Nielsen)

Resolution: fixed
Status: assignedclosed

Replying to bgilbert:

In 79f6caa48847bbc77c4e4b8f09527127bb2133d7/macports-ports (master):

libpixman-devel: fix build failure in ARM patch

Upstream renamed config.h to pixman-config.h in ee145e53d1.

See: #68269

Ah, yep, didn't notice that the rename hasn't been released yet. (It helps to look at the appropriate release branch, rather than master.)

Thank you!

comment:23 Changed 7 months ago by bgilbert (Benjamin Gilbert)

Sure thing!

How long are you planning to defer updating the non-devel libpixman port? It's currently vulnerable to CVE-2022-44638, and also has a regression that makes OpenSlide unusable. If you'd like to let the new release bake in -devel for a while, I could prepare backports for both issues.

comment:24 in reply to:  23 Changed 7 months ago by mascguy (Christopher Nielsen)

Replying to bgilbert:

How long are you planning to defer updating the non-devel libpixman port? It's currently vulnerable to CVE-2022-44638, and also has a regression that makes OpenSlide unusable. If you'd like to let the new release bake in -devel for a while, I could prepare backports for both issues.

The ARM build failure was the only blocker, so I'll go ahead and update the non-devel port ASAP. (Either later today, or worse-case, tomorrow.)

And thanks for the heads-up regarding the vulnerability, as well as the offer to backport the fixes!

comment:25 Changed 7 months ago by Christopher Nielsen <mascguy@…>

In c17ed8e724e9d0cf163a4993b90a563c41473e25/macports-ports (master):

libpixman: update to 0.42.2

Closes: #68269

Note: See TracTickets for help on using tickets.