diff mbox

[bug#69495,0/2] gnu: cairo: Update to 1.18.0.

Message ID 877chontxw.fsf@protonmail.com
State New
Headers show

Commit Message

John Kehayias March 27, 2024, 5:08 a.m. UTC
Hello,

Arg, I don't know if this ever was actually sent to the gnome-team! Also
adding Efraim due to a librsvg issue (below).

Apologies if it didn't go through originally (or if you are getting it
again).

On Sat, Mar 02, 2024 at 01:50 AM, John Kehayias wrote:

> Hi gnome-team and guix,
>
> I'm cc'ing the gnome-team as this would normally fall to them, but with their
> pending merge and the builds upcoming on mesa-updates (libdrm, which cairo
> depends on), I think this will go on mesa-updates. The patch is based on
> master, not gnome-team. Still, thought it would be good to have a review as
> this was non-trivial. Thanks to lilyp on #guix for tips!
>
> Please see the patches to update cairo to the new release (after many years!)
> of 1.18.0. An update to python-pycairo was needed first. The end result is
> that our cairo package is quite a bit simpler as the defaults include the tee
> backend that we had enabled before. I removed all the old configure flags and
> propagated-inputs which were commented out and now obsolete.
>
> The docs require gtk-doc which depends on cairo. To break the cycle cairo is
> hidden (but exported) and built without docs, with the public cairo-with-docs
> including them. I followed what was done for glib with a similar issue.
>
> I did not try too much enable tests, which may have been revamped? The quick
> look I took in the source docs suggested that it is very system dependent
> (reference images) though does run on their GitLab CI. When enabling
> test/ps2png.p/ps2png.c.o fails to build as it can't find cairo.h. Perhaps it
> needs to build tests in a phase after cairo has built and set in a way to find
> this just build version?
>
> Anyway, this built locally for me on x86_64. I built up to icecat, which needs
> the tee backend we previously manually enabled, and it built and ran
> successfully.
>
> Let me know of any issues or changes wanted or if someone wants to take this
> on a different branch. I think it makes sense on mesa-updates due to the
> libdrm update I will take there.
>
> Thanks!
> John
>
>
> John Kehayias (2):
>   gnu: python-pycairo: Update to 1.26.0.
>   gnu: cairo: Update to 1.18.0.
>
>  gnu/local.mk                                  |  2 -
>  gnu/packages/gtk.scm                          | 85 ++++++++++---------
>  .../patches/cairo-CVE-2018-19876.patch        | 37 --------
>  .../patches/cairo-CVE-2020-35492.patch        | 49 -----------
>  4 files changed, 47 insertions(+), 126 deletions(-)
>  delete mode 100644 gnu/packages/patches/cairo-CVE-2018-19876.patch
>  delete mode 100644 gnu/packages/patches/cairo-CVE-2020-35492.patch
>
>
> base-commit: b386c11e7804e0b577411d930b60f1e0a4a0382c
> prerequisite-patch-id: 2889be19c4a046760f2f608cefff987b11b65a31
> --
> 2.41.0

I've applied this series locally and haven't run into issues in building
(and trying a few random packages). Happy to take feedback before I push
this to mesa-updates, and even then will be some time before the branch
will be built to be merged to master. Other updates include mesa, sdl2,
and vulkan.

I did run into two test failures for the older librsvg-2.40. Since that
is an old version, I guess we might expect issues as dependencies are
updated. I disabled the two failing tests with the attached patch. One
referred to a bug fix that had something to do with calling cairo, not
sure about the other.

Apologies if the CCing with teams didn't go through properly! And thanks
to Liliana for initial help on #guix with sorting out what was needed
for the circular dependency between cairo and gtk-doc.

John

Comments

