summaryrefslogtreecommitdiff
path: root/Build
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2016-12-09 08:52:59 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2016-12-09 08:52:59 +0000
commit0e55ebacfcc10e22f39e957c29b9946973ad3194 (patch)
tree173e33cb8550e1808279f4ffcad0bd1d5e5f0eaa /Build
parentafa67523e84af0ba0d8b5f50751d32e1a66f7c4b (diff)
cairo 1.14.8
git-svn-id: svn://tug.org/texlive/trunk@42658 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build')
-rw-r--r--Build/source/libs/cairo/ChangeLog5
-rw-r--r--Build/source/libs/cairo/README4
-rw-r--r--Build/source/libs/cairo/cairo-PATCHES/ChangeLog4
-rw-r--r--Build/source/libs/cairo/cairo-PATCHES/TL-Changes4
-rw-r--r--Build/source/libs/cairo/cairo-src/NEWS45
-rw-r--r--Build/source/libs/cairo/cairo-src/build/aclocal.float.m44
-rw-r--r--Build/source/libs/cairo/cairo-src/cairo-version.h2
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-debug.c2
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-pattern.c2
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-scaled-font.c24
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-surface-observer.c2
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-truetype-subset.c30
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-xcb-surface-render.c2
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-xlib-surface-shm.c8
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-xlib-surface.c4
-rwxr-xr-xBuild/source/libs/cairo/configure20
-rw-r--r--Build/source/libs/cairo/version.ac2
17 files changed, 122 insertions, 42 deletions
diff --git a/Build/source/libs/cairo/ChangeLog b/Build/source/libs/cairo/ChangeLog
index baec6d9f570..587e1a7fc46 100644
--- a/Build/source/libs/cairo/ChangeLog
+++ b/Build/source/libs/cairo/ChangeLog
@@ -1,3 +1,8 @@
+2016-12-09 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ Import cairo-1.14.8.
+ * version.ac: Adapted.
+
2016-02-15 Karl Berry <karl@tug.org>
* cairo-PATCHES: rename from cairo-src-PATCHES.
diff --git a/Build/source/libs/cairo/README b/Build/source/libs/cairo/README
index 853dc23241a..f4f61554b62 100644
--- a/Build/source/libs/cairo/README
+++ b/Build/source/libs/cairo/README
@@ -1,4 +1,4 @@
- Building cairo-1.14.6 as part of the TL tree
+ Building cairo-1.14.8 as part of the TL tree
============================================
This directory libs/cairo/ uses a proxy Makefile.am to build the cairo
@@ -12,4 +12,4 @@ been translated into equivalent test in libs/cairo/configure.ac.
2012-11-10 Taco Hoekwater <taco@metatex.org>
2013-04-15 Peter Breitenlohner <peb@mppmu.mpg.de>
-2015-12-28 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+2016-12-09 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
diff --git a/Build/source/libs/cairo/cairo-PATCHES/ChangeLog b/Build/source/libs/cairo/cairo-PATCHES/ChangeLog
index d8fa743af03..6f5e722812f 100644
--- a/Build/source/libs/cairo/cairo-PATCHES/ChangeLog
+++ b/Build/source/libs/cairo/cairo-PATCHES/ChangeLog
@@ -1,3 +1,7 @@
+2016-12-09 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ Import cairo-1.14.8.
+
2015-12-28 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
Import cairo-1.14.6.
diff --git a/Build/source/libs/cairo/cairo-PATCHES/TL-Changes b/Build/source/libs/cairo/cairo-PATCHES/TL-Changes
index 07117c82d20..05c12b8a4ff 100644
--- a/Build/source/libs/cairo/cairo-PATCHES/TL-Changes
+++ b/Build/source/libs/cairo/cairo-PATCHES/TL-Changes
@@ -1,5 +1,5 @@
-Changes applied to the cairo-1.14.6/ tree as obtained from:
- http://cairographics.org/releases/cairo-1.14.6.tar.xz
+Changes applied to the cairo-1.14.8/ tree as obtained from:
+ http://cairographics.org/releases/cairo-1.14.8.tar.xz
Removed:
Makefile.in
diff --git a/Build/source/libs/cairo/cairo-src/NEWS b/Build/source/libs/cairo/cairo-src/NEWS
index 3ec0e6c898e..08889d2d054 100644
--- a/Build/source/libs/cairo/cairo-src/NEWS
+++ b/Build/source/libs/cairo/cairo-src/NEWS
@@ -1,10 +1,53 @@
+Release 1.14.8 (2016-12-07 Bryce Harrington <bryce@osg.samsung.com>)
+========================================================================
+Bugfix release rolling up backported fixes for the past year.
+
+For a complete log of changes since 1.14.6, please see:
+
+ http://cairographics.org/releases/ChangeLog.cairo-1.14.8
+
+Features
+--------
+None
+
+API Changes
+-----------
+None
+
+Dependency Changes
+------------------
+None
+
+Performance Optimizations
+-------------------------
+None
+
+Bug Fixes
+---------
+* Fix "invalidfont" error on some printers when printing PDFs with
+ embedded fonts that have glyphs (such as spaces) with
+ num_contours == 0. (Bug #79897)
+* Fix deadlock when destruction of a scaled font indirectly triggers
+ destruction of a second scaled font, causing the global cache to be
+ locked twice. (Bug #93891)
+* Fix X errors reported to applications when shmdt() is called before
+ the Attach request is processed, due to missing xcb and xlib calls.
+* Fix random failure in record-paint-alpha-clip-mast test case, caused
+ by an incorrect assumption that a deferred clear can be skipped.
+ (Bug #84330)
+* Fix crash when dealing with an XShmGetImage() failure, caused by a
+ double free in _get_image_surface(). (Bug #91967)
+* Fix build issue when using non-GNU strings utility. (Bug #88639)
+* Cleanup debugging text sent to stdout instead of log. (Bug #95227)
+
+
Release 1.14.6 (2015-12-09 Bryce Harrington <bryce@osg.samsung.com>)
========================================================================
Simple bugfix release to fix one Windows issue.
For a complete log of changes since 1.14.4, please see:
- http://cairographics.org/releases/ChangeLog.1.14.6
+ http://cairographics.org/releases/ChangeLog.cairo-1.14.6
Features
--------
diff --git a/Build/source/libs/cairo/cairo-src/build/aclocal.float.m4 b/Build/source/libs/cairo/cairo-src/build/aclocal.float.m4
index 8f85f0862ba..ca14ea37707 100644
--- a/Build/source/libs/cairo/cairo-src/build/aclocal.float.m4
+++ b/Build/source/libs/cairo/cairo-src/build/aclocal.float.m4
@@ -31,10 +31,10 @@ int main() { return 0; }
]])], [
-if strings - conftest$ac_exeext | grep noonsees >/dev/null ; then
+if strings -a conftest$ac_exeext | grep noonsees >/dev/null ; then
ax_cv_c_float_words_bigendian=yes
fi
-if strings - conftest$ac_exeext | grep seesnoon >/dev/null ; then
+if strings -a conftest$ac_exeext | grep seesnoon >/dev/null ; then
if test "$ax_cv_c_float_words_bigendian" = unknown; then
ax_cv_c_float_words_bigendian=no
else
diff --git a/Build/source/libs/cairo/cairo-src/cairo-version.h b/Build/source/libs/cairo/cairo-src/cairo-version.h
index 4c1de000c1c..6c0b0902d3f 100644
--- a/Build/source/libs/cairo/cairo-src/cairo-version.h
+++ b/Build/source/libs/cairo/cairo-src/cairo-version.h
@@ -3,6 +3,6 @@
#define CAIRO_VERSION_MAJOR 1
#define CAIRO_VERSION_MINOR 14
-#define CAIRO_VERSION_MICRO 6
+#define CAIRO_VERSION_MICRO 8
#endif
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-debug.c b/Build/source/libs/cairo/cairo-src/src/cairo-debug.c
index 33d46aa3f79..e7ffe48d28c 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-debug.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-debug.c
@@ -262,7 +262,7 @@ _cairo_debug_print_path (FILE *stream, cairo_path_fixed_t *path)
box.p1.x, box.p1.y, box.p2.x, box.p2.y);
}
- printf ("\n");
+ fprintf (stream, "\n");
}
void
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-pattern.c b/Build/source/libs/cairo/cairo-src/src/cairo-pattern.c
index ac5d7af20a2..f0b879836df 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-pattern.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-pattern.c
@@ -4614,7 +4614,7 @@ static void
_cairo_debug_print_raster_source_pattern (FILE *file,
const cairo_raster_source_pattern_t *raster)
{
- printf (" content: %x, size %dx%d\n", raster->content, raster->extents.width, raster->extents.height);
+ fprintf (file, " content: %x, size %dx%d\n", raster->content, raster->extents.width, raster->extents.height);
}
static void
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-scaled-font.c b/Build/source/libs/cairo/cairo-src/src/cairo-scaled-font.c
index ac80c97d1c5..a22b36eef19 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-scaled-font.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-scaled-font.c
@@ -818,23 +818,35 @@ _cairo_scaled_font_thaw_cache (cairo_scaled_font_t *scaled_font)
void
_cairo_scaled_font_reset_cache (cairo_scaled_font_t *scaled_font)
{
+ cairo_scaled_glyph_page_t *page;
+
CAIRO_MUTEX_LOCK (scaled_font->mutex);
assert (! scaled_font->cache_frozen);
assert (! scaled_font->global_cache_frozen);
CAIRO_MUTEX_LOCK (_cairo_scaled_glyph_page_cache_mutex);
- while (! cairo_list_is_empty (&scaled_font->glyph_pages)) {
- cairo_scaled_glyph_page_t *page =
- cairo_list_first_entry (&scaled_font->glyph_pages,
- cairo_scaled_glyph_page_t,
- link);
+ cairo_list_foreach_entry (page,
+ cairo_scaled_glyph_page_t,
+ &scaled_font->glyph_pages,
+ link) {
cairo_scaled_glyph_page_cache.size -= page->cache_entry.size;
_cairo_hash_table_remove (cairo_scaled_glyph_page_cache.hash_table,
(cairo_hash_entry_t *) &page->cache_entry);
+ }
+ CAIRO_MUTEX_UNLOCK (_cairo_scaled_glyph_page_cache_mutex);
+
+ /* Destroy scaled_font's pages while holding its lock only, and not the
+ * global page cache lock. The destructor can cause us to recurse and
+ * end up back here for a different scaled_font. */
+
+ while (! cairo_list_is_empty (&scaled_font->glyph_pages)) {
+ page = cairo_list_first_entry (&scaled_font->glyph_pages,
+ cairo_scaled_glyph_page_t,
+ link);
_cairo_scaled_glyph_page_destroy (scaled_font, page);
}
- CAIRO_MUTEX_UNLOCK (_cairo_scaled_glyph_page_cache_mutex);
+
CAIRO_MUTEX_UNLOCK (scaled_font->mutex);
}
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-surface-observer.c b/Build/source/libs/cairo/cairo-src/src/cairo-surface-observer.c
index 52b013644db..e6f78e6da6f 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-surface-observer.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-surface-observer.c
@@ -1218,8 +1218,6 @@ _cairo_surface_observer_mark_dirty (void *abstract_surface,
cairo_surface_observer_t *surface = abstract_surface;
cairo_status_t status;
- printf ("mark-dirty (%d, %d) x (%d, %d)\n", x, y, width, height);
-
status = CAIRO_STATUS_SUCCESS;
if (surface->target->backend->mark_dirty_rectangle)
status = surface->target->backend->mark_dirty_rectangle (surface->target,
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-truetype-subset.c b/Build/source/libs/cairo/cairo-src/src/cairo-truetype-subset.c
index 645a89abf21..9137ef3aa38 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-truetype-subset.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-truetype-subset.c
@@ -653,16 +653,34 @@ cairo_truetype_font_write_glyf_table (cairo_truetype_font_t *font,
if (unlikely (status))
goto FAIL;
- if (size != 0) {
- status = font->backend->load_truetype_table (font->scaled_font_subset->scaled_font,
+ if (size > 1) {
+ tt_glyph_data_t *glyph_data;
+ int num_contours;
+
+ status = font->backend->load_truetype_table (font->scaled_font_subset->scaled_font,
TT_TAG_glyf, begin, buffer, &size);
if (unlikely (status))
goto FAIL;
- status = cairo_truetype_font_remap_composite_glyph (font, buffer, size);
- if (unlikely (status))
- goto FAIL;
- }
+ glyph_data = (tt_glyph_data_t *) buffer;
+ num_contours = (int16_t)be16_to_cpu (glyph_data->num_contours);
+ if (num_contours < 0) {
+ status = cairo_truetype_font_remap_composite_glyph (font, buffer, size);
+ if (unlikely (status))
+ goto FAIL;
+ } else if (num_contours == 0) {
+ /* num_contours == 0 is undefined in the Opentype
+ * spec. There are some embedded fonts that have a
+ * space glyph with num_contours = 0 that fails on
+ * some printers. The spec requires glyphs without
+ * contours to have a 0 size glyph entry in the loca
+ * table.
+ *
+ * If num_contours == 0, truncate the glyph to 0 size.
+ */
+ _cairo_array_truncate (&font->output, _cairo_array_num_elements (&font->output) - size);
+ }
+ }
}
status = cairo_truetype_font_align_output (font, &next);
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-xcb-surface-render.c b/Build/source/libs/cairo/cairo-src/src/cairo-xcb-surface-render.c
index 044339bce8f..139dcda827a 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-xcb-surface-render.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-xcb-surface-render.c
@@ -3399,8 +3399,6 @@ _composite_mask_clip (void *closure,
}
}
- dst->deferred_clear = FALSE; /* assert(trap extents == extents); */
-
status = _composite_traps (&info,
dst, CAIRO_OPERATOR_SOURCE, mask_pattern,
dst_x, dst_y,
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-xlib-surface-shm.c b/Build/source/libs/cairo/cairo-src/src/cairo-xlib-surface-shm.c
index fb40699dc1d..9824eff823b 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-xlib-surface-shm.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-xlib-surface-shm.c
@@ -441,7 +441,7 @@ static void send_event(cairo_xlib_display_t *display,
ev.type = display->shm->event;
ev.send_event = 1; /* XXX or lie? */
- ev.serial = NextRequest (display->display);
+ ev.serial = XNextRequest (display->display);
ev.drawable = display->shm->window;
ev.major_code = display->shm->opcode;
ev.minor_code = X_ShmPutImage;
@@ -599,7 +599,7 @@ _cairo_xlib_shm_pool_create(cairo_xlib_display_t *display,
goto cleanup;
}
- pool->attached = NextRequest (dpy);
+ pool->attached = XNextRequest (dpy);
success = XShmAttach (dpy, &pool->shm);
#if !IPC_RMID_DEFERRED_RELEASE
XSync (dpy, FALSE);
@@ -1199,7 +1199,7 @@ _cairo_xlib_shm_surface_mark_active (cairo_surface_t *_shm)
cairo_xlib_shm_surface_t *shm = (cairo_xlib_shm_surface_t *) _shm;
cairo_xlib_display_t *display = (cairo_xlib_display_t *) _shm->device;
- shm->active = NextRequest (display->display);
+ shm->active = XNextRequest (display->display);
}
void
@@ -1241,7 +1241,7 @@ _cairo_xlib_shm_surface_get_obdata (cairo_surface_t *surface)
cairo_xlib_display_t *display = (cairo_xlib_display_t *) surface->device;
cairo_xlib_shm_surface_t *shm = (cairo_xlib_shm_surface_t *) surface;
- display->shm->last_event = shm->active = NextRequest (display->display);
+ display->shm->last_event = shm->active = XNextRequest (display->display);
return &shm->info->pool->shm;
}
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-xlib-surface.c b/Build/source/libs/cairo/cairo-src/src/cairo-xlib-surface.c
index 029a542b946..ffea476f68f 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-xlib-surface.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-xlib-surface.c
@@ -807,6 +807,7 @@ _get_image_surface (cairo_xlib_surface_t *surface,
}
cairo_surface_destroy (&image->base);
+ image = NULL;
}
}
@@ -1011,7 +1012,8 @@ _get_image_surface (cairo_xlib_surface_t *surface,
cairo_device_release (&display->base);
if (unlikely (status)) {
- cairo_surface_destroy (&image->base);
+ if (image)
+ cairo_surface_destroy (&image->base);
return _cairo_surface_create_in_error (status);
}
diff --git a/Build/source/libs/cairo/configure b/Build/source/libs/cairo/configure
index 38af7a522eb..1257a39e154 100755
--- a/Build/source/libs/cairo/configure
+++ b/Build/source/libs/cairo/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for cairo (TeX Live) 1.14.6.
+# Generated by GNU Autoconf 2.69 for cairo (TeX Live) 1.14.8.
#
# Report bugs to <tex-k@tug.org>.
#
@@ -580,8 +580,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='cairo (TeX Live)'
PACKAGE_TARNAME='cairo--tex-live-'
-PACKAGE_VERSION='1.14.6'
-PACKAGE_STRING='cairo (TeX Live) 1.14.6'
+PACKAGE_VERSION='1.14.8'
+PACKAGE_STRING='cairo (TeX Live) 1.14.8'
PACKAGE_BUGREPORT='tex-k@tug.org'
PACKAGE_URL=''
@@ -1349,7 +1349,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures cairo (TeX Live) 1.14.6 to adapt to many kinds of systems.
+\`configure' configures cairo (TeX Live) 1.14.8 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1420,7 +1420,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of cairo (TeX Live) 1.14.6:";;
+ short | recursive ) echo "Configuration of cairo (TeX Live) 1.14.8:";;
esac
cat <<\_ACEOF
@@ -1523,7 +1523,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-cairo (TeX Live) configure 1.14.6
+cairo (TeX Live) configure 1.14.8
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2129,7 +2129,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by cairo (TeX Live) $as_me 1.14.6, which was
+It was created by cairo (TeX Live) $as_me 1.14.8, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -4383,7 +4383,7 @@ fi
# Define the identity of the package.
PACKAGE='cairo--tex-live-'
- VERSION='1.14.6'
+ VERSION='1.14.8'
cat >>confdefs.h <<_ACEOF
@@ -7273,7 +7273,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by cairo (TeX Live) $as_me 1.14.6, which was
+This file was extended by cairo (TeX Live) $as_me 1.14.8, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -7339,7 +7339,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-cairo (TeX Live) config.status 1.14.6
+cairo (TeX Live) config.status 1.14.8
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/Build/source/libs/cairo/version.ac b/Build/source/libs/cairo/version.ac
index 711b9a9c961..4dfbd0bc9bb 100644
--- a/Build/source/libs/cairo/version.ac
+++ b/Build/source/libs/cairo/version.ac
@@ -8,4 +8,4 @@ dnl
dnl --------------------------------------------------------
dnl
dnl m4-include this file to define the current cairo version
-m4_define([cairo_version], [1.14.6])
+m4_define([cairo_version], [1.14.8])