<pre style='margin:0'>
Ryan Schmidt (ryandesign) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/e9fce065c100a6fc78a0c98c151cc9819749f1c1">https://github.com/macports/macports-ports/commit/e9fce065c100a6fc78a0c98c151cc9819749f1c1</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new e9fce065c10 cairo[-devel]: add fixes to allow building on older MacOS
</span>e9fce065c10 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit e9fce065c100a6fc78a0c98c151cc9819749f1c1
</span>Author: Michael Dickens <michaelld@macports.org>
AuthorDate: Fri Feb 12 10:43:56 2021 -0500

<span style='display:block; white-space:pre;color:#404040;'>    cairo[-devel]: add fixes to allow building on older MacOS
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    All changes are already merged upstream as noted in the patch comments; these are backports.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/62156
</span>---
 graphics/cairo-devel/Portfile                      |  5 +++-
 .../files/patch-cairo-quartz-surfaces.diff         | 29 ++++++++++++++++++----
 graphics/cairo/Portfile                            |  5 +++-
 .../cairo/files/patch-cairo-quartz-surfaces.diff   | 29 ++++++++++++++++++----
 4 files changed, 56 insertions(+), 12 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/cairo-devel/Portfile b/graphics/cairo-devel/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index e653b055c28..58894c466d8 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/cairo-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/cairo-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11,7 +11,7 @@ name                        cairo-devel
</span> conflicts                   cairo
 set my_name                 cairo
 version                     1.17.4
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision                    1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision                    2
</span> checksums                   rmd160  7a440359be60f8cb971e9d538973ac29613e143e \
                             sha256  74b24c1ed436bbe87499179a3b27c43f4143b8676d8ad237a6fa787401959705 \
                             size    41834076
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -55,6 +55,9 @@ patchfiles-append           dont-check-stderr.patch
</span> # Fix crash on macOS Big Sur and newer.
 # https://gitlab.freedesktop.org/cairo/cairo/-/issues/420
 # https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/52
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://gitlab.freedesktop.org/cairo/cairo/-/commit/ba2afdcacf42eccf263b39efc77b85f3a65dcd74
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/119
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://gitlab.freedesktop.org/cairo/cairo/-/commit/38e486b34d435130f2fb38c429e6016c3c82cd53
</span> patchfiles-append           patch-cairo-quartz-surfaces.diff
 
 # https://trac.macports.org/ticket/34137
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/cairo-devel/files/patch-cairo-quartz-surfaces.diff b/graphics/cairo-devel/files/patch-cairo-quartz-surfaces.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 5d97c045d37..3e1a8e3254c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/cairo-devel/files/patch-cairo-quartz-surfaces.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/cairo-devel/files/patch-cairo-quartz-surfaces.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -20,7 +20,7 @@
</span> -    /* the imageSurface will be destroyed by the data provider's release callback */
      CGImageRelease (surface->image);
 -
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+    cairo_surface_destroy (surface->imageSurface);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    cairo_surface_destroy ( (cairo_surface_t*) surface->imageSurface);
</span>      return CAIRO_STATUS_SUCCESS;
  }
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -76,7 +76,7 @@
</span>  
      if (!_cairo_quartz_verify_surface_size(width, height))
        return SURFACE_ERROR_INVALID_SIZE;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -338,20 +340,19 @@ cairo_quartz_image_surface_create (cairo_surface_t *surface)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -338,20 +340,21 @@ cairo_quartz_image_surface_create (cairo_surface_t *surface)