Efraim Flashner March 27, 2024, 8:47 a.m. UTC | #1
On Wed, Mar 27, 2024 at 05:08:02AM +0000, John Kehayias wrote:
> Hello,
> 
> Arg, I don't know if this ever was actually sent to the gnome-team! Also
> adding Efraim due to a librsvg issue (below).
> 
> Apologies if it didn't go through originally (or if you are getting it
> again).
> 
> On Sat, Mar 02, 2024 at 01:50 AM, John Kehayias wrote:
> 
> > Hi gnome-team and guix,
> >
> > I'm cc'ing the gnome-team as this would normally fall to them, but with their
> > pending merge and the builds upcoming on mesa-updates (libdrm, which cairo
> > depends on), I think this will go on mesa-updates. The patch is based on
> > master, not gnome-team. Still, thought it would be good to have a review as
> > this was non-trivial. Thanks to lilyp on #guix for tips!
> >
> > Please see the patches to update cairo to the new release (after many years!)
> > of 1.18.0. An update to python-pycairo was needed first. The end result is
> > that our cairo package is quite a bit simpler as the defaults include the tee
> > backend that we had enabled before. I removed all the old configure flags and
> > propagated-inputs which were commented out and now obsolete.
> >
> > The docs require gtk-doc which depends on cairo. To break the cycle cairo is
> > hidden (but exported) and built without docs, with the public cairo-with-docs
> > including them. I followed what was done for glib with a similar issue.
> >
> > I did not try too much enable tests, which may have been revamped? The quick
> > look I took in the source docs suggested that it is very system dependent
> > (reference images) though does run on their GitLab CI. When enabling
> > test/ps2png.p/ps2png.c.o fails to build as it can't find cairo.h. Perhaps it
> > needs to build tests in a phase after cairo has built and set in a way to find
> > this just build version?
> >
> > Anyway, this built locally for me on x86_64. I built up to icecat, which needs
> > the tee backend we previously manually enabled, and it built and ran
> > successfully.
> >
> > Let me know of any issues or changes wanted or if someone wants to take this
> > on a different branch. I think it makes sense on mesa-updates due to the
> > libdrm update I will take there.
> >
> > Thanks!
> > John
> >
> >
> > John Kehayias (2):
> >   gnu: python-pycairo: Update to 1.26.0.
> >   gnu: cairo: Update to 1.18.0.
> >
> >  gnu/local.mk                                  |  2 -
> >  gnu/packages/gtk.scm                          | 85 ++++++++++---------
> >  .../patches/cairo-CVE-2018-19876.patch        | 37 --------
> >  .../patches/cairo-CVE-2020-35492.patch        | 49 -----------
> >  4 files changed, 47 insertions(+), 126 deletions(-)
> >  delete mode 100644 gnu/packages/patches/cairo-CVE-2018-19876.patch
> >  delete mode 100644 gnu/packages/patches/cairo-CVE-2020-35492.patch
> >
> >
> > base-commit: b386c11e7804e0b577411d930b60f1e0a4a0382c
> > prerequisite-patch-id: 2889be19c4a046760f2f608cefff987b11b65a31
> > --
> > 2.41.0
> 
> I've applied this series locally and haven't run into issues in building
> (and trying a few random packages). Happy to take feedback before I push
> this to mesa-updates, and even then will be some time before the branch
> will be built to be merged to master. Other updates include mesa, sdl2,
> and vulkan.
> 
> I did run into two test failures for the older librsvg-2.40. Since that
> is an old version, I guess we might expect issues as dependencies are
> updated. I disabled the two failing tests with the attached patch. One
> referred to a bug fix that had something to do with calling cairo, not
> sure about the other.
> 
> Apologies if the CCing with teams didn't go through properly! And thanks
> to Liliana for initial help on #guix with sorting out what was needed
> for the circular dependency between cairo and gtk-doc.

Currently x86_64, aarch64 and riscv64 are the only architectures using
the newer librsvg. Can you test the older librsvg-2.40 with the newer
cairo on x86_64 to see if the tests also fail there? I'm curious if it's
a 32-bit problem or if its just that old.

Overall I have no issues with skipping those two tests.

