NEWS 43.7 KB
Newer Older
1
Version 2.45.7
Federico Mena Quintero's avatar
Federico Mena Quintero committed
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
- Fix #463 - Don't panic if an SVG has character data outside the
  first element.

- Fix #467: Don't panic when there's an xi:include fallback with no
  parent element.  Thanks to Bastien Orivel for running afl-fuzz
  on librsvg.

- Fix #471: Fix blurry semi-opaque objects when rendering with a
  scaled transformation.  Thanks to the gnome-games people for
  isolating a test case and to Evgeniy Reizner for providing a more
  minimal one.

- #452 - In librsvg_crate, SvgHandle now has a ::has_element_with_id()
  method.

- rsvg-convert now catches the case where the SVG has no dimensions.

19 20 21 22
- The poly element no longer supports "verts" as an alias for the
  "points" attribute.  The "verts" name was only used in SVG pre-1.0,
  and we had been cargo-culting that name ever since.

Federico Mena Quintero's avatar
Federico Mena Quintero committed
23 24 25 26 27 28 29 30
- We now use more machinery from Mozilla Servo, in this case the
  markup5ever and rust-selectors crates.  This is in line with
  gradually replacing libcroco with a Rust-only CSS machinery.

- Lots and lots of refactoring and cleanups (Paolo Borelli).

- Update some dependencies (Bastien Orivel).

31 32
Version 2.45.6
- Librsvg now requires Rust 1.30.0 or later.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
33

34 35
- Librsvg now requires Cairo 1.16.0 or later.  Thanks to
  Julian Sparber for keeping up with cairo-rs API changes.
36

Federico Mena Quintero's avatar
Federico Mena Quintero committed
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
- This version introduces librsvg_crate, an idiomatic Rust crate for
  using librsvg from Rust programs directly, without using GObject
  machinery.  This API is subject to change, but you can start using
  it now in an experimental fashion.  Thanks to Paolo Borelli and
  Jordan Petridis for fine-tuning this new API.

- All of the librsvg internals are now in Rust!  The C code is just a
  thin wrapper over Rust functions.

- The internals library has been converted to Rust 2018 (Jordan Petridis).

- Within librsvg_crate, there is a new infrastructure for doing
  reftests in Rust, that does not depend on PNG reference files.  See
  librsvg_crate/tests for details.

- This release introduces the following new APIs:
  rsvg_handle_get_intrinsic_dimensions(),
  rsvg_handle_get_geometry_for_element().

- Parsing of the "style" attribute, which has a plain list of CSS
  property declarations, is now done with rust-cssparser.
- CSS selector matching should be marginally faster than before.

- Fix Visual Studio builds (Chun-wei Fan).

- Fix #11 - Respect the "direction" property for bidirectional text (Khaled Hosny).

- Fix #295 - Ensure the initial viewport fits into temporary surfaces for compositing

- Fix #425 - Don't fail parsing if the system's locale is broken (Paolo Borelli).

- Fix #438, #443 - Don't create intermediate raster surfaces unless
  absolutely needed.  This was causing blurred output for SVGs from
  Inkscape and Illustrator, since they include an "enable-background"
  property even when there are no filters in use.  Thanks to Julian
  Sparber, Jordan Petridis, Zeeshan Ali for doing a huge "git bisect"
  to find the cause of this bug.

- Fix #443 - Fix blurry output when enable-background is used without filters.

- Fix #455 - Fix rounding error on i386 (Olivier Tilloy).

- Check for Cairo errors when constructing paths.

Federico Mena Quintero's avatar
Federico Mena Quintero committed
81 82 83 84
Version 2.45.5
- At build time, you can now pass $CARGO and $RUSTC environment
  variables if you need to override the default Rust toolchain.
  Please see COMPILING.md for details.  (Tobias Kortkamp)
Federico Mena Quintero's avatar
Federico Mena Quintero committed
85
- Fix #405 - In the gdk-pixbuf loader, don't crash if the write()
Federico Mena Quintero's avatar
Federico Mena Quintero committed
86
  function doesn't receive a GError.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
87 88 89 90 91 92 93 94 95
- Fix #268 - Remove the comp-op property; it's not in SVG 1.1 nor SVG 2.
- Fix #415 - register RsvgHandleFlags and the RsvgError enum values in
  a thread-safe fashion (Sebastian Dröge).
- All of the library's non-GObject functionality is implemented in
  Rust now.
- Update the cairo crate (Kornel Lesiński).
- Clean up the loading code paths (Paolo Borelli).
- Updated compilation docs for Debian (Jordan Petridis)
- Updated parts of the reference documentation.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
96

Federico Mena Quintero's avatar
Federico Mena Quintero committed
97 98 99 100 101
Version 2.45.4
- Brown paper bag release, my apologies.
- Fix #402 - Fix the library's soname.  Thanks to Gabriele Balducci
  for reporting it, and Kalev Lember for fixing it.

Federico Mena Quintero's avatar
Federico Mena Quintero committed
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
Version 2.45.3
- Big news!  All the real work in the library is now implemented in
  Rust.  The public API is implemented in C, but most it calls
  immediately into the Rust code.  Special thanks to Paolo Borelli and
  Carlos Martín Nieto for making this possible.

- rsvg_handle_set_base_uri() now really assumes that it is passed a
  URI.  Previously it would try to differentiate between real URIs,
  and absolute or relative file paths.  If this breaks your code
  (i.e. you are passing a filename, not a URI), please tell us so we
  can restore the old behavior!

- Fix #395 - Don't panic in feMorphology if it ends up with a negative
  scaling transformation.
- Fix #398 - Detect circular references in gradients.
- Match the Firefox/Chrome behavior on gradients and patterns with
  circular references for fallbacks (Paolo Borelli).
- Fixes for Rust 1.30 and below (Jordan Petridis).
- Lots and lots of refactoring (Paolo Borelli, Federico Mena).

Federico Mena Quintero's avatar
Federico Mena Quintero committed
122
Version 2.45.2
Federico Mena Quintero's avatar
Federico Mena Quintero committed
123
- rsvg_cleanup() is now deprecated.  This was only meant to be called
Federico Mena Quintero's avatar
Federico Mena Quintero committed
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
  from code to be checked by Valgrind.  Leak checkers may show
  reachable memory from libxml2; real memory leaks should still be
  reported, of course.  (Kornel Lesiński).

- As an experimental change, librsvg no longer calls xmlInitParser()
  from libxml2.  Please tell us if this causes problems for
  multithreaded programs.

- Added g_warning()s to ensure the API is called in the correct
  sequence.

- The text handling code has been completely refactored and
  simplified.  This will allow us to implement the x/y/dx/dy
  properties for multiple glyphs in the future.  Please report any
  problems you experience in text rendering.

