Here is an update to cairo 1.14.0.

OK?


Index: Makefile
===================================================================
RCS file: /home/cvs/ports/graphics/cairo/Makefile,v
retrieving revision 1.53
diff -u -p -u -p -r1.53 Makefile
--- Makefile    13 Sep 2014 16:36:53 -0000      1.53
+++ Makefile    31 Oct 2014 05:43:35 -0000
@@ -2,8 +2,8 @@
 
 COMMENT=               vector graphics library
 
-DISTNAME=              cairo-1.12.16
-SHARED_LIBS+=          cairo 12.2
+DISTNAME=              cairo-1.14.0
+SHARED_LIBS+=          cairo 12.3
 SHARED_LIBS+=          cairo-gobject 1.1
 SHARED_LIBS+=          cairo-script-interpreter 1.1
 CATEGORIES=            graphics
Index: distinfo
===================================================================
RCS file: /home/cvs/ports/graphics/cairo/distinfo,v
retrieving revision 1.22
diff -u -p -u -p -r1.22 distinfo
--- distinfo    25 Sep 2013 18:07:09 -0000      1.22
+++ distinfo    31 Oct 2014 05:42:42 -0000
@@ -1,2 +1,2 @@
-SHA256 (cairo-1.12.16.tar.xz) = JQWVnrPx3j4YQQI7YVhb/TVoS5czx7ajZD9PTL3m2EY=
-SIZE (cairo-1.12.16.tar.xz) = 35889824
+SHA256 (cairo-1.14.0.tar.xz) = LPX4FDLnfqQ1mvnc0PT6830BWTRQE5HDEb/S0ZoBNLc=
+SIZE (cairo-1.14.0.tar.xz) = 36584076
Index: patches/patch-src_cairo-cff-subset_c
===================================================================
RCS file: patches/patch-src_cairo-cff-subset_c
diff -N patches/patch-src_cairo-cff-subset_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_cairo-cff-subset_c        31 Oct 2014 06:05:55 -0000
@@ -0,0 +1,126 @@
+$OpenBSD$
+
+CFF: Fix unaligned access
+
+--- src/cairo-cff-subset.c.orig        Mon Oct 13 21:46:33 2014
++++ src/cairo-cff-subset.c     Fri Oct 31 02:05:05 2014
+@@ -433,7 +433,7 @@ cff_index_read (cairo_array_t *index, unsigned char **
+     p = *ptr;
+     if (p + 2 > end_ptr)
+         return CAIRO_INT_STATUS_UNSUPPORTED;
+-    count = be16_to_cpu( *((uint16_t *)p) );
++    count = get_unaligned_be16 (p);
+     p += 2;
+     if (count > 0) {
+         offset_size = *p++;
+@@ -984,14 +984,14 @@ cairo_cff_font_read_fdselect (cairo_cff_font_t *font, 
+         for (i = 0; i < font->num_glyphs; i++)
+             font->fdselect[i] = *p++;
+     } else if (type == 3) {
+-        num_ranges = be16_to_cpu( *((uint16_t *)p) );
++        num_ranges = get_unaligned_be16 (p);
+         p += 2;
+         for  (i = 0; i < num_ranges; i++)
+         {
+-            first = be16_to_cpu( *((uint16_t *)p) );
++            first = get_unaligned_be16 (p);
+             p += 2;
+             fd = *p++;
+-            last = be16_to_cpu( *((uint16_t *)p) );
++            last = get_unaligned_be16 (p);
+             for (j = first; j < last; j++)
+                 font->fdselect[j] = fd;
+         }
+@@ -1722,7 +1722,7 @@ cairo_cff_font_get_gid_for_cid (cairo_cff_font_t  *fon
+           p = font->charset + 1;
+           g = 1;
+           while (g <= (unsigned)font->num_glyphs && p < font->data_end) {
+-              c = be16_to_cpu( *((uint16_t *)p) );
++              c = get_unaligned_be16 (p);
+               if (c == cid) {
+                   *gid = g;
+                   return CAIRO_STATUS_SUCCESS;
+@@ -1737,7 +1737,7 @@ cairo_cff_font_get_gid_for_cid (cairo_cff_font_t  *fon
+           first_gid = 1;
+           p = font->charset + 1;
+           while (first_gid <= (unsigned)font->num_glyphs && p + 2 < 
font->data_end) {
+-              first_cid = be16_to_cpu( *((uint16_t *)p) );
++              first_cid = get_unaligned_be16 (p);
+               num_left = p[2];
+               if (cid >= first_cid && cid <= first_cid + num_left) {
+                   *gid = first_gid + cid - first_cid;
+@@ -1753,8 +1753,8 @@ cairo_cff_font_get_gid_for_cid (cairo_cff_font_t  *fon
+           first_gid = 1;
+           p = font->charset + 1;
+           while (first_gid <= (unsigned)font->num_glyphs && p + 3 < 
font->data_end) {
+-              first_cid = be16_to_cpu( *((uint16_t *)p) );
+-              num_left = be16_to_cpu( *((uint16_t *)(p+2)) );
++              first_cid = get_unaligned_be16 (p);
++              num_left = get_unaligned_be16 (p+2);
+               if (cid >= first_cid && cid <= first_cid + num_left) {
+                   *gid = first_gid + cid - first_cid;
+                   return CAIRO_STATUS_SUCCESS;
+@@ -2328,7 +2328,7 @@ cairo_cff_font_write_cid_fontdict (cairo_cff_font_t *f
+     unsigned int i;
+     cairo_int_status_t status;
+     unsigned int offset_array;
+-    uint32_t *offset_array_ptr;
++    unsigned char *offset_array_ptr;
+     int offset_base;
+     uint16_t count;
+     uint8_t offset_size = 4;
+@@ -2349,7 +2349,7 @@ cairo_cff_font_write_cid_fontdict (cairo_cff_font_t *f
+     if (unlikely (status))
+         return status;
+     offset_base = _cairo_array_num_elements (&font->output) - 1;
+-    *offset_array_ptr = cpu_to_be32(1);
++    put_unaligned_be32(1, offset_array_ptr);
+     offset_array += sizeof(uint32_t);
+     for (i = 0; i < font->num_subset_fontdicts; i++) {
+         status = cff_dict_write (font->fd_dict[font->fd_subset_map[i]],
+@@ -2357,8 +2357,9 @@ cairo_cff_font_write_cid_fontdict (cairo_cff_font_t *f
+         if (unlikely (status))
+             return status;
+ 
+-      offset_array_ptr = (uint32_t *) _cairo_array_index (&font->output, 
offset_array);
+-        *offset_array_ptr = cpu_to_be32(_cairo_array_num_elements 
(&font->output) - offset_base);
++      offset_array_ptr = _cairo_array_index (&font->output, offset_array);
++      put_unaligned_be32 (_cairo_array_num_elements (&font->output) - 
offset_base,
++                          offset_array_ptr);
+       offset_array += sizeof(uint32_t);
+     }
+ 
+@@ -2609,7 +2610,7 @@ cairo_cff_font_create_set_widths (cairo_cff_font_t *fo
+     unsigned int i;
+     tt_hhea_t hhea;
+     int num_hmetrics;
+-    unsigned char buf[10];
++    uint16_t short_entry;
+     int glyph_index;
+     cairo_int_status_t status;
+ 
+@@ -2629,7 +2630,8 @@ cairo_cff_font_create_set_widths (cairo_cff_font_t *fo
+             status = font->backend->load_truetype_table 
(font->scaled_font_subset->scaled_font,
+                                                          TT_TAG_hmtx,
+                                                          glyph_index * 
long_entry_size,
+-                                                         buf, 
&short_entry_size);
++                                                         (unsigned char *) 
&short_entry,
++                                                       &short_entry_size);
+             if (unlikely (status))
+                 return status;
+         }
+@@ -2638,11 +2640,12 @@ cairo_cff_font_create_set_widths (cairo_cff_font_t *fo
+             status = font->backend->load_truetype_table 
(font->scaled_font_subset->scaled_font,
+                                                          TT_TAG_hmtx,
+                                                          (num_hmetrics - 1) * 
long_entry_size,
+-                                                         buf, 
&short_entry_size);
++                                                         (unsigned char *) 
&short_entry,
++                                                       &short_entry_size);
+             if (unlikely (status))
+                 return status;
+         }
+-        font->widths[i] = be16_to_cpu (*((int16_t*)buf));
++      font->widths[i] = be16_to_cpu (short_entry);
+     }
+ 
+     return CAIRO_STATUS_SUCCESS;
Index: patches/patch-src_cairo-image-info_c
===================================================================
RCS file: patches/patch-src_cairo-image-info_c
diff -N patches/patch-src_cairo-image-info_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_cairo-image-info_c        31 Oct 2014 06:06:22 -0000
@@ -0,0 +1,104 @@
+$OpenBSD$
+
+CFF: Fix unaligned access
+
+--- src/cairo-image-info.c.orig        Wed Sep 25 00:38:54 2013
++++ src/cairo-image-info.c     Fri Oct 31 02:05:05 2014
+@@ -39,12 +39,6 @@
+ #include "cairo-error-private.h"
+ #include "cairo-image-info-private.h"
+ 
+-static uint32_t
+-_get_be32 (const unsigned char *p)
+-{
+-    return p[0] << 24 | p[1] << 16 | p[2] << 8 | p[3];
+-}
+-
+ /* JPEG (image/jpeg)
+  *
+  * http://www.w3.org/Graphics/JPEG/itu-t81.pdf
+@@ -170,7 +164,7 @@ static const unsigned char _jpx_signature[] = {
+ static const unsigned char *
+ _jpx_next_box (const unsigned char *p)
+ {
+-    return p + _get_be32 (p);
++    return p + get_unaligned_be32 (p);
+ }
+ 
+ static const unsigned char *
+@@ -185,8 +179,8 @@ _jpx_match_box (const unsigned char *p, const unsigned
+     uint32_t length;
+ 
+     if (p + 8 < end) {
+-      length = _get_be32 (p);
+-      if (_get_be32 (p + 4) == type &&  p + length < end)
++      length = get_unaligned_be32 (p);
++      if (get_unaligned_be32 (p + 4) == type &&  p + length < end)
+           return TRUE;
+     }
+ 
+@@ -208,8 +202,8 @@ _jpx_find_box (const unsigned char *p, const unsigned 
+ static void
+ _jpx_extract_info (const unsigned char *p, cairo_image_info_t *info)
+ {
+-    info->height = _get_be32 (p);
+-    info->width = _get_be32 (p + 4);
++    info->height = get_unaligned_be32 (p);
++    info->width = get_unaligned_be32 (p + 4);
+     info->num_components = (p[8] << 8) + p[9];
+     info->bits_per_component = p[10];
+ }
+@@ -281,13 +275,13 @@ _cairo_image_info_get_png_info (cairo_image_info_t    
+        return CAIRO_INT_STATUS_UNSUPPORTED;
+ 
+     p += 4;
+-    if (_get_be32 (p) != PNG_IHDR)
++    if (get_unaligned_be32 (p) != PNG_IHDR)
+        return CAIRO_INT_STATUS_UNSUPPORTED;
+ 
+     p += 4;
+-    info->width = _get_be32 (p);
++    info->width = get_unaligned_be32 (p);
+     p += 4;
+-    info->height = _get_be32 (p);
++    info->height = get_unaligned_be32 (p);
+ 
+     return CAIRO_STATUS_SUCCESS;
+ }
+@@ -347,14 +341,14 @@ _jbig2_get_next_segment (const unsigned char  *p,
+     if (p + 6 >= end)
+       return NULL;
+ 
+-    seg_num = _get_be32 (p);
++    seg_num = get_unaligned_be32 (p);
+     *type = p[4] & 0x3f;
+     big_page_size = (p[4] & 0x40) != 0;
+     p += 5;
+ 
+     num_segs = p[0] >> 5;
+     if (num_segs == 7) {
+-      num_segs = _get_be32 (p) & 0x1fffffff;
++      num_segs = get_unaligned_be32 (p) & 0x1fffffff;
+       ref_seg_bytes = 4 + ((num_segs + 1)/8);
+     } else {
+       ref_seg_bytes = 1;
+@@ -373,7 +367,7 @@ _jbig2_get_next_segment (const unsigned char  *p,
+     if (p + 4 >= end)
+       return NULL;
+ 
+-    *data_len = _get_be32 (p);
++    *data_len = get_unaligned_be32 (p);
+     p += 4;
+     *data = p;
+ 
+@@ -397,8 +391,8 @@ _jbig2_get_next_segment (const unsigned char  *p,
+ static void
+ _jbig2_extract_info (cairo_image_info_t *info, const unsigned char *p)
+ {
+-    info->width = _get_be32 (p);
+-    info->height = _get_be32 (p + 4);
++    info->width = get_unaligned_be32 (p);
++    info->height = get_unaligned_be32 (p + 4);
+     info->num_components = 1;
+     info->bits_per_component = 1;
+ }
Index: patches/patch-src_cairo-tor-scan-converter_c
===================================================================
RCS file: patches/patch-src_cairo-tor-scan-converter_c
diff -N patches/patch-src_cairo-tor-scan-converter_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_cairo-tor-scan-converter_c        31 Oct 2014 06:04:13 
-0000
@@ -0,0 +1,17 @@
+$OpenBSD$
+
+tor-scan-converter: can't do_fullrow when intersection in row + 0.5subrow
+
+--- src/cairo-tor-scan-converter.c.orig        Fri Oct 31 02:02:09 2014
++++ src/cairo-tor-scan-converter.c     Fri Oct 31 02:02:58 2014
+@@ -1167,8 +1167,8 @@ can_do_full_row (struct active_list *active)
+ 
+       if (e->dy) {
+           struct quorem x = e->x;
+-          x.quo += e->dxdy_full.quo - e->dxdy.quo/2;
+-          x.rem += e->dxdy_full.rem - e->dxdy.rem/2;
++          x.quo += e->dxdy_full.quo;
++          x.rem += e->dxdy_full.rem;
+           if (x.rem < 0) {
+               x.quo--;
+               x.rem += e->dy;
Index: patches/patch-src_cairoint_h
===================================================================
RCS file: patches/patch-src_cairoint_h
diff -N patches/patch-src_cairoint_h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_cairoint_h        31 Oct 2014 06:06:43 -0000
@@ -0,0 +1,39 @@
+$OpenBSD$
+
+CFF: Fix unaligned access
+
+--- src/cairoint.h.orig        Mon Oct 13 21:46:33 2014
++++ src/cairoint.h     Fri Oct 31 02:05:05 2014
+@@ -240,6 +240,32 @@ be32_to_cpu(uint32_t v)
+ 
+ #endif
+ 
++/* Unaligned big endian access
++ */
++
++static inline uint16_t get_unaligned_be16 (const unsigned char *p)
++{
++    return p[0] << 8 | p[1];
++}
++
++static inline uint32_t get_unaligned_be32 (const unsigned char *p)
++{
++    return p[0] << 24 | p[1] << 16 | p[2] << 8 | p[3];
++}
++
++static inline void put_unaligned_be16 (uint16_t v, unsigned char *p)
++{
++    p[0] = (v >> 8) & 0xff;
++    p[1] = v & 0xff;
++}
++
++static inline void put_unaligned_be32 (uint32_t v, unsigned char *p)
++{
++    p[0] = (v >> 24) & 0xff;
++    p[1] = (v >> 16) & 0xff;
++    p[2] = (v >> 8)  & 0xff;
++    p[3] = v & 0xff;
++}
+ 
+ /* The glibc versions of ispace() and isdigit() are slow in UTF-8 locales.
+  */
Index: patches/patch-util_cairo-fdr_Makefile_in
===================================================================
RCS file: 
/home/cvs/ports/graphics/cairo/patches/patch-util_cairo-fdr_Makefile_in,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 patch-util_cairo-fdr_Makefile_in
--- patches/patch-util_cairo-fdr_Makefile_in    4 Mar 2013 20:40:19 -0000       
1.3
+++ patches/patch-util_cairo-fdr_Makefile_in    31 Oct 2014 05:45:17 -0000
@@ -1,7 +1,7 @@
 $OpenBSD: patch-util_cairo-fdr_Makefile_in,v 1.3 2013/03/04 20:40:19 eric Exp $
---- util/cairo-fdr/Makefile.in.orig    Thu Jan 31 10:25:59 2013
-+++ util/cairo-fdr/Makefile.in Sat Feb  2 00:30:35 2013
-@@ -380,7 +380,7 @@ AM_CPPFLAGS = -I$(top_srcdir)/src \
+--- util/cairo-fdr/Makefile.in.orig    Mon Oct 13 21:47:27 2014
++++ util/cairo-fdr/Makefile.in Fri Oct 31 01:44:23 2014
+@@ -358,7 +358,7 @@ AM_CPPFLAGS = -I$(top_srcdir)/src \
  cairo_fdr_la_SOURCES = fdr.c
  cairo_fdr_la_CPPFLAGS = $(AM_CPPFLAGS)
  cairo_fdr_la_CFLAGS = $(CAIRO_CFLAGS)
Index: patches/patch-util_cairo-sphinx_Makefile_in
===================================================================
RCS file: 
/home/cvs/ports/graphics/cairo/patches/patch-util_cairo-sphinx_Makefile_in,v
retrieving revision 1.1
diff -u -p -u -p -r1.1 patch-util_cairo-sphinx_Makefile_in
--- patches/patch-util_cairo-sphinx_Makefile_in 1 Jun 2013 12:11:52 -0000       
1.1
+++ patches/patch-util_cairo-sphinx_Makefile_in 31 Oct 2014 05:45:19 -0000
@@ -1,7 +1,7 @@
 $OpenBSD: patch-util_cairo-sphinx_Makefile_in,v 1.1 2013/06/01 12:11:52 
ajacoutot Exp $
---- util/cairo-sphinx/Makefile.in.orig Fri May 31 23:28:59 2013
-+++ util/cairo-sphinx/Makefile.in      Fri May 31 23:29:32 2013
-@@ -390,7 +390,7 @@ AM_CPPFLAGS = -I$(top_srcdir)/src \
+--- util/cairo-sphinx/Makefile.in.orig Mon Oct 13 21:47:28 2014
++++ util/cairo-sphinx/Makefile.in      Fri Oct 31 01:44:23 2014
+@@ -368,7 +368,7 @@ AM_CPPFLAGS = -I$(top_srcdir)/src \
  cairo_sphinx_la_SOURCES = fdr.c
  cairo_sphinx_la_CPPFLAGS = $(AM_CPPFLAGS)
  cairo_sphinx_la_CFLAGS = $(CAIRO_CFLAGS)
Index: patches/patch-util_cairo-trace_Makefile_in
===================================================================
RCS file: 
/home/cvs/ports/graphics/cairo/patches/patch-util_cairo-trace_Makefile_in,v
retrieving revision 1.5
diff -u -p -u -p -r1.5 patch-util_cairo-trace_Makefile_in
--- patches/patch-util_cairo-trace_Makefile_in  4 Mar 2013 20:40:19 -0000       
1.5
+++ patches/patch-util_cairo-trace_Makefile_in  31 Oct 2014 05:45:17 -0000
@@ -1,7 +1,7 @@
 $OpenBSD: patch-util_cairo-trace_Makefile_in,v 1.5 2013/03/04 20:40:19 eric 
Exp $
---- util/cairo-trace/Makefile.in.orig  Thu Jan 31 10:26:00 2013
-+++ util/cairo-trace/Makefile.in       Sat Feb  2 00:30:35 2013
-@@ -400,7 +400,7 @@ libcairo_trace_la_CPPFLAGS = -DCAIRO_TRACE_OUTDIR="\"$
+--- util/cairo-trace/Makefile.in.orig  Mon Oct 13 21:47:28 2014
++++ util/cairo-trace/Makefile.in       Fri Oct 31 01:44:23 2014
+@@ -378,7 +378,7 @@ libcairo_trace_la_CPPFLAGS = -DCAIRO_TRACE_OUTDIR="\"$
                          $(AM_CPPFLAGS)
  
  libcairo_trace_la_CFLAGS = $(CAIRO_CFLAGS) $(real_pthread_CFLAGS)
Index: pkg/PLIST
===================================================================
RCS file: /home/cvs/ports/graphics/cairo/pkg/PLIST,v
retrieving revision 1.16
diff -u -p -u -p -r1.16 PLIST
--- pkg/PLIST   1 Jun 2013 12:11:52 -0000       1.16
+++ pkg/PLIST   31 Oct 2014 05:49:57 -0000
@@ -27,7 +27,6 @@ lib/libcairo-script-interpreter.la
 lib/libcairo.a
 lib/libcairo.la
 @lib lib/libcairo.so.${LIBcairo_VERSION}
-lib/pkgconfig/
 lib/pkgconfig/cairo-fc.pc
 lib/pkgconfig/cairo-ft.pc
 lib/pkgconfig/cairo-gobject.pc
@@ -71,6 +70,7 @@ share/gtk-doc/html/cairo/cairo-Script-Su
 share/gtk-doc/html/cairo/cairo-Transformations.html
 share/gtk-doc/html/cairo/cairo-Types.html
 share/gtk-doc/html/cairo/cairo-User-Fonts.html
+share/gtk-doc/html/cairo/cairo-Version-Information.html
 share/gtk-doc/html/cairo/cairo-Win32-Fonts.html
 share/gtk-doc/html/cairo/cairo-Win32-Surfaces.html
 share/gtk-doc/html/cairo/cairo-XCB-Surfaces.html

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

Reply via email to