Log message:
librsvg: update to 2.48.0.
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 https://github.com/servo/servo/issues/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.
|