- Fix #385 - Don't crash if there is no rsvg_handle_write() before
  rsvg_handle_close().
- Fix #391 - Avoid undefined behavior when casting opaque pointers
  (Jordan Petridis).
- Fix crash when a linear RGB filter is followed by an SRGB filter
  (Ivan Molodetskikh).
- Fix #393 - Stack overflow when freeing thousands of sibling elements.
- Fix positioning of adjacent <tspan> elements.
- All the toplevel loading and drawing code is implemented in Rust now.
- Pixbuf conversion code is in Rust now (Paolo Borelli).
- Cleanups in the code for XML processing, markers, attributes (Paolo
  Borelli).
- Many build/link fixes (Jordan Petridis).
- Cleanups in the code that calls libxml2 (Kornel Lesiński).

Federico Mena Quintero's avatar
Federico Mena Quintero committed
155 156 157 158 159 160 161
Version 2.45.1
- New public API, rsvg_handle_get_geometry_sub(), to get the exact
  geometry of an element.  The functions
  rsvg_handle_get_position_sub() and rsvg_handle_get_dimensions_sub()
  are deprecated now; these returned incomplete data with integer
  coordinates (Julian Sparber).

162 163 164 165
- rsvg_handle_write() and rsvg_handle_close() are now deprecated in
  favor of the functions which use a GInputStream.  The former need to
  buffer the entire SVG data first; the latter don't need buffering.

Federico Mena Quintero's avatar
Federico Mena Quintero committed
166 167 168 169 170 171 172 173 174 175 176
- Librsvg no longer tries to load XML entities which reference
  external resources, either parameter or general entities, declared
  in the DTD.  This never worked properly, and it is better to do so
  via the xi:include mechanism.  Also, unparsed external entities with
  a notation are not really supported in SVG; it has its own <image>
  element and similar for that purpose.  Only internal general
  entities are supported now, for example:

     <!ENTITY foo "<some xml here>">
     <!ENTITY bar "some text here">

177 178 179 180 181 182 183 184 185
- Started support for localized error messages (Daniel García Moreno).

- Ported to Rust: loading code, XML processing code, data: URL parsing, 

- Many code cleanups and refactorings, courtesy of Paolo Borelli.
- Fix undefined behavior in casts (Jordan Petridis).
- Cairo/Rust API updates by Julian Sparber.
- configure.ac cleanups by Maya Rashish.

Federico Mena Quintero's avatar
Federico Mena Quintero committed
186
Version 2.45.0
Federico Mena Quintero's avatar
Federico Mena Quintero committed
187 188
- Librsvg now requires Rust 1.27.
- Librsvg now requires Cairo 1.15.12.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
189 190 191 192 193 194 195
- Fix building when srcdir != builddir (Mathieu Bridon).
- Fix #339 - Panic in filters with primitiveUnits="objectBoundingBox"
  on zero-sized elements (Ivan Molodetskikh).
- Fix #335 - Don't panic if the toplevel node is not <svg>.
- Fixes from fuzz testing (Ivan Molodetskikh): don't panic when the
  feConvolveMatrix kernel is not set; fix upper bounds in filter pixel
  getters.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
196 197 198 199 200 201 202 203
- Fix #337 - Don't panic with "em" or "ex" units in the font-size property.
- Fix #338 - Don't panic when an image element doesn't have
  width/height attributes.
- Fix #340 - Don't panic when a marker has a zero-sized viewBox attribute.
- Fix #341 - Don't infinite-loop with cyclic pattern references.
- Fix #342 - Don't crash if a <use> node references one of its ancestors.
- Special thanks to Ivan Molodetskikh for doing a fuzz-testing run for
  this round.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
204
- Fix #344 - Don't panic when a viewBox has overflowing numbers.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
205 206
- Fix #345 - Fix panics due to bad path parsing and overflows in
  surface size.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
207 208 209
- Updates to the CI infrastructure and the build documentation (Jordan
  Petridis).
- Cleanups and refactoring (Paolo Borelli, Linus Unnebäck, Federico Mena).
Federico Mena Quintero's avatar
Federico Mena Quintero committed
210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247
- Fix #343 - Handle child being in error in feComponentTransfer.
- Fix #346 - Handle filter primitives producing errors.
- Fix #347 - Regression in computation of text element extents.
- Fix #348 - Fix incorrect font sizing.
- Fix #349 - Don't panic when loading an external image that is bigger
  than Cairo's limits.
- Fix - rsvg_handle_get_dimensions_sub() no longer panics if passed a
  nonexistent fragment identifier.
- Fix 32-bit builds (Jordan Petridis).
- Fix #256 - Correctly match the systemLanguage attribute with the
  user's locale.
- Fix #320 - Parse xml:lang correctly.
- Fix #334 - Don't modify the caller's cairo_t state during rendering.
- Fix #349 - Don't panic if we get a "data:" URI with empty data.
- Fix #352 - Don't panic on getting a very large "order" for
  feConvolveMatrix (Ivan Molodetskikh).
- Fix #363 - Don't drop spaces around <tspan> elements.
- Fix #365 - rsvg-convert now uses pixel units for SVG output, instead
  of points.  This requires cairo 1.15.12 (Antonio Ospite).
- Fix #358, #366 - tweaks to have the test suite pass on i386 and
  non-x86_64 platforms (Simon McVittie, Federico Mena).
- Fix #368 - With RSVG_LOG=1, librsvg will now report when SVGs have
  references to nonexistent elements, to aid debugging (for example,
  in an xlink:href attribute).
- Fix #371 - rsvg-convert was positioning extracted elements
  incorrectly when using the -w/-h options together with --export-id.
- Fix #372 - Mis-rendering in small arc segments.
- Fix #373 - Rendering of gradients for horizontal/vertical stroked
  lines with gradientUnits="userSpaceOnUse".
- Fix a couple of memory leaks in the error paths of the GdkPixbuf
  loader (Benedikt Heine).
- Allow reference tests with a small difference to pass without
  breaking the build (Simon McVittie).
- CSS processing code is now in Rust, although it still calls libcroco
  to do the parsing.
- XML processing code is partially moved to Rust, although it still
  calls libxml2 for the XML parsing.
- Special thanks to Alex Crichton for ensuring that MacOS builds work.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263

Version 2.44.2
- A *double brown paper bag* release!  Super strong, this one!
- Fix #325 - Don't leak all the elements at the toplevel.
- Fix #328 - Make masking work on big-endian.  Thanks to
  Simon McVittie for quick testing of this on s390x.
- Fix library ordering so -Wl,--as-needed works (Simon McVittie).

Version 2.44.1
- This is a brown paper bag release!  Apologies for the bugs:
- Fix #324 - Don't panic if trying to render a non-empty SVG with no
  elements (Paolo Borelli).
