[arch-commits] Commit in lib32-cairo/repos/multilib-x86_64 (3 files)

Laurent Carlier lcarlier at gemini.archlinux.org
Tue Apr 5 10:54:59 UTC 2022


    Date: Tuesday, April 5, 2022 @ 10:54:59
  Author: lcarlier
Revision: 1181428

archrelease: copy trunk to multilib-x86_64

Added:
  lib32-cairo/repos/multilib-x86_64/0001-Fix-type1-subset-indexing.patch
    (from rev 1181427, lib32-cairo/trunk/0001-Fix-type1-subset-indexing.patch)
  lib32-cairo/repos/multilib-x86_64/PKGBUILD
    (from rev 1181427, lib32-cairo/trunk/PKGBUILD)
Deleted:
  lib32-cairo/repos/multilib-x86_64/PKGBUILD

--------------------------------------+
 0001-Fix-type1-subset-indexing.patch |  157 +++++++++++++++++++++++++++++++++
 PKGBUILD                             |   98 ++++++++++----------
 2 files changed, 208 insertions(+), 47 deletions(-)

Copied: lib32-cairo/repos/multilib-x86_64/0001-Fix-type1-subset-indexing.patch (from rev 1181427, lib32-cairo/trunk/0001-Fix-type1-subset-indexing.patch)
===================================================================
--- 0001-Fix-type1-subset-indexing.patch	                        (rev 0)
+++ 0001-Fix-type1-subset-indexing.patch	2022-04-05 10:54:59 UTC (rev 1181428)
@@ -0,0 +1,157 @@
+From ff4fd6f960deb7afdac233465a1f4e807234ad15 Mon Sep 17 00:00:00 2001
+From: Adrian Johnson <ajohnson at redneon.com>
+Date: Sun, 3 Apr 2022 20:03:58 +0930
+Subject: [PATCH] Fix type1-subset indexing
+
+Fixes #551
+
+Signed-off-by: Laurent Carlier <lordheavym at gmail.com>
+---
+ src/cairo-type1-subset.c | 50 ++++++++++++++++++++++++++--------------
+ 1 file changed, 33 insertions(+), 17 deletions(-)
+
+diff --git a/src/cairo-type1-subset.c b/src/cairo-type1-subset.c
+index 73f414dc4..0166f7a78 100644
+--- a/src/cairo-type1-subset.c
++++ b/src/cairo-type1-subset.c
+@@ -70,7 +70,7 @@ typedef struct _cairo_type1_font_subset {
+     struct {
+ 	unsigned int font_id;
+ 	char *base_font;
+-	unsigned int num_glyphs;
++	unsigned int num_glyphs; /* Num /CharStrings in font */
+ 	double x_min, y_min, x_max, y_max;
+ 	double ascent, descent;
+ 	double units_per_em;
+@@ -81,6 +81,9 @@ typedef struct _cairo_type1_font_subset {
+ 	unsigned long  trailer_size;
+     } base;
+ 
++    /* Num glyphs in subset. May be greater than
++     * scaled_font_subset->num_glyphs due to glyphs required by the
++     * SEAC operator. */
+     int num_glyphs;
+ 
+     /* The glyphs and glyph_names arrays are indexed by the order of
+@@ -89,12 +92,12 @@ typedef struct _cairo_type1_font_subset {
+      * function is used to map the glyph index to the glyph order in
+      * the Charstrings. */
+ 
+-    glyph_data_t *glyphs;
+-    char **glyph_names;
+     cairo_array_t glyphs_array;
++    glyph_data_t *glyphs; /* pointer to first element of above array */
+     cairo_array_t glyph_names_array;
++    char **glyph_names; /* pointer to first element of above array */
+ 
+-    int num_subrs;
++    int num_subrs; /* Num /Subrs routines in the font */
+     cairo_bool_t subset_subrs;
+     struct {
+ 	const char *subr_string;
+@@ -102,12 +105,17 @@ typedef struct _cairo_type1_font_subset {
+ 	const char *np;
+ 	int np_length;
+ 	cairo_bool_t used;
+-    } *subrs;
++    } *subrs; /* array with num_subrs elements */
+ 
+-    /* Indexed by subset_index this maps to the glyph order in the
+-     * glyph_names and glyphs arrays. Has font->num_glyphs
+-     * elements. */
+-    int *subset_index_to_glyphs;
++    /* Maps scaled_font_subset index to glyphs_array.
++     * Array size = scaled_font_subset->num_glyphs. */
++    int *scaled_subset_index_to_glyphs;
++
++    /* Keeps track of the glyphs that will be emitted in the subset.
++     * Allocated size = base.num_glyphs. Number of entries = num_glyphs.
++     * Array values are glyph_array indexes.
++     */
++    int *type1_subset_index_to_glyphs;
+ 
+     cairo_output_stream_t *output;
+     cairo_array_t contents;
+@@ -159,7 +167,12 @@ _cairo_type1_font_subset_init (cairo_type1_font_subset_t  *font,
+ 
+     _cairo_array_init (&font->glyphs_array, sizeof (glyph_data_t));
+     _cairo_array_init (&font->glyph_names_array, sizeof (char *));
+-    font->subset_index_to_glyphs = NULL;
++    font->scaled_subset_index_to_glyphs = calloc (scaled_font_subset->num_glyphs, sizeof font->scaled_subset_index_to_glyphs[0]);
++    if (unlikely (font->scaled_subset_index_to_glyphs == NULL))
++        return _cairo_error (CAIRO_STATUS_NO_MEMORY);
++
++
++    font->type1_subset_index_to_glyphs = NULL;
+     font->base.num_glyphs = 0;
+     font->num_subrs = 0;
+     font->subset_subrs = TRUE;
+@@ -180,7 +193,7 @@ cairo_type1_font_subset_use_glyph (cairo_type1_font_subset_t *font, int glyph)
+ 	return;
+ 
+     font->glyphs[glyph].subset_index = font->num_glyphs;
+-    font->subset_index_to_glyphs[font->num_glyphs] = glyph;
++    font->type1_subset_index_to_glyphs[font->num_glyphs] = glyph;
+     font->num_glyphs++;
+ }
+ 
+@@ -552,7 +565,7 @@ cairo_type1_font_subset_write_header (cairo_type1_font_subset_t *font,
+ 	}
+     } else {
+ 	for (i = 1; i < font->scaled_font_subset->num_glyphs; i++) {
+-	    glyph = font->scaled_font_subset->glyphs[i];
++	    glyph = font->scaled_subset_index_to_glyphs[i];
+ 	    _cairo_output_stream_printf (font->output,
+ 					 "dup %d /%s put\n",
+ 					 i,
+@@ -1391,8 +1404,8 @@ skip_subrs:
+     font->glyphs = _cairo_array_index (&font->glyphs_array, 0);
+     font->glyph_names = _cairo_array_index (&font->glyph_names_array, 0);
+     font->base.num_glyphs = _cairo_array_num_elements (&font->glyphs_array);
+-    font->subset_index_to_glyphs = calloc (font->base.num_glyphs, sizeof font->subset_index_to_glyphs[0]);
+-    if (unlikely (font->subset_index_to_glyphs == NULL))
++    font->type1_subset_index_to_glyphs = calloc (font->base.num_glyphs, sizeof font->type1_subset_index_to_glyphs[0]);
++    if (unlikely (font->type1_subset_index_to_glyphs == NULL))
+         return _cairo_error (CAIRO_STATUS_NO_MEMORY);
+ 
+     backend = font->scaled_font_subset->scaled_font->backend;
+@@ -1414,6 +1427,7 @@ skip_subrs:
+ 	    return status;
+ 
+ 	cairo_type1_font_subset_use_glyph (font, index);
++	font->scaled_subset_index_to_glyphs[i] = index;
+     }
+ 
+     /* Go through the charstring of each glyph in use, get the glyph
+@@ -1421,7 +1435,7 @@ skip_subrs:
+      * seac operator (which may cause font->num_glyphs to increase
+      * while this loop is executing). Also subset the Subrs. */
+     for (j = 0; j < font->num_glyphs; j++) {
+-	glyph = font->subset_index_to_glyphs[j];
++	glyph = font->type1_subset_index_to_glyphs[j];
+ 	font->build_stack.sp = 0;
+ 	font->ps_stack.sp = 0;
+ 	status = cairo_type1_font_subset_parse_charstring (font,
+@@ -1711,7 +1725,9 @@ _cairo_type1_font_subset_fini (cairo_type1_font_subset_t *font)
+ 
+     free (font->base.base_font);
+ 
+-    free (font->subset_index_to_glyphs);
++    free (font->scaled_subset_index_to_glyphs);
++
++    free (font->type1_subset_index_to_glyphs);
+ 
+     free (font->cleartext);
+ 
+@@ -1765,7 +1781,7 @@ _cairo_type1_subset_init (cairo_type1_subset_t		*type1_subset,
+ 	goto fail2;
+ 
+     for (i = 0; i < font.scaled_font_subset->num_glyphs; i++) {
+-	glyph = font.scaled_font_subset->glyphs[i];
++	glyph = font.scaled_subset_index_to_glyphs[i];
+ 	type1_subset->widths[i] = font.glyphs[glyph].width;
+     }
+ 
+-- 
+2.35.1
+

Deleted: PKGBUILD
===================================================================
--- PKGBUILD	2022-04-05 10:54:54 UTC (rev 1181427)
+++ PKGBUILD	2022-04-05 10:54:59 UTC (rev 1181428)
@@ -1,47 +0,0 @@
-# Maintainer: Jan Alexander Steffens (heftig) <heftig at archlinux.org>
-# Contributor: Ionut Biru <ibiru at archlinux.org>
-
-pkgname=lib32-cairo
-pkgver=1.17.6
-pkgrel=1
-pkgdesc="2D graphics library with support for multiple output devices (32-bit)"
-url="https://cairographics.org/"
-arch=(x86_64)
-license=(LGPL MPL)
-depends=(lib32-zlib lib32-libpng lib32-fontconfig lib32-freetype2 lib32-libx11
-         lib32-libxext lib32-libxrender lib32-libxcb lib32-glib2 lib32-pixman
-         cairo)
-makedepends=(valgrind git meson)
-options=(debug)
-_commit=b43e7c6f3cf7855e16170a06d3a9c7234c60ca94  # tags/1.17.6^0
-source=("git+https://gitlab.freedesktop.org/cairo/cairo.git#commit=$_commit")
-sha256sums=('SKIP')
-
-pkgver() {
-  cd cairo
-  git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g'
-}
-
-prepare() {
-  cd cairo
-}
-
-build() {
-  export CC="gcc -m32"
-  export CXX="g++ -m32"
-  export PKG_CONFIG="i686-pc-linux-gnu-pkg-config"
-
-  arch-meson cairo build \
-    --libdir=/usr/lib32 \
-    -D spectre=disabled \
-    -D tee=enabled \
-    -D tests=disabled \
-    -D symbol-lookup=disabled \
-    -D gtk_doc=false
-  meson compile -C build
-}
-
-package() {
-  meson install -C build --destdir "$pkgdir"
-  rm -r "$pkgdir"/usr/{include,bin}
-}

Copied: lib32-cairo/repos/multilib-x86_64/PKGBUILD (from rev 1181427, lib32-cairo/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2022-04-05 10:54:59 UTC (rev 1181428)
@@ -0,0 +1,51 @@
+# Maintainer: Jan Alexander Steffens (heftig) <heftig at archlinux.org>
+# Contributor: Ionut Biru <ibiru at archlinux.org>
+
+pkgname=lib32-cairo
+pkgver=1.17.6
+pkgrel=2
+pkgdesc="2D graphics library with support for multiple output devices (32-bit)"
+url="https://cairographics.org/"
+arch=(x86_64)
+license=(LGPL MPL)
+depends=(lib32-zlib lib32-libpng lib32-fontconfig lib32-freetype2 lib32-libx11
+         lib32-libxext lib32-libxrender lib32-libxcb lib32-glib2 lib32-pixman
+         cairo)
+makedepends=(valgrind git meson)
+options=(debug)
+_commit=b43e7c6f3cf7855e16170a06d3a9c7234c60ca94  # tags/1.17.6^0
+source=("git+https://gitlab.freedesktop.org/cairo/cairo.git#commit=$_commit"
+        0001-Fix-type1-subset-indexing.patch)
+sha256sums=('SKIP'
+            '296be3c73638314bea08fa51b5f1650ea0a2aab2a037ea55e41c319d64ca4c3c')
+
+pkgver() {
+  cd cairo
+  git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g'
+}
+
+prepare() {
+  cd cairo
+
+  patch -Np1 -i ../0001-Fix-type1-subset-indexing.patch
+}
+
+build() {
+  export CC="gcc -m32"
+  export CXX="g++ -m32"
+  export PKG_CONFIG="i686-pc-linux-gnu-pkg-config"
+
+  arch-meson cairo build \
+    --libdir=/usr/lib32 \
+    -D spectre=disabled \
+    -D tee=enabled \
+    -D tests=disabled \
+    -D symbol-lookup=disabled \
+    -D gtk_doc=false
+  meson compile -C build
+}
+
+package() {
+  meson install -C build --destdir "$pkgdir"
+  rm -r "$pkgdir"/usr/{include,bin}
+}



More information about the arch-commits mailing list