OBS User unknown 2007-07-04 22:06:37 +00:00 committed by Git OBS Bridge
parent 42fae3b969
commit ef79e3879a
8 changed files with 111 additions and 77 deletions

View File

@ -6,9 +6,9 @@ Fri Apr 28 18:46:08 CEST 2006 - mfabian@suse.de
https://bugs.freedesktop.org/show_bug.cgi?id=10413 https://bugs.freedesktop.org/show_bug.cgi?id=10413
================================================================================ ================================================================================
--- cairo-1.4.0/src/cairo-ft-font.c --- cairo-1.4.10/src/cairo-ft-font.c
+++ cairo-1.4.0/src/cairo-ft-font.c +++ cairo-1.4.10/src/cairo-ft-font.c
@@ -2232,20 +2232,16 @@ @@ -2321,20 +2321,16 @@
if (options->antialias != CAIRO_ANTIALIAS_DEFAULT) if (options->antialias != CAIRO_ANTIALIAS_DEFAULT)
{ {
@ -30,7 +30,7 @@ https://bugs.freedesktop.org/show_bug.cgi?id=10413
int rgba; int rgba;
if (options->antialias == CAIRO_ANTIALIAS_SUBPIXEL) { if (options->antialias == CAIRO_ANTIALIAS_SUBPIXEL) {
@@ -2269,19 +2265,17 @@ @@ -2358,19 +2354,17 @@
rgba = FC_RGBA_NONE; rgba = FC_RGBA_NONE;
} }
@ -53,7 +53,7 @@ https://bugs.freedesktop.org/show_bug.cgi?id=10413
{ {
int hint_style; int hint_style;
@@ -2302,6 +2296,7 @@ @@ -2391,6 +2385,7 @@
break; break;
} }

View File

@ -1,6 +1,15 @@
--- ../cairo/src/cairo-xlib-surface.c 2006-01-19 14:55:25.000000000 -0500 This fixed a problem with libpixman getting the depth wrong for some
+++ ./src/cairo-xlib-surface.c 2006-01-19 14:55:25.000000000 -0500 16bpp image formats but still render things correctly. Using
@@ -675,7 +675,7 @@ surface->depth instead of image->depth for the ximage was a quick way to
avoid this problem.
It's not the appropriate fix and should probably not go upstream.
libpixmap should be fixed if it hasn't already.
================================================================================
--- src/cairo-xlib-surface.c
+++ src/cairo-xlib-surface.c
@@ -796,7 +796,7 @@
ximage.bitmap_unit = 32; /* always for libpixman */ ximage.bitmap_unit = 32; /* always for libpixman */
ximage.bitmap_bit_order = native_byte_order; ximage.bitmap_bit_order = native_byte_order;
ximage.bitmap_pad = 32; /* always for libpixman */ ximage.bitmap_pad = 32; /* always for libpixman */

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5741a3df492de8a24b04927c8ffe38728216ccaa76fea1ea47442f99400390b4
size 2532573

View File

@ -1,7 +1,6 @@
diff -urbN cairo-1.2.4-old/src/cairo-ft-font.c cairo-1.2.4/src/cairo-ft-font.c --- cairo-1.4.10/src/cairo-ft-font.c
--- cairo-1.2.4-old/src/cairo-ft-font.c 2006-10-24 11:05:15.000000000 +0200 +++ cairo-1.4.10/src/cairo-ft-font.c
+++ cairo-1.2.4/src/cairo-ft-font.c 2006-10-24 11:06:45.000000000 +0200 @@ -55,6 +55,8 @@
@@ -53,6 +53,8 @@
#include FT_SYNTHESIS_H #include FT_SYNTHESIS_H
#endif #endif
@ -10,8 +9,8 @@ diff -urbN cairo-1.2.4-old/src/cairo-ft-font.c cairo-1.2.4/src/cairo-ft-font.c
#define DOUBLE_TO_26_6(d) ((FT_F26Dot6)((d) * 64.0)) #define DOUBLE_TO_26_6(d) ((FT_F26Dot6)((d) * 64.0))
#define DOUBLE_FROM_26_6(t) ((double)(t) / 64.0) #define DOUBLE_FROM_26_6(t) ((double)(t) / 64.0)
#define DOUBLE_TO_16_16(d) ((FT_Fixed)((d) * 65536.0)) #define DOUBLE_TO_16_16(d) ((FT_Fixed)((d) * 65536.0))
@@ -683,23 +685,300 @@ @@ -701,23 +703,300 @@
assert (error == 0); return CAIRO_STATUS_SUCCESS;
} }
-/* Empirically-derived subpixel filtering values thanks to Keith -/* Empirically-derived subpixel filtering values thanks to Keith
@ -327,7 +326,7 @@ diff -urbN cairo-1.2.4-old/src/cairo-ft-font.c cairo-1.2.4/src/cairo-ft-font.c
/* Fills in val->image with an image surface created from @bitmap /* Fills in val->image with an image surface created from @bitmap
*/ */
@@ -712,12 +991,14 @@ @@ -730,12 +1009,14 @@
int width, height, stride; int width, height, stride;
unsigned char *data; unsigned char *data;
int format = CAIRO_FORMAT_A8; int format = CAIRO_FORMAT_A8;
@ -344,7 +343,7 @@ diff -urbN cairo-1.2.4-old/src/cairo-ft-font.c cairo-1.2.4/src/cairo-ft-font.c
case FT_PIXEL_MODE_MONO: case FT_PIXEL_MODE_MONO:
stride = (((width + 31) & ~31) >> 3); stride = (((width + 31) & ~31) >> 3);
if (own_buffer) { if (own_buffer) {
@@ -745,7 +1026,6 @@ @@ -765,7 +1046,6 @@
} }
} }
} }
@ -352,7 +351,7 @@ diff -urbN cairo-1.2.4-old/src/cairo-ft-font.c cairo-1.2.4/src/cairo-ft-font.c
#ifndef WORDS_BIGENDIAN #ifndef WORDS_BIGENDIAN
{ {
unsigned char *d = data; unsigned char *d = data;
@@ -757,17 +1037,15 @@ @@ -777,17 +1057,15 @@
} }
} }
#endif #endif
@ -373,7 +372,7 @@ diff -urbN cairo-1.2.4-old/src/cairo-ft-font.c cairo-1.2.4/src/cairo-ft-font.c
stride = bitmap->pitch; stride = bitmap->pitch;
if (own_buffer) { if (own_buffer) {
data = bitmap->buffer; data = bitmap->buffer;
@@ -778,101 +1056,19 @@ @@ -800,107 +1078,19 @@
memcpy (data, bitmap->buffer, stride * height); memcpy (data, bitmap->buffer, stride * height);
} }
format = CAIRO_FORMAT_A8; format = CAIRO_FORMAT_A8;
@ -390,13 +389,7 @@ diff -urbN cairo-1.2.4-old/src/cairo-ft-font.c cairo-1.2.4/src/cairo-ft-font.c
- unsigned int width_rgba, stride_rgba; - unsigned int width_rgba, stride_rgba;
- int vmul = 1; - int vmul = 1;
- int hmul = 1; - int hmul = 1;
+ } else { -
+ // if we get there, the data from the source bitmap
+ // really comes from _fill_xrender_bitmap, and is
+ // made of 32-bit ARGB or ABGR values
+ assert(own_buffer != 0);
+ assert(bitmap->pixel_mode != FT_PIXEL_MODE_GRAY);
- switch (font_options->subpixel_order) { - switch (font_options->subpixel_order) {
- case CAIRO_SUBPIXEL_ORDER_DEFAULT: - case CAIRO_SUBPIXEL_ORDER_DEFAULT:
- case CAIRO_SUBPIXEL_ORDER_RGB: - case CAIRO_SUBPIXEL_ORDER_RGB:
@ -410,15 +403,30 @@ diff -urbN cairo-1.2.4-old/src/cairo-ft-font.c cairo-1.2.4/src/cairo-ft-font.c
- vmul = 3; - vmul = 3;
- height /= 3; - height /= 3;
- break; - break;
- } + } else {
+ // if we get there, the data from the source bitmap
+ // really comes from _fill_xrender_bitmap, and is
+ // made of 32-bit ARGB or ABGR values
+ assert(own_buffer != 0);
+ assert(bitmap->pixel_mode != FT_PIXEL_MODE_GRAY);
+
+ data = bitmap->buffer;
+ stride = bitmap->pitch;
+ format = CAIRO_FORMAT_ARGB32;
}
- /* - /*
- * Filter the glyph to soften the color fringes - * Filter the glyph to soften the color fringes
- */ - */
- width_rgba = width; - width_rgba = width;
+ data = bitmap->buffer; - stride = bitmap->pitch;
stride = bitmap->pitch;
- stride_rgba = (width_rgba * 4 + 3) & ~3; - stride_rgba = (width_rgba * 4 + 3) & ~3;
- data_rgba = calloc (1, stride_rgba * height); - data_rgba = calloc (1, stride_rgba * height);
- if (data_rgba == NULL) {
- if (own_buffer)
- free (bitmap->buffer);
- _cairo_error (CAIRO_STATUS_NO_MEMORY);
- return CAIRO_STATUS_NO_MEMORY;
- }
- -
- os = 1; - os = 1;
- switch (font_options->subpixel_order) { - switch (font_options->subpixel_order) {
@ -473,17 +481,17 @@ diff -urbN cairo-1.2.4-old/src/cairo-ft-font.c cairo-1.2.4/src/cairo-ft-font.c
- free (bitmap->buffer); - free (bitmap->buffer);
- data = data_rgba; - data = data_rgba;
- stride = stride_rgba; - stride = stride_rgba;
format = CAIRO_FORMAT_ARGB32; - format = CAIRO_FORMAT_ARGB32;
- subpixel = TRUE; - subpixel = TRUE;
- break;
- }
}
break; break;
- }
- }
- break;
+ +
case FT_PIXEL_MODE_GRAY2: case FT_PIXEL_MODE_GRAY2:
case FT_PIXEL_MODE_GRAY4: case FT_PIXEL_MODE_GRAY4:
/* These could be triggered by very rare types of TrueType fonts */ /* These could be triggered by very rare types of TrueType fonts */
@@ -880,20 +1076,21 @@ @@ -911,20 +1101,21 @@
return CAIRO_STATUS_NO_MEMORY; return CAIRO_STATUS_NO_MEMORY;
} }
@ -511,7 +519,7 @@ diff -urbN cairo-1.2.4-old/src/cairo-ft-font.c cairo-1.2.4/src/cairo-ft-font.c
return CAIRO_STATUS_SUCCESS; return CAIRO_STATUS_SUCCESS;
} }
@@ -917,16 +1114,44 @@ @@ -948,16 +1139,44 @@
cairo_font_options_t *font_options, cairo_font_options_t *font_options,
cairo_image_surface_t **surface) cairo_image_surface_t **surface)
{ {
@ -560,7 +568,7 @@ diff -urbN cairo-1.2.4-old/src/cairo-ft-font.c cairo-1.2.4/src/cairo-ft-font.c
FT_Outline_Get_CBox (outline, &cbox); FT_Outline_Get_CBox (outline, &cbox);
@@ -937,98 +1162,90 @@ @@ -968,100 +1187,88 @@
width = (unsigned int) ((cbox.xMax - cbox.xMin) >> 6); width = (unsigned int) ((cbox.xMax - cbox.xMin) >> 6);
height = (unsigned int) ((cbox.yMax - cbox.yMin) >> 6); height = (unsigned int) ((cbox.yMax - cbox.yMin) >> 6);
@ -572,8 +580,7 @@ diff -urbN cairo-1.2.4-old/src/cairo-ft-font.c cairo-1.2.4/src/cairo-ft-font.c
/* Looks like fb handles zero-sized images just fine */ /* Looks like fb handles zero-sized images just fine */
- switch (font_options->antialias) { - switch (font_options->antialias) {
- case CAIRO_ANTIALIAS_NONE: - case CAIRO_ANTIALIAS_NONE:
+ switch (render_mode) + switch (render_mode) {
+ {
+ case FT_RENDER_MODE_MONO: + case FT_RENDER_MODE_MONO:
format = CAIRO_FORMAT_A1; format = CAIRO_FORMAT_A1;
break; break;
@ -662,6 +669,7 @@ diff -urbN cairo-1.2.4-old/src/cairo-ft-font.c cairo-1.2.4/src/cairo-ft-font.c
+ fterror = FT_Render_Glyph( face->glyph, render_mode ); + fterror = FT_Render_Glyph( face->glyph, render_mode );
- if (bitmap.buffer == NULL) { - if (bitmap.buffer == NULL) {
- _cairo_error (CAIRO_STATUS_NO_MEMORY);
+ FT_Library_SetLcdFilter( library, FT_LCD_FILTER_NONE ); + FT_Library_SetLcdFilter( library, FT_LCD_FILTER_NONE );
+ +
+ if (fterror != 0) + if (fterror != 0)
@ -677,6 +685,7 @@ diff -urbN cairo-1.2.4-old/src/cairo-ft-font.c cairo-1.2.4/src/cairo-ft-font.c
- if (FT_Outline_Get_Bitmap (glyphslot->library, outline, &bitmap) != 0) { - if (FT_Outline_Get_Bitmap (glyphslot->library, outline, &bitmap) != 0) {
- free (bitmap.buffer); - free (bitmap.buffer);
- _cairo_error (CAIRO_STATUS_NO_MEMORY);
+ bitmap.buffer = calloc(1, bitmap_size); + bitmap.buffer = calloc(1, bitmap_size);
+ if (bitmap.buffer == NULL) { + if (bitmap.buffer == NULL) {
return CAIRO_STATUS_NO_MEMORY; return CAIRO_STATUS_NO_MEMORY;
@ -690,7 +699,7 @@ diff -urbN cairo-1.2.4-old/src/cairo-ft-font.c cairo-1.2.4/src/cairo-ft-font.c
if (status) if (status)
return status; return status;
- } - }
-
/* /*
* Note: the font's coordinate system is upside down from ours, so the * Note: the font's coordinate system is upside down from ours, so the
* Y coordinate of the control box needs to be negated. * Y coordinate of the control box needs to be negated.
@ -704,7 +713,7 @@ diff -urbN cairo-1.2.4-old/src/cairo-ft-font.c cairo-1.2.4/src/cairo-ft-font.c
return CAIRO_STATUS_SUCCESS; return CAIRO_STATUS_SUCCESS;
} }
@@ -1389,11 +1606,11 @@ @@ -1433,11 +1640,11 @@
case CAIRO_SUBPIXEL_ORDER_DEFAULT: case CAIRO_SUBPIXEL_ORDER_DEFAULT:
case CAIRO_SUBPIXEL_ORDER_RGB: case CAIRO_SUBPIXEL_ORDER_RGB:
case CAIRO_SUBPIXEL_ORDER_BGR: case CAIRO_SUBPIXEL_ORDER_BGR:

3
cairo-1.4.10.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c3a958eaba7858a0c8392cf20885643639dee35e0b6b4eca44172e24d2c59ec4
size 2631064

View File

@ -1,15 +0,0 @@
https://bugs.freedesktop.org/show_bug.cgi?id=10267
Fixes following warning:
cairo-truetype-subset.c:698: warning: call to __builtin___snprintf_chk will always overflow destination buffer
================================================================================
--- src/cairo-truetype-subset.c
+++ src/cairo-truetype-subset.c
@@ -676,7 +676,7 @@
cairo_truetype_font_write_post_table (cairo_truetype_font_t *font,
unsigned long tag)
{
- char buf[10];
+ char buf[11];
int n;
unsigned i;

View File

@ -1,3 +1,21 @@
-------------------------------------------------------------------
Wed Jul 4 15:00:38 CEST 2007 - sbrabec@suse.cz
- Updated to version 1.4.10:
* Eliminate X errors that were killing OO.o
* Use IncludeInferiors when using xlib surface as a source
* Optimize drawing of many rectangles
* Thread-safe surface-cache for solid patterns
* Surface cache for solid patterns
* Internal cleanup of error handling
* Repaired mutex initialization
* PDF Improvements
* Performance optimizations
* More malloc reduction
* Fix a crash due to a LOCK vs. UNLOCK typo
* Backend-specific fixes
* Miscellaneous fixes
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Jun 18 14:05:05 CDT 2007 - maw@suse.de Mon Jun 18 14:05:05 CDT 2007 - maw@suse.de

View File

@ -1,5 +1,5 @@
# #
# spec file for package cairo (Version 1.4.0) # spec file for package cairo (Version 1.4.10)
# #
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine # This file and all modifications and additions to the pristine
@ -11,12 +11,12 @@
# norootforbuild # norootforbuild
Name: cairo Name: cairo
%define DIRECTFB_SUPPORT 0 # Use rpmbuild -D 'DIRECTFB_SUPPORT 1' to build wíth DirectFB support.
BuildRequires: freetype2-devel glitz-devel libpng-devel pkg-config xorg-x11-devel BuildRequires: freetype2-devel glitz-devel libpng-devel pkg-config xorg-x11-devel
%if %suse_version > 1020 %if %suse_version > 1020
BuildRequires: xorg-x11-libxcb-devel BuildRequires: xorg-x11-libxcb-devel
%endif %endif
%if %DIRECTFB_SUPPORT %if 0%{?DIRECTFB_SUPPORT}
BuildRequires: DirectFB-devel BuildRequires: DirectFB-devel
%endif %endif
# These libraries are needed only for tests. # These libraries are needed only for tests.
@ -24,12 +24,12 @@ BuildRequires: DirectFB-devel
#BuildRequires: librsvg-devel poppler-devel #BuildRequires: librsvg-devel poppler-devel
# Needed only for directory ownership: # Needed only for directory ownership:
BuildRequires: gtk-doc BuildRequires: gtk-doc
License: GNU Library General Public License v. 2.0 and 2.1 (LGPL), MOZILLA PUBLIC LICENSE (MPL/NPL) License: LGPL v2 or later, MOZILLA PUBLIC LICENSE (MPL/NPL)
Group: Development/Libraries/X11 Group: Development/Libraries/X11
Summary: Vector Graphics Library with Cross-Device Output Support Summary: Vector Graphics Library with Cross-Device Output Support
URL: http://cairographics.org/ URL: http://cairographics.org/
Version: 1.4.0 Version: 1.4.10
Release: 28 Release: 1
Source: %{name}-%{version}.tar.bz2 Source: %{name}-%{version}.tar.bz2
# This fixes a problem with libpixman getting the depth wrong for some # This fixes a problem with libpixman getting the depth wrong for some
# 16bpp image formats but still render things correctly. Using # 16bpp image formats but still render things correctly. Using
@ -39,8 +39,7 @@ Source: %{name}-%{version}.tar.bz2
# libpixmap should be fixed if it hasn't already. # libpixmap should be fixed if it hasn't already.
Patch4: cairo-1.0.2-depth-fix-1.patch Patch4: cairo-1.0.2-depth-fix-1.patch
Patch6: bugzilla-104365.patch Patch6: bugzilla-104365.patch
Patch7: cairo-1.2.4-lcd-filter-1.patch Patch7: cairo-1.4.10-lcd-filter-1.patch
Patch8: cairo-snprintf-overflow.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
# Last present in SuSE Linux 10.0 (and NLD9): # Last present in SuSE Linux 10.0 (and NLD9):
Obsoletes: libpixman Obsoletes: libpixman
@ -63,7 +62,7 @@ Summary: Development environment for cairo
Group: Development/Libraries/X11 Group: Development/Libraries/X11
Requires: %{name} = %{version} freetype2-devel fontconfig-devel xorg-x11-devel Requires: %{name} = %{version} freetype2-devel fontconfig-devel xorg-x11-devel
Requires: libpng-devel glitz-devel Requires: libpng-devel glitz-devel
%if %DIRECTFB_SUPPORT %if 0%{?DIRECTFB_SUPPORT}
Requires: DirectFB-devel Requires: DirectFB-devel
%endif %endif
%if %(rpm -q --queryformat=%%{version} xorg-x11-devel | sed 's/\..*$//') >= 7 %if %(rpm -q --queryformat=%%{version} xorg-x11-devel | sed 's/\..*$//') >= 7
@ -104,7 +103,6 @@ Authors:
%patch4 %patch4
%patch6 -p1 %patch6 -p1
%patch7 -p1 %patch7 -p1
%patch8
%build %build
autoreconf -f -i autoreconf -f -i
@ -115,7 +113,7 @@ export CFLAGS="$RPM_OPT_FLAGS -fstack-protector"
# Only for tests: --enable-pdf --enable-svg # Only for tests: --enable-pdf --enable-svg
%configure\ %configure\
--enable-glitz\ --enable-glitz\
%if %DIRECTFB_SUPPORT %if 0%{?DIRECTFB_SUPPORT}
--enable-directfb\ --enable-directfb\
%endif %endif
--enable-ps\ --enable-ps\
@ -155,6 +153,21 @@ rm -rf ${RPM_BUILD_ROOT}
%{_datadir}/gtk-doc/html/* %{_datadir}/gtk-doc/html/*
%changelog %changelog
* Wed Jul 04 2007 - sbrabec@suse.cz
- Updated to version 1.4.10:
* Eliminate X errors that were killing OO.o
* Use IncludeInferiors when using xlib surface as a source
* Optimize drawing of many rectangles
* Thread-safe surface-cache for solid patterns
* Surface cache for solid patterns
* Internal cleanup of error handling
* Repaired mutex initialization
* PDF Improvements
* Performance optimizations
* More malloc reduction
* Fix a crash due to a LOCK vs. UNLOCK typo
* Backend-specific fixes
* Miscellaneous fixes
* Mon Jun 18 2007 - maw@suse.de * Mon Jun 18 2007 - maw@suse.de
- Add %%run_ldconfig to %%post and %%postun sections. - Add %%run_ldconfig to %%post and %%postun sections.
* Mon Mar 26 2007 - sbrabec@suse.cz * Mon Mar 26 2007 - sbrabec@suse.cz