> From 0f3e6653a65a5a7031f245260b6641aedc8f43f2 Mon Sep 17 00:00:00 2001
> Message-ID: <0f3e6653a65a5a7031f245260b6641aedc8f43f2.1711514951.git.john.kehayias@protonmail.com>
> From: John Kehayias <john.kehayias@protonmail.com>
> Date: Wed, 27 Mar 2024 00:45:59 -0400
> Subject: [PATCH] gnu: librsvg-2.40: Skip tests that fail with cairo 1.18.0.
> 
> * gnu/packages/gnome.scm (librsvg-2.40)[arguments]: Skip two tests which fail
> after cairo was updated to version 1.18.0.
> 
> Change-Id: If3867a9fdee6481da819954d77341f411e85e78b
> ---
>  gnu/packages/gnome.scm | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
> index 06256066bc..55b60b7b12 100644
> --- a/gnu/packages/gnome.scm
> +++ b/gnu/packages/gnome.scm
> @@ -3717,12 +3717,15 @@ (define-public librsvg-2.40
>                             "svg1.1/masking-mask-01-b.svg"
>                             ;; This test fails on aarch64:
>                             "bugs/777834-empty-text-children.svg"
> -
>                             ;; These two tests fail due to slightly different
>                             ;; text rendering (different kerning or similar),
>                             ;; nothing alarming.
>                             "bugs/340047.svg"
> -                           "bugs/749415.svg"))))))))
> +                           "bugs/749415.svg"
> +                           ;; These two tests fail with the update to cairo
> +                           ;; version 1.18.0.
> +                           "bugs/587721-text-transform.svg"
> +                           "svg1.1/masking-path-03-b.svg"))))))))
>      (native-inputs
>       (list pkg-config
>             `(,glib "bin") ; glib-mkenums, etc.
> 
> base-commit: c3f15443bc6d457758aad1326dcc6dcad9cf8d6e
> prerequisite-patch-id: fa1f23e1340a3eeb9f347ed719b9b0fa0558fb3f
> prerequisite-patch-id: a1eb5f0955b9988d3bfe3be8403c75999a1cae5f
> prerequisite-patch-id: 2889be19c4a046760f2f608cefff987b11b65a31
> prerequisite-patch-id: ea93b6662275aeec1e014a9bc9fe7a96f26ac600
> prerequisite-patch-id: 177440a12b7c797d22f8bb1253db133d2fbad348
> prerequisite-patch-id: 3a5189c1e8e4612ceb6f1b70cc3c83e39a977eb9
> -- 
> 2.41.0
>
John Kehayias March 27, 2024, 2:55 p.m. UTC | #2
Hi Efraim,

On Wed, Mar 27, 2024 at 10:47 AM, Efraim Flashner wrote:

>
> Currently x86_64, aarch64 and riscv64 are the only architectures using
> the newer librsvg. Can you test the older librsvg-2.40 with the newer
> cairo on x86_64 to see if the tests also fail there? I'm curious if it's
> a 32-bit problem or if its just that old.
>

Yes, those tests fail on both x86_64 and i686. I should have specified
that I probably ran into the issue building something for i686, but
then confirmed the tests fail and the patch skipping them works on
x86_64 and i686. But this was due to building something else so I just
double checked explicitly.

> Overall I have no issues with skipping those two tests.
>

Thanks! I'll keep this locally while I wait to see how to do the
vulkan upgrades.

Though maybe I should get the build farm moving on the rebuild from
cairo at least. The vulkan upgrade will also rebuild mesa dependents
as vulkan was needed for a fix in mesa (cherry picked from
core-updates).

John
Liliana Marie Prikler March 27, 2024, 5:52 p.m. UTC | #3
Am Mittwoch, dem 27.03.2024 um 05:08 +0000 schrieb John Kehayias:
> Hello,
> 
> Arg, I don't know if this ever was actually sent to the gnome-team!
> Also
> adding Efraim due to a librsvg issue (below).
> 
> Apologies if it didn't go through originally (or if you are getting
> it
> again).
> 
> On Sat, Mar 02, 2024 at 01:50 AM, John Kehayias wrote:
> 
> > Hi gnome-team and guix,
> > 
> > I'm cc'ing the gnome-team as this would normally fall to them, but
> > with their
> > pending merge and the builds upcoming on mesa-updates (libdrm,
> > which cairo
> > depends on), I think this will go on mesa-updates. The patch is
> > based on
> > master, not gnome-team. Still, thought it would be good to have a
> > review as
> > this was non-trivial. Thanks to lilyp on #guix for tips!
> > 
> > Please see the patches to update cairo to the new release (after
> > many years!)
> > of 1.18.0. An update to python-pycairo was needed first. The end
> > result is
> > that our cairo package is quite a bit simpler as the defaults
> > include the tee
> > backend that we had enabled before. I removed all the old configure
> > flags and
> > propagated-inputs which were commented out and now obsolete.
> > 
> > The docs require gtk-doc which depends on cairo. To break the cycle
> > cairo is
> > hidden (but exported) and built without docs, with the public
> > cairo-with-docs
> > including them. I followed what was done for glib with a similar
> > issue.
> > 
> > I did not try too much enable tests, which may have been revamped?
> > The quick
> > look I took in the source docs suggested that it is very system
> > dependent
> > (reference images) though does run on their GitLab CI. When
> > enabling
> > test/ps2png.p/ps2png.c.o fails to build as it can't find cairo.h.
> > Perhaps it
> > needs to build tests in a phase after cairo has built and set in a
> > way to find
> > this just build version?
> > 
> > Anyway, this built locally for me on x86_64. I built up to icecat,
> > which needs
> > the tee backend we previously manually enabled, and it built and
> > ran
> > successfully.
> > 
> > Let me know of any issues or changes wanted or if someone wants to
> > take this
> > on a different branch. I think it makes sense on mesa-updates due
> > to the
> > libdrm update I will take there.
> > 
> > Thanks!
> > John
> > 
> > 
> > John Kehayias (2):
> >   gnu: python-pycairo: Update to 1.26.0.
> >   gnu: cairo: Update to 1.18.0.
> > 
> >  gnu/local.mk                                  |  2 -
> >  gnu/packages/gtk.scm                          | 85 ++++++++++-----
> > ----
> >  .../patches/cairo-CVE-2018-19876.patch        | 37 --------
> >  .../patches/cairo-CVE-2020-35492.patch        | 49 -----------
> >  4 files changed, 47 insertions(+), 126 deletions(-)
> >  delete mode 100644 gnu/packages/patches/cairo-CVE-2018-19876.patch
> >  delete mode 100644 gnu/packages/patches/cairo-CVE-2020-35492.patch
> > 
> > 
> > base-commit: b386c11e7804e0b577411d930b60f1e0a4a0382c
> > prerequisite-patch-id: 2889be19c4a046760f2f608cefff987b11b65a31
> > --
> > 2.41.0
> 
> I've applied this series locally and haven't run into issues in
> building (and trying a few random packages). Happy to take feedback
> before I push this to mesa-updates, and even then will be some time
> before the branch will be built to be merged to master. Other updates
> include mesa, sdl2, and vulkan.
I think mesa-updates would be the right place – gnome-team is quite
close to merge, so we can't do a world rebuild there right now.


Cheers
John Kehayias April 18, 2024, 4:41 a.m. UTC | #4
On Wed, Mar 27, 2024 at 06:52 PM, Liliana Marie Prikler wrote:

> Am Mittwoch, dem 27.03.2024 um 05:08 +0000 schrieb John Kehayias:
>> Hello,
>>
>> Arg, I don't know if this ever was actually sent to the gnome-team!
>> Also
>> adding Efraim due to a librsvg issue (below).
>>
>> Apologies if it didn't go through originally (or if you are getting
>> it
>> again).
>>
>> On Sat, Mar 02, 2024 at 01:50 AM, John Kehayias wrote:
>>
>> > Hi gnome-team and guix,
>> >
>> > I'm cc'ing the gnome-team as this would normally fall to them, but
>> > with their
>> > pending merge and the builds upcoming on mesa-updates (libdrm,
>> > which cairo
>> > depends on), I think this will go on mesa-updates. The patch is
>> > based on
>> > master, not gnome-team. Still, thought it would be good to have a
>> > review as
>> > this was non-trivial. Thanks to lilyp on #guix for tips!
>> >
>> > Please see the patches to update cairo to the new release (after
>> > many years!)
>> > of 1.18.0. An update to python-pycairo was needed first. The end
>> > result is
>> > that our cairo package is quite a bit simpler as the defaults
>> > include the tee
>> > backend that we had enabled before. I removed all the old configure
>> > flags and
>> > propagated-inputs which were commented out and now obsolete.
>> >
>> > The docs require gtk-doc which depends on cairo. To break the cycle
>> > cairo is
>> > hidden (but exported) and built without docs, with the public
>> > cairo-with-docs
>> > including them. I followed what was done for glib with a similar
>> > issue.
>> >
>> > I did not try too much enable tests, which may have been revamped?
>> > The quick
>> > look I took in the source docs suggested that it is very system
>> > dependent
>> > (reference images) though does run on their GitLab CI. When
>> > enabling
>> > test/ps2png.p/ps2png.c.o fails to build as it can't find cairo.h.
>> > Perhaps it
>> > needs to build tests in a phase after cairo has built and set in a
>> > way to find
>> > this just build version?
>> >
>> > Anyway, this built locally for me on x86_64. I built up to icecat,
>> > which needs
>> > the tee backend we previously manually enabled, and it built and
>> > ran
>> > successfully.
>> >
>> > Let me know of any issues or changes wanted or if someone wants to
>> > take this
>> > on a different branch. I think it makes sense on mesa-updates due
>> > to the
>> > libdrm update I will take there.
>> >
>> > Thanks!
>> > John
>> >
>> >
>> > John Kehayias (2):
>> >   gnu: python-pycairo: Update to 1.26.0.
>> >   gnu: cairo: Update to 1.18.0.
>> >
>> >  gnu/local.mk                                  |  2 -
>> >  gnu/packages/gtk.scm                          | 85 ++++++++++-----
>> > ----
>> >  .../patches/cairo-CVE-2018-19876.patch        | 37 --------
>> >  .../patches/cairo-CVE-2020-35492.patch        | 49 -----------
>> >  4 files changed, 47 insertions(+), 126 deletions(-)
>> >  delete mode 100644 gnu/packages/patches/cairo-CVE-2018-19876.patch
>> >  delete mode 100644 gnu/packages/patches/cairo-CVE-2020-35492.patch
>> >
>> >
>> > base-commit: b386c11e7804e0b577411d930b60f1e0a4a0382c
>> > prerequisite-patch-id: 2889be19c4a046760f2f608cefff987b11b65a31
>> > --
>> > 2.41.0
>>
>> I've applied this series locally and haven't run into issues in
>> building (and trying a few random packages). Happy to take feedback
>> before I push this to mesa-updates, and even then will be some time
>> before the branch will be built to be merged to master. Other updates
>> include mesa, sdl2, and vulkan.
> I think mesa-updates would be the right place – gnome-team is quite
> close to merge, so we can't do a world rebuild there right now.
>
>
> Cheers

Thanks, and sorry for not updating sooner here.

Pushed on mesa-updates 51ae492e8bde8c5465ac1b7bab72944aaf798e3f and
merged to master with 2d5736cc3e869fadd2592cc13a8d332fac63b144

John
diff mbox

Patch

From 0f3e6653a65a5a7031f245260b6641aedc8f43f2 Mon Sep 17 00:00:00 2001
Message-ID: <0f3e6653a65a5a7031f245260b6641aedc8f43f2.1711514951.git.john.kehayias@protonmail.com>
From: John Kehayias <john.kehayias@protonmail.com>
Date: Wed, 27 Mar 2024 00:45:59 -0400
Subject: [PATCH] gnu: librsvg-2.40: Skip tests that fail with cairo 1.18.0.

* gnu/packages/gnome.scm (librsvg-2.40)[arguments]: Skip two tests which fail
after cairo was updated to version 1.18.0.

Change-Id: If3867a9fdee6481da819954d77341f411e85e78b
---
 gnu/packages/gnome.scm | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 06256066bc..55b60b7b12 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3717,12 +3717,15 @@  (define-public librsvg-2.40
                            "svg1.1/masking-mask-01-b.svg"
                            ;; This test fails on aarch64:
                            "bugs/777834-empty-text-children.svg"
-
                            ;; These two tests fail due to slightly different
                            ;; text rendering (different kerning or similar),
                            ;; nothing alarming.
                            "bugs/340047.svg"
-                           "bugs/749415.svg"))))))))
+                           "bugs/749415.svg"
+                           ;; These two tests fail with the update to cairo
+                           ;; version 1.18.0.
+                           "bugs/587721-text-transform.svg"
+                           "svg1.1/masking-path-03-b.svg"))))))))
     (native-inputs
      (list pkg-config
            `(,glib "bin") ; glib-mkenums, etc.

base-commit: c3f15443bc6d457758aad1326dcc6dcad9cf8d6e
prerequisite-patch-id: fa1f23e1340a3eeb9f347ed719b9b0fa0558fb3f
prerequisite-patch-id: a1eb5f0955b9988d3bfe3be8403c75999a1cae5f
prerequisite-patch-id: 2889be19c4a046760f2f608cefff987b11b65a31
prerequisite-patch-id: ea93b6662275aeec1e014a9bc9fe7a96f26ac600
prerequisite-patch-id: 177440a12b7c797d22f8bb1253db133d2fbad348
prerequisite-patch-id: 3a5189c1e8e4612ceb6f1b70cc3c83e39a977eb9
-- 
2.41.0