- Fix #325 - All the elements were being leaked at the toplevel.
- Fix #326 - Fix COMPILING.md - librsvg 2.44 does not build on Ubuntu
  18.04 because it has a rust version that is too old.

Federico Mena Quintero's avatar
Federico Mena Quintero committed
264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279
Version 2.44.0
- Librsvg now has minimal logging for debugging by setting the
  RSVG_LOG environment variable.  See CONTRIBUTING.md for details.
- Speed improvements for Gaussian blur, SRGB conversions, and various
  filters (Ivan Molodetskikh).
- Fix #264 - the letter-spacing property now supports "normal" in
  addition to lengths (Paolo Borelli).
- Fix #318 - the font-weight property was being parsed incorrectly.
- Fix #323 - don't use 100% "forever" with malicious SVGs that cause
  an exponential number of elements to be instanced through the
  <use> element.  We limit the number of <use> instances now.
- Fix #293 - Don't panic when masking an empty group.
- Fix #319 - Parse single font-family correctly.
- Cleanups for the internal representation of elliptical arcs in paths
  (letheed).

Federico Mena Quintero's avatar
Federico Mena Quintero committed
280 281 282 283 284
Version 2.43.4
- This is an early release to test the effects of threading in librsvg.
- The lighting and Gaussian blur filters are now parallelized with
  Rayon; they will use all available cores (Ivan Molodetskikh).

Federico Mena Quintero's avatar
Federico Mena Quintero committed
285 286 287 288 289 290
Version 2.43.3
- Tentative fix: #309 - Don't panic if rendering to a non-image Cairo surface.
- Optimizations for Gaussian blur and other filters (Ivan Molodetskikh).
- Optimizations in SRGB <-> linear RGB conversions (Ivan Molodetskikh).
- More C to Rust conversion in the loading code (Paolo Borelli).

Federico Mena Quintero's avatar
Federico Mena Quintero committed
291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306
Version 2.43.2
- All the filter effects have been ported to Rust as part of Ivan
  Molodetskikh's Summer of Code project!!!!!
- We now require Rust 1.26.
- We now include Rust debug information even in release builds, to make it
  easier to obtain stack traces.
- Fix #310 - Respect DPI in the font-size property (Mike Marcacci).
- Fix: draw the circle/ellipse elements with the same orientation as
  the SVG 1.1 test suite; this is relevant for stroke-dasharray (Ivan
  Molodetskikh).
- Refactoring of the drawing code and font sizes (Paolo Borelli).
- New filters in Rust: feConvolveMatrix, feColorMatrix, feMorphology,
  feDisplacementMap, feGaussianBlur, feDistantLight, feSpotLight,
  fePointLight, feTile.
- Updated Rust dependencies (Igor Gnatenko).

Federico Mena Quintero's avatar
Federico Mena Quintero committed
307
Version 2.43.1
Federico Mena Quintero's avatar
Federico Mena Quintero committed
308
- Fix: #259 - Test fonts should now work with --enable-installed-tests
Federico Mena Quintero's avatar
Federico Mena Quintero committed
309 310
- Fix: #277 - Don't panic when trying to filter an empty group
  (Ivan Molodetskikh).
Federico Mena Quintero's avatar
Federico Mena Quintero committed
311
- Fix: #292 - Don't panic if we try to clip an empty group.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
312
- Fix the feOffset filter's coordinate parsing.  (Ivan Molodetskikh).
Federico Mena Quintero's avatar
Federico Mena Quintero committed
313 314
- Fix linearization of SRGB data in the feComposite filter (Ivan
  Molodetskikh).
Federico Mena Quintero's avatar
Federico Mena Quintero committed
315 316
- Fix CSS cascading in filters (Ivan Molodetskikh).
- Fix, don't render filters if they are in error (Ivan Molodetskikh).
Federico Mena Quintero's avatar
Federico Mena Quintero committed
317
- Fixed a couple of memory leaks in the test suite.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
318
- Filters now support FillPaint and StrokePaint for input (Ivan Molodetskikh).
Federico Mena Quintero's avatar
Federico Mena Quintero committed
319 320
- Filters now support the color-interpolation-filters property
  (Ivan Molodetskikh).
Federico Mena Quintero's avatar
Federico Mena Quintero committed
321 322 323
- The feImage, feBlend, feComponentTransfer filters are now in Rust
  (Ivan Molodetskikh).
- The feOffset filter now supports fractional offsets (Ivan Molodetskikh).
Federico Mena Quintero's avatar
Federico Mena Quintero committed
324 325
- The drawing context code is now in Rust.  This is a tremendous
  amount of work! (Paolo Borelli)
Federico Mena Quintero's avatar
Federico Mena Quintero committed
326
- All the style property parsers have been moved to rust-cssparser.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
327

328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390
Version 2.43.0
- This is the start of the 2.43 development series, and you bet we are
  doing extensive changes!
- Many, many thanks to Jordan Petridis for keeping our Continuous
  Infrastructure updated all the time, and for emergency fixes when
  they were necessary.
- As part of the Summer of Code 2018, Ivan Molodetskikh is porting the
  filter effects to Rust.  These are done so far:  core filters
  infrastructure, feComposite, feMerge, feOffset.  The only remaining
  SVG elements done in C pertain to filter effects, and Ivan is taking
  care of them.
- The feComposite filter now operates in linear RGB space, for better
  spec compliance.  We transform back to SRGB for the final results
  (see issue #275 for pending work on fully supporting this
  elsewhere).
- Filters now compute their bounds to floating-point values, instead
  of clipping them to integers.
- The text, tspan, tref elements are now in Rust (Paolo Borelli).
- Text rendering should be better.  We now perform text measurement
  operations with the actual affine transformation that the text will
  use in the end.  This should give Pango/Freetype a better chance of
  doing scale-appropriate hinting.
- The basic styling infrastructure has moved to Rust (Paolo Borelli,
  Federico Mena).  We don't use the old and limited cascading code
  anymore.  We also audited which CSS properties are supposed to
  inherit automatically or not; this should be working per the SVG
  spec now.  Special thanks to Paolo for doing the largest part of the
  work in moving the style data to Rust; this was a painstaking,
  months-long process of constant refactoring.
- The internals of the drawing infrastructure and bounding-box
  computation are now done in Rust (Paolo Borelli).
- Element creation from the parsing stage is now in Rust (Saurav
  Sachidanand).
- Clipping and Masking are now done in Rust (Paolo Borelli).
- Our tests now include the full Adwaita icon theme, so it doesn't
  break.
- Fix: #241 - feDistantLight and feSpotLight now work again.
- Fix: #282 - feComposite is fixed not to overwrite the source image
  in some cases; this fixes drop shadows generated from Inkscape (Ivan
  Molodetskikh).