</span>  
      memset (qisurf, 0, sizeof(cairo_quartz_image_surface_t));
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -86,8 +86,10 @@
</span> -     */
 -    cairo_surface_reference (surface);
 +    image_data = _cairo_malloc_ab (height, stride);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (unlikely (!image_data))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  return _cairo_error (CAIRO_STATUS_NO_MEMORY);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (unlikely (!image_data)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  free(qisurf);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return SURFACE_ERROR_NO_MEMORY;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span>  
 +    memcpy (image_data, image_surface->data, height * stride);
      image = CairoQuartzCreateCGImage (format,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -103,7 +105,24 @@
</span>  
      if (!image) {
        free (qisurf);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -368,7 +371,7 @@ cairo_quartz_image_surface_create (cairo_surface_t *surface)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     qisurf->height = height;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     qisurf->image = image;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    qisurf->imageSurface = image_surface;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    qisurf->imageSurface = (cairo_image_surface_t*) cairo_surface_reference(surface);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return &qisurf->base;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -381,7 +384,7 @@ cairo_quartz_image_surface_get_image (cairo_surface_t *asurface)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     /* Throw an error for a non-quartz surface */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (! _cairo_surface_is_quartz (asurface)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_SURFACE_TYPE_MISMATCH));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return SURFACE_ERROR_TYPE_MISMATCH;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return (cairo_surface_t*) surface->imageSurface;
</span> --- src/cairo-quartz-surface.c
 +++ src/cairo-quartz-surface.c
 @@ -778,20 +778,10 @@ CairoQuartzCreateGradientFunction (const cairo_gradient_pattern_t *gradient,
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/cairo/Portfile b/graphics/cairo/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index d87781916dd..9d090015e6f 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/cairo/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/cairo/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11,7 +11,7 @@ name                        cairo
</span> conflicts                   cairo-devel
 set my_name                 cairo
 version                     1.16.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision                    1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision                    2
</span> checksums                   rmd160  cfd2ef6ec55b267e04600f6b1e36bb07f2566b35 \
                             sha256  5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331 \
                             size    41997432
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -55,6 +55,9 @@ patchfiles-append           dont-check-stderr.patch
</span> # Fix crash on macOS Big Sur and newer.
 # https://gitlab.freedesktop.org/cairo/cairo/-/issues/420
 # https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/52
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://gitlab.freedesktop.org/cairo/cairo/-/commit/ba2afdcacf42eccf263b39efc77b85f3a65dcd74
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/119
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://gitlab.freedesktop.org/cairo/cairo/-/commit/38e486b34d435130f2fb38c429e6016c3c82cd53
</span> patchfiles-append           patch-cairo-quartz-surfaces.diff
 
 # https://trac.macports.org/ticket/34137
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/cairo/files/patch-cairo-quartz-surfaces.diff b/graphics/cairo/files/patch-cairo-quartz-surfaces.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 5d97c045d37..3e1a8e3254c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/cairo/files/patch-cairo-quartz-surfaces.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/cairo/files/patch-cairo-quartz-surfaces.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -20,7 +20,7 @@
</span> -    /* the imageSurface will be destroyed by the data provider's release callback */
      CGImageRelease (surface->image);
 -
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+    cairo_surface_destroy (surface->imageSurface);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    cairo_surface_destroy ( (cairo_surface_t*) surface->imageSurface);
</span>      return CAIRO_STATUS_SUCCESS;
  }
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -76,7 +76,7 @@
</span>  
      if (!_cairo_quartz_verify_surface_size(width, height))
        return SURFACE_ERROR_INVALID_SIZE;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -338,20 +340,19 @@ cairo_quartz_image_surface_create (cairo_surface_t *surface)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -338,20 +340,21 @@ cairo_quartz_image_surface_create (cairo_surface_t *surface)
</span>  
      memset (qisurf, 0, sizeof(cairo_quartz_image_surface_t));
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -86,8 +86,10 @@
</span> -     */
 -    cairo_surface_reference (surface);
 +    image_data = _cairo_malloc_ab (height, stride);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (unlikely (!image_data))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  return _cairo_error (CAIRO_STATUS_NO_MEMORY);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (unlikely (!image_data)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  free(qisurf);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return SURFACE_ERROR_NO_MEMORY;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span>  
 +    memcpy (image_data, image_surface->data, height * stride);
      image = CairoQuartzCreateCGImage (format,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -103,7 +105,24 @@
</span>  
      if (!image) {
        free (qisurf);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -368,7 +371,7 @@ cairo_quartz_image_surface_create (cairo_surface_t *surface)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     qisurf->height = height;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     qisurf->image = image;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    qisurf->imageSurface = image_surface;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    qisurf->imageSurface = (cairo_image_surface_t*) cairo_surface_reference(surface);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return &qisurf->base;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -381,7 +384,7 @@ cairo_quartz_image_surface_get_image (cairo_surface_t *asurface)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     /* Throw an error for a non-quartz surface */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (! _cairo_surface_is_quartz (asurface)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_SURFACE_TYPE_MISMATCH));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return SURFACE_ERROR_TYPE_MISMATCH;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return (cairo_surface_t*) surface->imageSurface;
</span> --- src/cairo-quartz-surface.c
 +++ src/cairo-quartz-surface.c
 @@ -778,20 +778,10 @@ CairoQuartzCreateGradientFunction (const cairo_gradient_pattern_t *gradient,
</pre><pre style='margin:0'>

</pre>