Nanosvg is a tiny SVG parsing and rasterization library, bundled with fuzzel, thus being sufficient for the package's functionalities, the use of librsvg is unnecessary.
Nanosvg is under the zlib license.
The current configure options exposed emulates the `choices` type of the
SVG and PNG backends from upstream meson_options with a freeform string,
however this is error prone and require accompanying validation which
unnecessarily complicates the derivation. Two alternatives were considered:
1. Splits the possible choices into separate options nad perform assertions to
ensure only one is selected.
2. Expose a set of sane default configure options, and structure the derivation
around this subset. Users who wish to customize the choice used can do so
using `override` or `overrideAttrs`.
Option 1 is not sustainable for large amounts of options which require large
amount of assertions just for ensuring uniqueness of selection, and adds
complexity to the configure phase. Option 2 minimally impairs the customizablity
of the derivation and was chosen in part to address option checking[1].
[1] - https://github.com/NixOS/nixpkgs/pull/141836#discussion_r739910095
The SVG and PNG options were adjusted to account for upstream changes
on the meson build options and additional nanosvg backend for SVG support
independent of cairo.
* Remove unnecessary dependencies, and add wayland-scanner for gluing
wayland protocol XML files.
* Added optional flags for cairo, png and svg support
respectively and specify build type.