- We have the beginnings of Windows CI, courtesy of Guillaume Gomez.
- Changes from 2.42.4:
- Fix: elements with systemLanguage attributes without variants now
  work better (Paolo Borelli).
- gitlab#227 - Fix: we now catch negative values in stroke-dasharray
  properties instead of leaving the cairo_t in an error state.
- gitlab#228 - Fix: empty transform attribute now correctly yields an
  identity transform (Dmitry Kontsevoy).
- Fix possible crash on invalid gradient references.
- Make robust against patterns and gradients with no children.
- Lots of code cleanups and refactorings (Jordan Petridis, Dmitry
  Kontsevoy, Ivan Molodetskikh).
- Code moved to Rust: low-level path and PangoLayout drawing, "switch"
  element (Paolo Borelli).
- New Rust dependencies: float_cmp, pangocairo crates.
- We now require Rust 1.21 or later.
- Changes from 2.42.5:
- #276 - rsvg_handle_render_cairo() will now refuse to render if the
  cairo_t passed to it is in an error state.  Fixes a panic in the
  cairo-dock program.
- #206 - The test suite now writes test artifacts to tests/output
  instead of /tmp (Saurav Sachidanand).

Federico Mena Quintero's avatar
Federico Mena Quintero committed
391
Version 2.42.3
Federico Mena Quintero's avatar
Federico Mena Quintero committed
392 393
- gitlab#205 - The configure script now checks for Rust 1.20.0 -
  previously this minimum requirement was not well-defined.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
394 395 396 397
- gitlab#204 - New feature: If an SVG has an <a> link element, we now
  generate the corresponding link when outputting to a Cairo PDF
  surface.  If you use rsvg-convert(1) with PDF output, <a> links in
  the SVG will work in the PDF (Dmitry Kontsevoy).
Federico Mena Quintero's avatar
Federico Mena Quintero committed
398 399
- gitlab#108 - New feature: support font-size:larger and font-size:smaller
  relative sizes.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
400 401 402 403 404 405 406
- New feature: rsvg-convert now supports SOURCE_DATE_EPOCH per
  https://reproducible-builds.org/specs/source-date-epoch/ to generate
  reproducible output for PDFs (Chris Lamb).
- gitlab#197 - New requirement: We now require Freetype2 2.9.0, which
  fixes font rendering bugs.  The test reference PNGs have been
  regenerated with this version.  You may see changes in font
  rendering as a result of this updated requirement.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
407 408
- gitlab#91 - Fix rendering of masks and clips when the initial
  transformation has a translation component (Massimo).
Federico Mena Quintero's avatar
Federico Mena Quintero committed
409 410
- gitlab#112 - Fix: apply style attributes for all SVG elements, not just
  for the toplevel one.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
411 412
- gitlab#161 - Fix the marker angle for the last vertex of closed
  paths (Juraj Fiala).
Federico Mena Quintero's avatar
Federico Mena Quintero committed
413 414
- gitlab#198 - Fix: Make rsvg_pixbuf_from_file() and its derived
  functions work again.  Now we have tests for the whole public API.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
415
- gitlab#143 - Minor optimizations for Gaussian blurs (Timm Bäder).
Federico Mena Quintero's avatar
Federico Mena Quintero committed
416
- gitlab#201 - Minor speedups in the code to parse SVG attributes.
417
- gitlab#178 - Fix some tests that failed on 32-bit machines.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
418
- COMPILING.md now lists our build dependencies, and has command lines
419 420 421 422 423 424 425
  which you can use on openSUSE/Fedora/Debian/Ubuntu/MacOS to set up a
  development environment for librsvg (Jordan Petridis, Brion Vibber).
- gitlab#211 - Running the configure script on MacOS now works and
  doesn't try to use -Bsymbolic for linking (Brion Vibber).
- gitlab#In addtion to --enable-debug/--disable-debug to control the Rust
  compilation, now you can use an environment variable
  LIBRSVG_DEBUG=yes / LIBRSVG_DEBUG=no if you wish.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
426 427 428 429 430 431 432
- Code moved to Rust: SVG paint servers (Dmitry Kontsevoy), SVG
  attribute parsing.
- We now use a Cargo workspace internally, to move more things to Rust
  (Jordan Petridis, Chun-wei Fan).
- Special thanks in this release to Jordan Petridis for MAJOR
  improvements to our Continuous Integration infrastructure, the
  repository structure, and updates to the compilation documentation.
433
  Also for setting up 32-bit builds for continuous integration.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
434

Federico Mena Quintero's avatar
Federico Mena Quintero committed
435 436 437
Version 2.42.2
- gitlab#193 - Don't crash when feConvolveMatrix doesn't specify
  orderx/ordery attributes.
438 439
- gitlab#136 - Parse stroke-dasharray property correctly.  This code
  is in Rust now; yay! (Jordan Petridis).
Federico Mena Quintero's avatar
Federico Mena Quintero committed
440 441 442 443
- Don't render markers if they are zero-sized, per the spec.
- Performance: eliminate a bunch of string copies during parsing.
- Update rust-cssparser to 0.23 (Igor Gnatenko).

444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460
Version 2.42.1
- gitlab#182 - Parse the transform attribute in a faster/simpler way.
  We now use rust-cssparser instead of lalrpop.  This is especially
  noticeable on SVGs with lots of "transform" attributes.
- gitlab#187 - Don't crash when setting a gradient on a zero-sized object.
- gitlab#184 - (Windows) Don't use PangoFT2 if not available (Chun-wei Fan).
- gitlab#181 - Inherit attributes in the <svg> element properly.
- gitlab#160 - rsvg-convert - fix error reporting when reading from
  stdin (Phlip Withnall).
- gitlab#152 - Fix detection of image type in "data:" URIs when they
  don't specify a MIME type (Andreas Smas).
- gitlab#117 - (Windows) rsvg-convert - Set stdout to O_BINARY
  (Bakhtiar Hasmanan).
- gitlab#133 - More stringent parsing of path data; better tests.
- (Windows/MSVC) Fix linking of the Rust internals library (Chun-wei Fan).
- Fix typos and links in the .md files.

461 462 463 464 465 466 467 468 469
Version 2.42.0
- Fix a memory leak in rsvg_handle_new_from_file() (Lovell Fuller).
- Optimize the xml:space normalization function (Jordan Petridis).
- gitlab#179 - fix a runtime warning in the feMergeNode code.
- gitlab#175 - Clarify documentation about the rsvg_*_sub() APIs.
- Stylistic fixes from cargo-clippy (Jordan Petridis).
- Port the Pango glue code to Rust.
- New ARCHITECTURE.md with a description of librsvg's internals.

