Version 2.41.0 - The big news is that parts of librsvg are now implemented in the Rust programming language, instead of C. The public API remains identical. Rust should provide us with memory safety and nicer built-in abstractions for the code, as well as an easier way to do unit tests. Special thanks to all the people who sent tips on Rust idioms, and to Sebastian Dröge and Hubert Figuière for the Automake bits. - Added an "--enable-debug" option to configure.ac - this will tell the Rust compiler to generate debugging code, instead of working in release mode. Note that you must still pass CFLAGS by hand by the regular means for the C code. - For Windows builds, only MSVC 2012 and upward are supported now. - Chun-wei Fan made it possible to regenerate the MSVC project files when Makefile.am changes. - Fixed bgo#763386 - handle curveto segments where three control points are coincident. Thanks to Massimo for the detailed test cases. - Fixed bgo#603550 - Compute the luminance correctly when generating a mask. Thanks to Mike Lewis for the patch. - Fixed bgo#776297 - Only render markers in path, line, polygon, polyline elements. - Fixed feImage filters when they reference SVG nodes; they were translated incorrectly. - Fixed feComponentTransferFunction when there are duplicated feFuncX elements. - Fixed bgo#761871 - handle reflection points for quadratic and cubic curves correctly. - Fixed bgo#686953 - support the "marker" shorthand property. - Fixed a few minor issues pointed out by Coverity. - The path data parser now handles boolean values in Arc elements correctly. - Fixed conformance bugs in gradient inheritance. - Radial gradients now adjust the focus point correctly to be within the gradient's radius. - Stroke width normalization is now conformant to the spec. - Viewport-relative length normalization is now conformant to the spec. - Added some of the official SVG 1.1 test files to our test suite. Fixed a little bunch of conformance bugs. - As a small optimization, we only push/pop CSS states when rendering will actually happen, instead of for all (potentially invisible) nodes. - Code that has been converted to Rust: marker orientations and rendering, path data parser, path building, length normalization, gradient inheritance, bounding boxes with affine transformations. - Lots of refactoring to accomodate the Rust code, and general cleanups as well. - Added tests/README.md with instructions on how to run the test suite and update it. rsvg-test can now skip files or directories that start with "ignore". - Improved the README.