Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Version 2.48.0 - The following is a summary of changes between 2.46.x and 2.48.0. For full details, please see the 2.47.x release notes below. - This release requires at least Rust 1.39. - #379 - New API, rsvg_handle_set_stylesheet(), to set a CSS stylesheet independent of the SVG document. - #510 - support opacity in patterns. - Librsvg's XML parser now supports namespaces (xmlns), and is stricter than before about it. Files may fail to parse if there are attributes or elements with namespace prefixes (e.g. foo:bar instead of plain bar), but without a corresponding namespace declaration (e.g. xmlns:foo="http://example.com/foo"). This may happen especially with incorrectly-written SVGs that use xlink:href or xi:include attributes without the corresponding namespace declarations. If you run into this, just add the following to your toplevel SVG element: <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude"> ^^^^^^^^^ these ones - Librsvg no longer depends on libcroco, and now does all CSS processing using Rust crates from Mozilla Servo. As a result, librsvg can now handle much more complex CSS selectors than before. - Link-time optimization (LTO) is disabled by default on release builds, as this increased build time too much. Downstream distributors may want to turn it back on in the toplevel Cargo.toml. - #515 (CVE-2019-20446) - Librsvg now has limits on the number of loaded XML elements, and the number of referenced elements within an SVG document. This is to mitigate malicious SVGs which try to consume all memory, and those which try to consume an exponential amount of CPU time. - Many bugfixes; please see the 2.47.x release notes below. Version 2.47.4 - (#240) - Fix rsvg-convert's multipage PDF output when the zoom option is used (Sven Neumann). - (#547) - Do not stop rendering if an <image> element references a nonexistent file. This fixes a number of Open Clipart cases. - (#558) - Compute the font-size cascade correctly when there are "em" #and "ex" units involved. - Updated the man page for rsvg-convert (Sven Neumann). Version 2.47.3 - #379 - New API, rsvg_handle_set_stylesheet(), to set a CSS stylesheet independent of the SVG document. - #510 - support opacity in patterns (Sven Neumann). - Move away from the Cairo transform type to our own (Paolo Borelli). - Update the gtk-rs version. Version 2.47.2 - Handling of the "result", "in", "in2" attributes in filter primitives is slightly stricter now, and spec compliant. Their arguments must be of type CSS custom-ident, so "default", "inherit", "initial", and "unset" are disallowed. Most SVGs should still work fine. - #542 - Fix infinite loop when processing CSS sibling combinators. - #408 - feImage filters no longer clip their output to integer coordinates. - #504 - Documentation for the Rust crate (available at https://gnome.pages.gitlab.gnome.org/librsvg/doc/librsvg/) now has API usage examples. - Debug logs from RSVG_LOG=1 should now be more legible and contain better information on invalid CSS. - Remove link-time workarounds for Rust pre-1.35 (Kleis Auke Wolthuizen). - Unify internal error types to share the CSS code with gnome-shell. - Made handling of XML namespaces more spec-compliant. - Lots of refactoring to start moving away from Cairo internals (Paolo Borelli). Version 2.47.1 - Librsvg no longer depends on libcroco! It now does all CSS processing using Rust crates from Mozilla Servo; these are also the crates that are in use in recent versions of Firefox. As a result, librsvg can now handle much more complex CSS selectors than before. Fixes #79, #167, #237, #283, #336, #428, #441, #466, #525, #525 (Paolo Borelli, Federico Mena). Thanks to Evgeniy Reizner for fixing servo/servo#22972, which made it possible to use Servo's selectors crate. - #524 - Panic when reading an invalid stylesheet URL in an XML processing instruction (Paolo Borelli) - Lots of little improvements to the documentation. - Link-time optimization (LTO) is disabled by default on release builds, as this increased build time too much. Downstream distributors may want to turn it back on in the toplevel Cargo.toml. - We now have the start of documentation on the library's internals at https://gnome.pages.gitlab.gnome.org/librsvg/doc/rsvg_internals/index.html This should be interest of newcomers to librsvg's source code. Version 2.47.0 - Librsvg's XML parser now supports namespaces (xmlns), and is stricter than before about it. Files may fail to parse if there are attributes or elements with namespace prefixes (e.g. foo:bar instead of plain bar), but without a corresponding namespace declaration (e.g. xmlns:foo="http://example.com/foo"). This may happen especially with incorrectly-written SVGs that use xlink:href or xi:include attributes without the corresponding namespace declarations. If you run into this, just add the following to your toplevel SVG element: <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude"> ^^^^^^^^^ these ones - Patterns and gradients reused across more than one element will only get resolved once now; this should make things marginally faster for patterns or gradients with fallbacks. - #515 (CVE-2019-20446) - Librsvg now has limits on the number of loaded XML elements, and the number of referenced elements within an SVG document. This is to mitigate malicious SVGs which try to consume all memory, and those which try to consume an exponential amount of CPU time. - #521 - Compute geometries correctly if there is a viewBox attribute. - #308 - Fix stack exhaustion with circular references in <use> elements. - Consistently use the LGPL 2.1 wherever it is mentioned. - Patterns and gradients reused across more than one element will only get resolved once now; this should make things marginally faster for patterns or gradients with fallbacks. - #506 - Fix empty patterns which reference a fallback pattern with children.
- Loading branch information