Federico Mena Quintero's avatar
Federico Mena Quintero committed
470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496
Version 2.41.2
- We now require glib 2.52.0.
- bgo#787895 - Fix mis-use of libxml2.  Thanks to Nick Wellnhofer for
  the guidance.
- bgo#761175 - Allow masks and clips to reuse a node being drawn.
- Fix xml:space normalization, per the spec.
- Don't access the file system when deciding whether to load a remote
  file with a UNC path for a paint server (i.e. don't try to load it at all).
- We now support cross-compilation of the Rust code (David Michael).
  See COMPILING.md for details.
- Fixed bugs from Coverity runs (Philip Withnall).
- Vastly improved README.md, new COMPILING.md, improved CONTRIBUTING.md.
- Markers now have the correct default size per the SVG spec.
- Visual Studio: We now use HIGHENTROPYVA linker option on x64 builds,
  to enhance the security of built binaries (Chun-wei Fan).
- Cargo is now verbose as well if you use "make V=1".
- Fixed some memory leaks.
- Don't render elements that establish a viewport if their viewBox
  size is 0, per the spec.
- SVG elements ported to Rust: image, clipPath, mask, character data in elements.
- Fixed loading files one byte at a time.
- Reference documentation is now DocBook 5.1.
- Reference docs now have an overview of the library.
- Distribute README.md in the tarball properly.
- Expanded the test suite.
- Lots of internal refactoring.

497 498 499
Version 2.41.1
- The feConvolveMatrix filter primitive wasn't being rendered at all;
  now it works.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
500 501 502 503 504 505 506 507
- Pattern specifications can now have a fallback color, per the spec -
  https://www.w3.org/TR/SVG/painting.html#SpecifyingPaint
- Tests now use a very basic form of reproducible font rendering.
  This means that "make check" should pass even if you have a custom
  Fontconfig setup.
- Fixed recursive fallbacks in gradients.
- Per the spec, we now don't render elements which have invalid
  attributes.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
508 509 510 511 512
- Windows build: support building with Fontconfig; support Visual
  Studio 2017; generate .pc files upon install (Chun-wei Fan)
- Fixed bgo#621088 - Text elements can now be used as clipping paths.
- Fixed bgo#587721 - Fix rendering of text elements with transformations
  (Massimo)
Federico Mena Quintero's avatar
Federico Mena Quintero committed
513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532
- Fixed bgo#776932 - Don't crash on elements with an invalid
  "transform" attribute.
- Fixed bgo#777155 - Ignore patterns that have close-to-zero dimensions.
- Fixed bgo#776297 - Don't render markers for rect / circle elements;
  fix marker angles in some cases (Massimo).
- Fixed bgo#777834 - Don't crash when rendering text with empty
  extents.
- Fixed bgo#634324 - Gaussian blur with negative-scaling
  transformation was being rendered incorrectly.
- Fixed bgo#783835 - Don't divide by zero in Gaussian blurs
- Fixed division by zero in feTile filter when the input surface is
  empty.
- Fixed bgo#779489 - Link to pangoft2 as required.
- Don't crash in filters when one of them yields an invalid surface
  for an intermediate result.
- Update for bgo#778666 - Use our own thumbnailer specification file
  (Jeremy Bicha).
- Fixed bgo#782098 - Don't pass deprecated options to gtkdoc-scangobj
  (Ting-Wei Lan).
- Fixed bgo#777833 - Various memory leaks (Philip Withnall, Federico Mena)
Federico Mena Quintero's avatar
Federico Mena Quintero committed
533 534 535
- Fixed bgo#786372 - Use the correct default for the style element's
  "type" attribute.
- Fixed bgo#634514 - Don't render unknown elements and their children.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
536 537
- Fix parsing of "azimuth", "elevation", "limitingConeAngle" for
  filter effects.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
538 539 540
- Fixed bgo#785276 - Don't crash on empty or single-byte files.
- Made the <switch> element work; SVG feature names were being
  tested incorrectly.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
541 542 543 544 545 546 547 548
- Fixed a few cases of uninitialized struct fields.
- Code converted to Rust: preserveAspectRatio attribute, viewBox
  attribute, core Node structure, path/line/rect/circle/ellipse basic
  shapes, group/defs/switch/svg/use/symbol structural elements, pattern element
  and pattern fallbacks, marker rendering, various parsers, error
  propagation from parsers, gradient stops, gradient element, 
- Added a bunch of new test cases for the new features and the
  code converted to Rust.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
549 550 551 552 553 554
- We now require cairo-rs 0.2.0
- We now require lalrpop 0.13.1
- The librsvg tarball now comes with the Rust dependencies embedded
  using "cargo vendor".  Linux distros can replace these dependencies
  with their own versions using the infrastructure described in
  http://doc.crates.io/source-replacement.html
555

556 557 558 559 560
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
561 562
  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.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
563 564 565 566 567
- 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.
568 569 570 571 572 573
- 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.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
574 575
- Fixed bgo#776297 - Only render markers in path, line, polygon,
  polyline elements.
576 577
- Fixed feImage filters when they reference SVG nodes; they were
  translated incorrectly.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
578 579
- Fixed feComponentTransferFunction when there are duplicated feFuncX
  elements.
580 581
- Fixed bgo#761871 - handle reflection points for quadratic and cubic
  curves correctly.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
582
- Fixed bgo#686953 - support the "marker" shorthand property.
583
- Fixed a few minor issues pointed out by Coverity.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
584 585
- The path data parser now handles boolean values in Arc elements correctly.
- Fixed conformance bugs in gradient inheritance.
586 587 588 589 590 591
- 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.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
592 593 594 595 596
- 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.
597 598 599
- 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.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
600
  rsvg-test can now skip files or directories that start with "ignore".
601 602
- Improved the README.

Federico Mena Quintero's avatar
Federico Mena Quintero committed
603
Version 2.40.16
Federico Mena Quintero's avatar
Federico Mena Quintero committed
604
- Chun-wei Fan added support for building the introspection files under MSVC.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
605 606
- Fixed bgo#760262 - Make the zooming options in rsvg-convert(1) work again
  for scaling the resulting image.  Fix by Menner <mix@gmx.org>.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
607 608 609 610 611 612
- Fixed bgo#764808 - Wikipedia generates equations as SVGs and renders
  them, but uses fill="currentColor".  Since we don't let callers
  specify a starting state for CSS, we need to start with opaque black
  as the default current color.
- Added documentation for how to replace the deprecated
  rsvg_handle_set_size_callback().
Federico Mena Quintero's avatar
Federico Mena Quintero committed
613

614 615 616 617 618 619 620 621 622 623 624 625 626
Version 2.40.15
- Apologies for the lack of 2.40.14.  I mistakenly tagged the
  repository before updating the NEWS file.
- librsvg now uses the Contributor Covenant Code of Conduct, 
  version 1.4, to which all contributors and maintainers are expected
  to abide. Please see the code_of_conduct.md file for details.
- Chun-wei Fan fixed builds on Visual Studio pre-2012.
- Fixed bgo#759084 - Don't crash when filters don't actually exist
  Fix by Benjamin Otte.
- Javier Jardón updated our autogen.sh to use modern autotools.
- Fixed bgo#761728 - Memory leak in the PrimitiveComponentTransfer
  filter.  Fix by Ron Hopper.

Federico Mena Quintero's avatar
Federico Mena Quintero committed
627
Version 2.40.13
Federico Mena Quintero's avatar
Federico Mena Quintero committed
628
- Chun-wei Fan and Paolo Borelli fixed the Windows build.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
629 630 631 632 633
- Menner added basic support for the "baseline-shift" attribute in
  text objects.  We support "sub", "super", and plain "baseline", so
  you can at least have subscripts and superscripts for formulas and
  such.  There is no support for percentages or explicit lengths yet.
  bgo#340047.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
634 635 636 637
- Menner fixed some duplicate logic when rendering paths, which would
  try to decide whether to create intermediate surfaces.  Now we have
  a single place where this is done.  This fixes inconsistent text
  spacing in some situations.  bgo#749415.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
638 639 640 641 642 643 644 645
- Rewrote the markers engine, for bgo#685906 and bgo#760180 - Our
  machinery for rendering SVG markers (like arrowheads and such)
  didn't handle several cases correctly.  Curves with coincident
  control points produced incorrect orientations for the markers, as
  did multiple contiguous zero-length segments.  We follow the spec
  for this now and handle things correctly.  Also, markers didn't
  render in the correct position if they had the viewBox attribute
  set.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
646

Federico Mena Quintero's avatar
Federico Mena Quintero committed
647
Version 2.40.12
Federico Mena Quintero's avatar
Federico Mena Quintero committed
648 649 650 651 652 653 654 655 656 657
- Benjamin Otte did *great* work in refactoring the test harness to
  use Glib's gtest infrastructure, instead of using home-grown
  machinery.  Tests can simply be put as SVG files in the tests/
  subdirectories; it is not necessary to list them explicitly in some
  text file.  Yay!
- Gzipped SVGs now work if read from streams.
- References to objects/filters/URIs/etc. are now handled lazily.
  Also, there is a general-purpose cycle detector so malformed SVGs
  don't cause infinite loops.  Work by Benjamin Otte.
- Removed parsing of Adobe blend modes; they were not implemented, anyway.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
658
- Fixed bgo#700911 - feComponentTransfer filter functions did not work at all.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
659 660
- Fixed bgo#630732 - out-of-bounds read in feComponentTransfer with tableValues.
- Fixed bgo#677068 - incorrect reflection points in paths.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
661

662 663 664 665 666 667 668 669 670 671 672
Version 2.40.11
- Add project files for building on Visual Studio (bgo#753555).  Work
  by Chun-wei Fan.
- Added an "--export-id" option to rsvg-convert(1).  This lets you
  select a single object to export, for example, to pick out a group
  from a multi-part drawing.  Note that this is mostly useful for PNG
  output right now; for SVG output we don't preserve many attributes
  which could be useful in the extracted version.  Doing this properly
  requires an internal "output to SVG" backend instead of just telling
  Cairo to render to SVG.

Federico Mena Quintero's avatar
Federico Mena Quintero committed
673
Version 2.40.10
Federico Mena Quintero's avatar
Federico Mena Quintero committed
674 675
- Fixed bgo#748608 - Memory leak when Gaussian-blurring.  Thanks to
  Carlos Garnacho for fixing my leaky code.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
676 677 678 679
- Fixed bgo#739329 - font-family attributes with singly-quoted names
  were not handled correctly, yielding incorrect fonts.  Patch by Menner.
- Fixed bgo#476507 - Path start/end markers didn't have the correct angle
  if the path was a curve with coincident control points.  Patch by Menner.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
680 681
- Fixed bgo#688689 - Support font-style="normal" within a non-normal
  styled text block.  Patch by Paolo.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
682 683 684 685 686 687
- Fixed builddir != srcdir.  Patch by Matthias Clasen.
- Remove a bunch of deprecated GTK+ calls.
- This version of librsvg requires GTK+ 3.10.0, which is, ahem, only two years old.
  We previously required a version of GTK+ which is four years old.  Out with
  the old, in with the old.

Federico Mena Quintero's avatar
Federico Mena Quintero committed
688 689 690 691 692 693 694 695
Version 2.40.9
- Fixed bgo#738367 - V/v/H/h commands in path elements were not
  working.  Patch by Andrea Griffini.
- Fixed bgo#605875 - Gaussian-blurred objects were sometimes missing.
  Based on a patch by Eduard Braun.
- Fixed bgo#710163 - use _wfullpath() on Windows when canonicalizing
  filenames.  Patch by LRN.

Federico Mena Quintero's avatar
Federico Mena Quintero committed
696 697 698 699 700 701 702
Version 2.40.8
- Bugs fixed from fuzz testing: #744688 - possible double g_free()
  when processing stroke-dasharray
- Optimize rendering of polylines, lines, rectangles, circles, and
  ellipses.  These should be marginally faster, marginally more
  precise, and should put less pressure on the memory allocator.

Federico Mena Quintero's avatar
Federico Mena Quintero committed
703
Version 2.40.7
Federico Mena Quintero's avatar
Federico Mena Quintero committed
704
- Bugs fixed from fuzz testing: #703102, #738050, #738169, #744270, #744299
705 706
- Fixed unfiled bug from fuzz testing, where the convolution filter
  had an integer multiplication overflow.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
707 708
- Fix build of rsvg-convert on Windows.
- Fix a bunch of compiler warnings.
Federico Mena Quintero's avatar
Federico Mena Quintero committed
709

Richard Hughes's avatar
Richard Hughes committed
710 711 712 713 714
Version 2.40.6
- MinGW build fixes
- Fix path data number parsing
- Fix build with newer libtool

Christian Persch's avatar
Christian Persch committed
715 716 717 718
Version 2.40.1
- Build fixes
- Crash fixes

Christian Persch's avatar
Christian Persch committed
719 720 721 722 723 724 725 726 727
Version 2.40
- Add support for parsing rgba() colours and improve colour parsing
- rsvg-filter: Fix memory leak
- Remove support for GTK+2 along with the old theme engine
- Require at least version 3.2 of GTK+
- Remove support for old versions of gdk-pixbuf
- Add eps support to rsvg-convert

Version 2.39.0
Christian Persch's avatar
Christian Persch committed
728 729
- don't load resources from the net (#691708, CVE-2013-1881)

Matthias Clasen's avatar
Matthias Clasen committed
730 731 732 733
Version 2.37.0
- bump pango requirement to 1.32.6
- mark pixbuf loader as threadsafe

Christian Persch's avatar
Christian Persch committed
734 735 736
Version 2.36.4
- build fixes

Christian Persch's avatar
Christian Persch committed
737 738 739
Version 2.36.3
- build fixes

Christian Persch's avatar
Christian Persch committed
740 741 742 743 744 745
Version 2.36.2
- GObject introspection fixes (#677674)
- added Vala bindings (#677676)
- deprecate including headers apart from rsvg.h directly
- build fixes (#677661)

Christian Persch's avatar
Christian Persch committed
746 747 748
Version 2.36.1
- Bugs fixed: #672725, #672791, #672885, #673748

Christian Persch's avatar
Christian Persch committed
749 750 751
Version 2.36.0
- Bugs fixed: #669563, #672414, #672792, #672725

Christian Persch's avatar
Christian Persch committed
752 753 754
Version 2.35.2
_ Bug fixes

Christian Persch's avatar
Christian Persch committed
755 756 757
Version 2.35.1
- Bugs fixed: #664684, #664533, #665905, #665824

Christian Persch's avatar
Christian Persch committed
758 759 760 761 762 763 764 765 766 767
Version 2.35.0

This version contains many bug fixes and improvements.
- Update libxml2 dependency to 2.7.0
- Make GIO and libcroco hard requirements
- Use attributes for deprecations instead of defines
- Many memory leaks plugged
- Bugs fixed: #621636, #630112, #624820, #624835, #581108, #614157, 
              #630733, #473862, #590788, #626559, #663049, #663049

768 769 770 771 772 773 774 775 776
Version 2.34.1

This version contains fixes for CVE-2011-3146.

- cairo: reduce cost of measuring bounding boxes
- Use "const" instead G_CONST_RETURN (#652213)
- Call xmlFreeParserCtxt after using the context (#655472)
- Store node type separately in RsvgNode (#658014)

Christian Persch's avatar
Christian Persch committed
777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794
Version 2.34.0

- Allow building rsvg-view with gtk 3

Bugs fixed:
  629392 - stroke-dasharray is inherited by sibling texts
  626802 - NULL-ptr crash in g_str_equal in rsvg-styles.c
  641586 - configure should honour aclocal flags ACLOCAL_FLAGS 
  640336 - Typo in rsvg.1
  635214 - svgz never supported by pixbuf loader
  FDO 30071 - crash when rendering this svg with librsvg to a pdf or ps or recording surface
  629412 - Missing test files on librsvg-2.31.0
  630714 - fix stray comma 

Version 2.32.1

Version 2.32.0

Hiroyuki Ikezoe's avatar
Hiroyuki Ikezoe committed
795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815
Version 2.31.0

- buildable against standalone gdk-pixbuf
- require GIO

- Bug fixed:

  337979 text size not rendered correctly
  545158 Segfault or bad rendering when displaying a SVG file
  614556 Background pixbuf in filter process should not be created if it's not needed.
  616018 cairo-freetype font rendering code should be removed.
  620130 Decode base64 inplace
  620238 crashes rending a trivial file
  620592 Use correct free func
  620649 Simplify code by using g_clear_error
  620693 presentation attributes in svg element are ignored
  620822 Build fails with make -jx"
  621699 make librsvg gio friendly
  622790 use standalone gdk-pixbuf
  623383 [PATCH] crash on rsvg-gobject.c:141, in instance_dispose function

Hiroyuki Ikezoe's avatar
Hiroyuki Ikezoe committed
816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853
Version 2.26.3

- Bug fixed:
  143300 wrong bounding box when importing SVG
  403274 text in thumbnail too large
  404976 Unicode decomposed chars are not rendered well
  524690 text alignment incorrect with text-anchor:end
  545158 Segfault or bad rendering when displaying a SVG file
  563933 corrupted rendering of a card in 'Paris' aisleriot card theme
  564527 rsvg_handle_get_dimensions_sub weird behaviour
  564544 shape-rendering crispEdges property is antialiasing line elements
  566433 Could not  read  a valid svg file (inkspace read it)
  579286 This SVG-File crashes nautilus/rsvg-view
  581491 rsvg rendering is broken when encounters a 0px styled <text>
  589612 EOG error when loading a large SVG
  592207 Object cannot be rendered with more than 1 CSS {} rule
  597873 glib-mkenums cannot be invoked when GLib is uninstalled.
  597988 incorrect pkgconfig file let's others fail to detect librsvg
  598151 Incorrect rendering of svg file
  608575 Hang on particular SVG input
  612951 SVG not rendered if header contains width or height in percentage
  614123 librsvg builds tests even if tests are not run
  614555 should remove unused rsvg_filter_adobe_blend function
  614566 Needless G_OBJECT macro should be removed.
  614606 !important is not respected
  614643 does not handle comma separated CSS selector without libcroco
  614703 Need tests for get_dimensions.
  614704 css style doesn't override presentation attributes
  614730 Rendering not disabled for 0 sized objects
  614866 tests for CSS handling
  615490 rsvg-view should scale image size by default if the image has huge canvas.
  615699 rsvg-view should show zoom ratio.
  615701 class directive in svg element is not used at all
  615715 .class#id type selector is not supported.
  616187 rsvg-view crashes when open a svg image
  616835 Fix linking with pedantic linkers
  617163 !important directive support without libcroco.

Vincent Untz's avatar
Vincent Untz committed
854 855 856 857 858 859
Version 2.26.2

- Enable silent build by default
- Use GDK_DRAWABLE() instead of non-existing GTK_DRAWABLE()
- Fix compiler warnings

Vincent Untz's avatar
Vincent Untz committed
860 861 862 863 864 865 866
Version 2.26.1

- Remove some deprecated gtk+/gdk functions and bump gtk+ requirement
- Fix linking with pedantic linkers
- Make librsvg compile with -DGSEAL_ENABLED
- Drop mozilla plugin

Vincent Untz's avatar
Vincent Untz committed
867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889
Version 2.22.3

- Make librsvg buildable on windows without freetype dependency
- Fix build and tests
- Fix the handling of the stroke-dashoffset property
- Bad rendering for some wacko SVG path data
- Fix some arcs not being well drawn in SVG path
- Fix various crashes
- Set license field of GdkPixBufFormat in the SVG loader
- Migrate use of GMemChunk to GSlice
- If an ID is not found, return an error and/or do not render whole SVG

Version 2.22.2

- Fix rsvg-convert crash in  _rsvg_acquire_xlink_href_resource()

Version 2.22.1

- If a moveto is followed by multiple pairs of coordinates, the subsequent
  pairs are treated as implicit lineto commands.
- Handle display:none
- Handle xml:space="preserve"

Dom Lachowicz's avatar
Dom Lachowicz committed
890 891 892 893 894 895 896
Version 2.22.0

- Text rendering fixes (especially for non-ASCII text)
- Better cairo integration (fixed bugs when rendering inside of cairo groups)
- Migrate from GVFS to GIO
- Migrate rsvg-view from GnomePrint to GtkPrint

897 898 899 900 901 902 903 904
Version 2.18.0

- Support for some of the SVG 1.2 comp-op properties
- Less-blurry output
- Marker orientation is fixed
- Support compressed SVG from the GdkPixbuf plugin
- CSS fixes
- Better support for SVG conditionals
Dom Lachowicz's avatar
Dom Lachowicz committed
905
- Support for SVG 1.1's shape-rendering and text-rendering properties
906

Dom Lachowicz's avatar
Dom Lachowicz committed
907 908 909
Version 2.7.x

- Filters
910
- Hugely improved text support
Dom Lachowicz's avatar
Dom Lachowicz committed
911
- GTK+ theme engine
Dom Lachowicz's avatar
Dom Lachowicz committed
912
- Masks
913
- Path markers
Dom Lachowicz's avatar
Dom Lachowicz committed
914
- Mozilla plugin
Dom Lachowicz's avatar
Dom Lachowicz committed
915
- Patterns
Dom Lachowicz's avatar
Dom Lachowicz committed
916
- Standalone viewer
917 918
- Decent <image> support
- Numerous bug fixes
Dom Lachowicz's avatar
Dom Lachowicz committed
919 920 921 922 923 924 925 926 927 928 929

== gnome-2-6 branch ==

Version 2.6.x

- A slew of bug fixes

Version 2.5.x

- A slew of bug fixes

Alexander Larsson's avatar
Alexander Larsson committed
930 931 932 933 934
Version 2.4.0

- gdk-pixbuf loader fix
- support for title and desc elements

935 936 937
Version 2.3.0

- Support Paths inside of <defs> and use them in <use/> statements
938 939
- Vastly improved CSS support (libcroco and builtin)
- LibCroco CSS support
940
- Improved support for Gimp plugin
Dom Lachowicz's avatar
Dom Lachowicz committed
941 942 943

== gnome-2-2 branch ==

944 945 946 947 948 949 950 951 952
Version 2.2.5

- Gimp Import/Load plugin
- Bugfixes

Version 2.2.4

- Few bugfixes

Dom Lachowicz's avatar
Dom Lachowicz committed
953 954 955 956 957
Version 2.2.3

- All sorts of build and installation fixes
- "Bugfix" for a regression in GTK+'s pixbuf-io loader scheme

958 959 960 961 962
Version 2.2.2

- Handle SVGZ files (Gzipped SVG)
- Handle objectBoundingBox coordinates on gradients
- API extensions
963
- Various bugfixes and crash fixes
964

965 966 967 968 969 970 971
Version 2.2.1

- Better CSS style handling
- Fix for a crasher exploited by Sodipodi. Improved gradient handling
- RSVG allows you to specify the JPEG quality
- Handles Kontour's conicalGradients to some extent

Alexander Larsson's avatar
Alexander Larsson committed
972
Version 2.2.0
973 974 975 976

- Better CSS style handling
- Works in "international" locales (non-C locales) in a threadsafe manner
- Handle rounded rects
Alexander Larsson's avatar
Alexander Larsson committed
977 978
- Add manpage
- Handle "ex" units better
979

Alexander Larsson's avatar
Alexander Larsson committed
980 981 982 983
Version 2.1.5

- Missed files in tarball added. 

Alexander Larsson's avatar
Alexander Larsson committed
984 985 986 987 988 989
Version 2.1.4

- Fixed memory leak

- Better handling of display and visibility styles.

990 991 992 993
Version 2.1.3

- Better font handling (stretch, style, variant, weight supported, inherited)

994 995 996 997
Version 2.1.2

- Fixed crash with non-utf8 characters.

Alexander Larsson's avatar
Alexander Larsson committed
998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013
Version 2.1.1

- Better ellipse rendering

- New functions to set rendering DPI

- Better handling of SVGs colors, gradients and images

- support dashes

- Includes a new gdk-pixbuf svg loader

- Includes a new gimp svg loader

- Now installs a binary that can rasterize svgs.

1014 1015
Version 2.1.0

1016
- New co-maintainer Dom Lachowicz
1017 1018 1019 1020 1021

- Added new svg based gtk+ engine

- Handles SVGs a lot better. Especially with regards to units.

Alexander Larsson's avatar
Alexander Larsson committed
1022 1023 1024 1025
Version 2.0.1

- Fixed misrender of the ScalableGorilla trashcan.

Alexander Larsson's avatar
Alexander Larsson committed
1026 1027 1028 1029
Version 2.0.0

- Fixed crash when trying to open empty files (Anders)

1030 1031 1032 1033
Version 1.1.6

- Fix division by zero crashes when scaling an .svg without dimensions (Darin)

Darin Adler's avatar
Darin Adler committed
1034 1035 1036 1037
Version 1.1.5

- Add another new function for use in Nautilus icons (Alex Larsson)

Darin Adler's avatar
Darin Adler committed
1038 1039 1040 1041 1042 1043 1044
Version 1.1.4

- Add new function for auto-scaling svg for use in Nautilus icons (Alex Larsson)
- Fix xml parsing to read much faster and work around libxml bug (Michael Meeks)
- Add back handling for .svg file without width and height (Darin)
- Improved internal error handling (Darin)

1045 1046 1047 1048
Version 1.1.3

- Fix major storage leaks (Anders)

1049 1050 1051 1052
Version 1.1.2

- Use the new intersector (Alex)

Darin Adler's avatar
Darin Adler committed
1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069
Version 1.1.1

- Ported to Gnome 2 (Ramiro, Darin)
- Ported to Pango instead of using FreeType directly (Darin)
- Replace FILE-based API with data pushing API (Jonathan)

- Use pkgconfig rather than config scripts or .m4 files (Ramiro)
- Use stuff from libart rather than having our own copies (Darin)
- Move art_render_mask into libart (Darin)
- Use locale-independent functions for parsing the XML files,
  not <ctype.h>, which is locale dependent (Darin)
- Other misc. API cleanups (Jonathan).
- Fix NULL-dereference bugs in gradient code (Darin)
- Fix handling of empty .svg files (Darin)
- Measures strings propertly taking affine into account (Darin)
- Fix empty struct portability problem (Darin)
- Other build fixes (Owen, Jacob, Anders)