A new cairo snapshot 1.5.18 is now available from: http://cairographics.org/snapshots/cairo-1.5.18.tar.gz which can be verified with: http://cairographics.org/snapshots/cairo-1.5.18.tar.gz.sha1 68d9e7fed9158d8584cf8a7831fe7b3441f7970f cairo-1.5.18.tar.gz http://cairographics.org/snapshots/cairo-1.5.18.tar.gz.sha1.asc (signed by Carl Worth) Additionally, a git clone of the source tree: git clone git://git.cairographics.org/git/cairo will include a signed 1.5.18 tag which points to a commit named: 6d6c8aa643603c2b5fd7baedc897d4698ba8bafb which can be verified with: git verify-tag 1.5.18 and can be checked out with a command such as: git checkout -b build 1.5.18 This is the ninth snapshot in cairo's unstable 1.5 series. It comes just 4 days after the 1.5.16 snapshot. We had hoped to not need another snapshot before the final 1.6.0 release, but several critical bugs were found and fixed in the last few days, so we thought it important to let people test the fixes with this snapshot. See below for details. Have fun with cairo! -Carl Summary of changes from cairo 1.5.16 to 1.5.18 ============================================== documentation ------------- The README now lists necessary dependencies. Various graphics state defaults are now documented, (source pattern is opaque black, line width is 2.0, line join is miter, line cap is butt, miter limit is 10.0, etc.). general ------- Several cleanups have been made along many error-path returns, (carefully propagating up the original error status values, cleaning up memory leaks during error recovery, etc.). This is yet another in Chris "ickle" Wilson's long series of error-handling cleanups during the 1.5 series. Avoid undesired clipping when drawing scaled surface patterns with bilinear filtering. cairo-pdf --------- Fix emission of 1-bit alpha masks in PDF output. Fix a bug that would cause glyphs to be misplaced along the Y axis: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%23474136 Originally, an issue about a crash, but later leading to the misplaced glyphs issue being discovered. cairo-ps -------- Fix misplaced glyphs in cairo's PostScript output. This issue occurs when consecutive glyphs are placed far apart. This case is exercised by the new ft-show-glyphs-table test case, which was originally inspired by the Debian bug #23474136 mentioned above. Fix more misplaced glyphs in cairo's PostScript output: The issue here showed up under very particular circumstance, (when converting a PDF file with a CFF font with CID Identity-H encoding and using glyph 0, (defined by the CFF specification as .notdef) as a space instead). More concretely, this problem appeared when converting the UbuntuDesktop.pdf file mentioned in this bug report: https://bugs.freedesktop.org/show_bug.cgi?id=15348#c3 As usual with arcane font-encoding-specific bugs like this, many thanks to Adrian Johnson for his magical ability to dive into specifications and emerge almost instantaneously with fixes. And thanks to Sebastien Bacher for bringing the bug to our attention. cairo-xlib ---------- Fix serious failure on X servers without the Render extension. Since the 1.5.14 snapshot (with support for PseudoColor visuals), any application attempting to create a "similar" xlib surface would fail on an X server without the Render extension. Thanks to Frederic Crozat for pointing out that cairo's test suite was entirely failing when run against Xvfb. Avoid crashing cairo-xlib applications for too-large glyphs Naively sending glyphs of any size to the X server will eventually violate the X limit on maximum request sizes. We now properly detect when a glyph would be too large and use existing fallbacks to render the glyph rather than trying to send it to the X server. Enable the buggy_repeat workaround for Xorg servers < 1.4 We have determined that Xorg 1.3.0 (as packaged in Fedora 8 at least) has a bug that can result in an X server crash when cairo uses certain X Render repeat operations, (as exercised by cairo's extend-reflect test). We avoid this crash by using fallbacks whenever a repeating surface is needed for any Xorg server with a version less than 1.4. This is slower, but should prevent the crash. (Meanwhile, there appears to be a separate bug where some X servers or specific X-server drivers will use random pixmap data when asked to draw a repeating surface. The buggy_repeat workaround would also avoid those problems, but we have not yet characterized whether the new "version < 1.4" is a good characterization of those problems or not.) cairo-quartz-font ----------------- Implement cairo_font_extents for this backend. The cairo-quartz-font implementation added in the 1.5.14 snapshot was entirely missing support for the cairo_font_extents function. Thanks to Richard Hult for pointing out this obvious shortcoming, (and obvious lack of coverage in our test suite): CGFont backend returns 0 font extents https://bugs.freedesktop.org/show_bug.cgi?id=15319 What is cairo ============= Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System, win32, and image buffers, as well as PDF, PostScript, and SVG file output. Experimental backends include OpenGL (through glitz), Quartz, XCB, BeOS, OS/2, and DirectFB. Cairo is designed to produce consistent output on all output media while taking advantage of display hardware acceleration when available (for example, through the X Render Extension). The cairo API provides operations similar to the drawing operators of PostScript and PDF. Operations in cairo include stroking and filling cubic Bézier splines, transforming and compositing translucent images, and antialiased text rendering. All drawing operations can be transformed by any affine transformation (scale, rotation, shear, etc.). Cairo has been designed to let you draw anything you want in a modern 2D graphical user interface. At the same time, the cairo API has been designed to be as fun and easy to learn as possible. If you're not having fun while programming with cairo, then we have failed somewhere---let us know and we'll try to fix it next time around. Cairo is free software and is available to be redistributed and/or modified under the terms of either the GNU Lesser General Public License (LGPL) version 2.1 or the Mozilla Public License (MPL) version 1.1. Where to get more information about cairo ========================================= The primary source of information about cairo is: http://cairographics.org/ The latest versions of cairo can always be found at: http://cairographics.org/download Documentation on using cairo and frequently-asked questions: http://cairographics.org/documentation http://cairographics.org/FAQ Mailing lists for contacting cairo users and developers: http://cairographics.org/lists Roadmap and unscheduled things to do, (please feel free to help out): http://cairographics.org/roadmap http://cairographics.org/todo All changes from cairo 1.5.16 to cairo 1.5.18 ============================================= Adrian Johnson (9): PDF: Fix glyph positioning bug PS: Fix emulation of 'Td' pdf operator Add PS reference image for ft-show-glyphs-table TrueType: Remove assert TrueType: Fix buffer check Add assert to scaled_glyph_lookup in scaled-font-subsets Type1-fallback: Use correct glyph advance in Type 1 charstrings Type1-fallback: Use correct glyph metrics for .notdef glyph scaled-font-subsets: Special case .notdef in a new subset Carl Worth (18): Increment cairo version to 1.5.17 after 1.5.16 snapshot Add new ft-show-glyphs-table test to exercise recent glyph positioning bug fix Enable buggy_repeat workaround for X.Org servers < 1.4 Add new filter-bilinear-extents test Replace open-coded transformation with a call to _cairo_matrix_transform_bounding_box _cairo_pattern_get_extents: Fix to allow for expansion based on filter Update smask-text reference image Change default filter from BEST to GOOD Revert "[README] Remove the Dependencies section as it falls out of date easily" README: Update dependencies Document EXTEND_REFLECT and EXTEND_PAD as implemented for surfaces since 1.6 Document default extend modes Document toy nature of cairo_select_font_face Document many more defaults Document default opaque black source pattern. Add missing parens() to function name in gtk-doc comment NEWS: Add notes for 1.5.18 snapshot Increment cairo version to 1.5.18 and library versioning to 19:1:17 Chris Wilson (29): [cairo-pdf-operators] Destroy stream on error. [cairo-ps-surface] Check error status before potential illegal dereference. [cairo-svg-surface] Release acquired surface on error path. [cairo-pdf-surface] Check surface status before extracting the pdf target. [cairo-pdf-surface] Do not mask error during cleanup. [cairo-svg-surface] Missing status check. [cairo-ps-surface] Check surface status before extracting the ps target. [cairo-svg-surface] Check surface status before extracting the svg target. [cairo-xlib] Handle malloc failures for cairo_xlib_visual_info_t. [test/text-transform] Fix pattern leak. [cairo-xlib-surface] Preserve Visuals for non-TrueColor similar surfaces. [cairo-xlib-surface] Avoid writing to the error surface. [.gitignore] Add test/stroke-image [cairo-font-face] Cleanup up the font_face on the error path. [test] Add a1-mask. [cairo-pdf-surface] Do not bitswap big-endian A1 masks. [cairo-array] Guard against integer overflow whilst growing the array. [cairo-truetype-subset] Perform a quick sanity check that glyf end >= begin. [cairo-truetype-subset] Prevent accesses beyond the end of the glyph array. [cairo-truetype-subset] Check reads are within valid data. Add links to the font specifications. [test] Exercise "soft" masks. [pdf] Copy the glyphs for use within an smask group. [configure.in] Add a link to the LTP homepage. [test] Add bilevel image test case. [xlib] Avoiding sending glyphs > XMaxRequestSize. [test] Summarise failures per backend. [test] Disable jobserver with make check. [test] Remove some redundant evals from the summary. Vladimir Vukicevic (2): [cgfont] Implement missing scaled font metrics [cgfont] typo fix
Attachment:
pgpzv8uy3nfO8.pgp
Description: PGP signature