Subject: bug#70713: 29.3; Official Windows build - RSVG is either using an outdated version of the library or SVG support is not compiled correctly

From: Eli Zaretskii <[email-masked]>
Date: Thu, 02 May 2024 17:50:43 +0300

> Date: Thu, 02 May 2024 08:01:58 +0200
> From: Dewu <[email-masked]>
> 
> SVG (RSVG) support appears broken on the official Windows builds of GNU
> Emacs.
> This appears most prominently in osm (osm.el) by minad, available both 
> on GNU
> ELPA and MELPA, which uses SVG to display map tiles and location pins in 
> the
> buffer.
> The tiles with pins under them appear to be blank, regardless of zoom
> levels or tile set used.
> 
> The issue had been known to the developer of osm.el, as it was 
> previously
> reported on both Windows and macOS:
> - https://github.com/minad/osm/issues/23
> - https://github.com/minad/osm/issues/40
> The conclusion was that both builds of Emacs lacked proper SVG support 
> to display the tiles correctly.
> 
> This does not happen on any versions of Emacs built for GNU/Linux
> available in official repositories or Flatpak.
> 
> I suspect that Emacs for Windows is either not built correctly with RSVG 
> support, or
> the library it is built against is too old (librsvg-2-2.dll).
> This does not happen in Emacs built by MSYS2 (mingw-w64-x86_64-emacs) 
> which
> appears to be using a newer version of librsvg
> (mingw-w64-x86_64-librsvg 2.58.0-1)
> 
> To replicate:
> - emacs -Q
> - acquire osm (GitHub, ELPA, or MELPA)
> - load it (manually, autoloads, use-package etc.)
> - M-x osm RET
> - navigate the map
> - click on the map, add boomarks etc.
> - map tiles with pins under them appears blank

You seem to be talking about some binaries built from the source
tarball.  The Emacs project doesn't produce any binaries, it only
produces source tarballs.  If you downloaded the Windows binaries from
the GNU FTP site, then the volunteer who prepares them (CC'ed) might
be able to do something with that.  But in any case, there's no Emacs
bug here, per se, since what version of librsvg is being used to build
Emacs is not under our control.

In addition, I would like to point out that latest versions of librsvg
switched to Rust as the implementation language, which makes the
library less widely available.  For this reason, Lisp packages should
IMO not depend on features in these newer versions, if they want to be
compatible to as many systems as possible.