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: ^^^^^^^^^ 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 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).