The parts of the rust gtk stack used by resvg are now installable again after 
having been broken for some time,
so I decided to take a look and see if I could get

The first thing I did was change the dependency on pico-args to 0.4 so that I 
could attempt a build.

I then discovered that the dependenices in Cargo.toml were often more 
restrictive than those in the
Debian package, I relaxed these.

Unfortunately I then discovered that the API of the cairo crate seems to have 
changed quite substantially,
I started trying to port it but quickly reached the point where I was not 
confident either that
my changes would work correctly or that patching was the right approach.

When I look at resvg upstream, the cairo code seems to have disappeared from 
the repository.

Work in progress debdiff attatched, do with it as you see fit.

diff -Nru resvg-0.8.0/debian/changelog resvg-0.8.0/debian/changelog
--- resvg-0.8.0/debian/changelog        2021-01-02 15:48:41.000000000 +0000
+++ resvg-0.8.0/debian/changelog        2021-12-29 00:24:20.000000000 +0000
@@ -1,3 +1,11 @@
+resvg (0.8.0-4.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Bump the pico-args dependency to 0.4.
+  * Adjust dependencies for rust gtk stack 0.14
+
+ -- Peter Michael Green <plugw...@debian.org>  Wed, 29 Dec 2021 00:24:20 +0000
+
 resvg (0.8.0-4) unstable; urgency=high
 
   * Fix the librust-jpeg-decoder-0.1-dev dependency.
diff -Nru resvg-0.8.0/debian/control resvg-0.8.0/debian/control
--- resvg-0.8.0/debian/control  2021-01-02 15:48:41.000000000 +0000
+++ resvg-0.8.0/debian/control  2021-12-29 00:24:20.000000000 +0000
@@ -9,7 +9,7 @@
  librust-base64-0+default-dev (>= 0.10-~~),
  librust-cairo-rs-0+default-dev (>= 0.7-~~),
  librust-cairo-rs-0+png-dev (>= 0.7-~~),
- librust-cairo-sys-rs-0+default-dev (>= 0.7.0-~~),
+ librust-cairo-sys-rs-0+default-dev (>= 0.9.0-~~),
  librust-cc-1+default-dev,
  librust-data-url-0+default-dev,
  librust-fern-0+default-dev (>= 0.5-~~),
@@ -24,7 +24,7 @@
  librust-log-0+default-dev (>= 0.4-~~),
  librust-lyon-geom-0+default-dev (>= 0.12-~~),
  librust-memmap-0+default-dev (>= 0.7-~~),
- librust-pico-args-0.3+default-dev,
+ librust-pico-args-0.4+default-dev,
  librust-pango-0+default-dev (>= 0.5-~~),
  librust-pangocairo-0+default-dev (>= 0.6-~~),
  librust-pkg-config-0+default-dev (>= 0.3-~~),
diff -Nru resvg-0.8.0/debian/patches/0009-rust-gtk-stack-0.14.patch 
resvg-0.8.0/debian/patches/0009-rust-gtk-stack-0.14.patch
--- resvg-0.8.0/debian/patches/0009-rust-gtk-stack-0.14.patch   1970-01-01 
00:00:00.000000000 +0000
+++ resvg-0.8.0/debian/patches/0009-rust-gtk-stack-0.14.patch   2021-12-29 
00:24:20.000000000 +0000
@@ -0,0 +1,240 @@
+Index: resvg-0.8.0/capi/Cargo.toml
+===================================================================
+--- resvg-0.8.0.orig/capi/Cargo.toml
++++ resvg-0.8.0/capi/Cargo.toml
+@@ -12,11 +12,11 @@ name = "resvg"
+ crate-type = ["cdylib", "staticlib"]
+ 
+ [dependencies]
+-fern = "0.5"
++fern = ">= 0.5"
+ log = "0.4"
+ resvg = { path = "../" }
+ # cairo backend
+-cairo-sys-rs = { version = "0.9.0", optional = true }
++cairo-sys-rs = { version = ">= 0.9.0", optional = true }
+ 
+ [features]
+ cairo-backend = ["resvg/cairo-backend", "cairo-sys-rs"]
+Index: resvg-0.8.0/Cargo.toml
+===================================================================
+--- resvg-0.8.0.orig/Cargo.toml
++++ resvg-0.8.0/Cargo.toml
+@@ -31,7 +31,7 @@ png = { version = "0.15", default-featur
+ jpeg-decoder = { version = "0.1.15", default-features = false }
+ 
+ # cairo backend
+-cairo-rs = { version = "0.7.1", default-features = false, features = ["png"], 
optional = true }
++cairo-rs = { version = ">= 0.7.1", default-features = false, features = 
["png"], optional = true }
+ 
+ # qt backend
+ resvg-qt = { path = "bindings/resvg-qt", version = "0.8", optional = true }
+Index: resvg-0.8.0/src/backend_cairo/clip_and_mask.rs
+===================================================================
+--- resvg-0.8.0.orig/src/backend_cairo/clip_and_mask.rs
++++ resvg-0.8.0/src/backend_cairo/clip_and_mask.rs
+@@ -17,10 +17,10 @@ pub fn clip(
+     let clip_surface = try_opt!(layers.get());
+     let clip_surface = clip_surface.borrow_mut();
+ 
+-    let clip_cr = cairo::Context::new(&*clip_surface);
++    let clip_cr = cairo::Context::new(&*clip_surface).unwrap();
+     clip_cr.set_source_rgba(0.0, 0.0, 0.0, 1.0);
+     clip_cr.paint();
+-    clip_cr.set_matrix(cr.get_matrix());
++    clip_cr.set_matrix(cr.matrix());
+     clip_cr.transform(cp.transform.to_native());
+ 
+     if cp.units == usvg::Units::ObjectBoundingBox {
+@@ -29,7 +29,7 @@ pub fn clip(
+ 
+     clip_cr.set_operator(cairo::Operator::Clear);
+ 
+-    let matrix = clip_cr.get_matrix();
++    let matrix = clip_cr.matrix();
+     for node in node.children() {
+         clip_cr.transform(node.transform().to_native());
+ 
+@@ -84,10 +84,10 @@ fn clip_group(
+                 let clip_surface = try_opt!(layers.get());
+                 let clip_surface = clip_surface.borrow_mut();
+ 
+-                let clip_cr = cairo::Context::new(&*clip_surface);
++                let clip_cr = cairo::Context::new(&*clip_surface).unwrap();
+                 clip_cr.set_source_rgba(0.0, 0.0, 0.0, 0.0);
+                 clip_cr.paint();
+-                clip_cr.set_matrix(cr.get_matrix());
++                clip_cr.set_matrix(cr.matrix());
+ 
+                 draw_group_child(&node, opt, &clip_cr);
+ 
+@@ -132,8 +132,8 @@ pub fn mask(
+     let mut mask_surface = mask_surface.borrow_mut();
+ 
+     {
+-        let mask_cr = cairo::Context::new(&*mask_surface);
+-        mask_cr.set_matrix(cr.get_matrix());
++        let mask_cr = cairo::Context::new(&*mask_surface).unwrap();
++        mask_cr.set_matrix(cr.matrix());
+ 
+         let r = if mask.units == usvg::Units::ObjectBoundingBox {
+             mask.rect.bbox_transform(bbox)
+@@ -153,7 +153,7 @@ pub fn mask(
+ 
+     {
+         let mut data = try_opt_warn!(
+-            mask_surface.get_data().ok(),
++            mask_surface.data().ok(),
+             "Failed to borrow a surface for mask '{}'.", mask.id
+         );
+ 
+Index: resvg-0.8.0/src/backend_cairo/filter.rs
+===================================================================
+--- resvg-0.8.0.orig/src/backend_cairo/filter.rs
++++ resvg-0.8.0/src/backend_cairo/filter.rs
+@@ -31,17 +31,17 @@ pub fn apply(
+ 
+ impl ImageExt for cairo::ImageSurface {
+     fn width(&self) -> u32 {
+-        self.get_width() as u32
++        self.width() as u32
+     }
+ 
+     fn height(&self) -> u32 {
+-        self.get_height() as u32
++        self.height() as u32
+     }
+ 
+     fn try_clone(&self) -> Result<Self, Error> {
+         let new_image = create_image(self.width(), self.height())?;
+ 
+-        let cr = cairo::Context::new(&new_image);
++        let cr = cairo::Context::new(&new_image).unwrap();
+         cr.set_source_surface(self, 0.0, 0.0);
+         cr.paint();
+ 
+@@ -49,7 +49,7 @@ impl ImageExt for cairo::ImageSurface {
+     }
+ 
+     fn clip(&mut self, region: ScreenRect) {
+-        let cr = cairo::Context::new(self);
++        let cr = cairo::Context::new(self).unwrap();
+         cr.set_source_rgba(0.0, 0.0, 0.0, 0.0);
+         cr.set_operator(cairo::Operator::Clear);
+ 
+@@ -62,7 +62,7 @@ impl ImageExt for cairo::ImageSurface {
+     }
+ 
+     fn clear(&mut self) {
+-        let cr = cairo::Context::new(self);
++        let cr = cairo::Context::new(self).unwrap();
+         cr.set_operator(cairo::Operator::Clear);
+         cr.set_source_rgba(0.0, 0.0, 0.0, 0.0);
+         cr.paint();
+@@ -115,7 +115,7 @@ fn copy_image(
+ 
+     let new_image = create_image(region.width(), region.height())?;
+ 
+-    let cr = cairo::Context::new(&new_image);
++    let cr = cairo::Context::new(&new_image).unwrap();
+     cr.set_source_surface(&*image, -x, -y);
+     cr.paint();
+ 
+@@ -216,7 +216,7 @@ impl Filter<cairo::ImageSurface> for Cai
+         // TODO: do not use an additional buffer
+         let buffer = create_image(input.width(), input.height())?;
+ 
+-        let cr = cairo::Context::new(&buffer);
++        let cr = cairo::Context::new(&buffer).unwrap();
+         cr.set_source_surface(input.as_ref(), dx, dy);
+         cr.paint();
+ 
+@@ -234,7 +234,7 @@ impl Filter<cairo::ImageSurface> for Cai
+         let input2 = input2.into_color_space(cs)?;
+ 
+         let buffer = create_image(region.width(), region.height())?;
+-        let cr = cairo::Context::new(&buffer);
++        let cr = cairo::Context::new(&buffer).unwrap();
+ 
+         cr.set_source_surface(input2.as_ref(), 0.0, 0.0);
+         cr.paint();
+@@ -303,7 +303,7 @@ impl Filter<cairo::ImageSurface> for Cai
+             return Ok(Image::from_image(buffer, cs));
+         }
+ 
+-        let cr = cairo::Context::new(&buffer);
++        let cr = cairo::Context::new(&buffer).unwrap();
+ 
+         cr.set_source_surface(&input2, 0.0, 0.0);
+         cr.paint();
+@@ -333,7 +333,7 @@ impl Filter<cairo::ImageSurface> for Cai
+         canvas: &cairo::ImageSurface,
+     ) -> Result<Image, Error> {
+         let buffer = create_image(region.width(), region.height())?;
+-        let cr = cairo::Context::new(&buffer);
++        let cr = cairo::Context::new(&buffer).unwrap();
+ 
+         for input in &fe.inputs {
+             let input = Self::get_input(input, region, &results, canvas)?;
+@@ -352,7 +352,7 @@ impl Filter<cairo::ImageSurface> for Cai
+     ) -> Result<Image, Error> {
+         let buffer = create_image(region.width(), region.height())?;
+ 
+-        let cr = cairo::Context::new(&buffer);
++        let cr = cairo::Context::new(&buffer).unwrap();
+         cr.set_source_color(fe.color, fe.opacity);
+         cr.paint();
+ 
+@@ -374,7 +374,7 @@ impl Filter<cairo::ImageSurface> for Cai
+         patt.set_extend(cairo::Extend::Repeat);
+         patt.set_filter(cairo::Filter::Best);
+ 
+-        let cr = cairo::Context::new(&buffer);
++        let cr = cairo::Context::new(&buffer).unwrap();
+         let mut m: cairo::Matrix = brush_ts.to_native();
+         m.invert();
+         patt.set_matrix(m);
+@@ -397,7 +397,7 @@ impl Filter<cairo::ImageSurface> for Cai
+         match fe.data {
+             usvg::FeImageKind::None => {}
+             usvg::FeImageKind::Image(ref data, format) => {
+-                let cr = cairo::Context::new(&buffer);
++                let cr = cairo::Context::new(&buffer).unwrap();
+ 
+                 let dx = (subregion.x() - region.x()) as f64;
+                 let dy = (subregion.y() - region.y()) as f64;
+@@ -468,7 +468,7 @@ impl Filter<cairo::ImageSurface> for Cai
+     ) -> Result<(), Error> {
+         let input = input.into_color_space(ColorSpace::SRGB)?;
+ 
+-        let cr = cairo::Context::new(canvas);
++        let cr = cairo::Context::new(canvas).unwrap();
+ 
+         cr.set_operator(cairo::Operator::Clear);
+         cr.set_source_rgba(0.0, 0.0, 0.0, 0.0);
+Index: resvg-0.8.0/tools/rendersvg/Cargo.toml
+===================================================================
+--- resvg-0.8.0.orig/tools/rendersvg/Cargo.toml
++++ resvg-0.8.0/tools/rendersvg/Cargo.toml
+@@ -8,7 +8,7 @@ edition = "2018"
+ workspace = "../../"
+ 
+ [dependencies]
+-fern = "0.5"
++fern = ">= 0.5"
+ log = "0.4"
+ pico-args = "0.4"
+ resvg = { path = "../../" }
+Index: resvg-0.8.0/tools/usvg/Cargo.toml
+===================================================================
+--- resvg-0.8.0.orig/tools/usvg/Cargo.toml
++++ resvg-0.8.0/tools/usvg/Cargo.toml
+@@ -13,7 +13,7 @@ workspace = "../../"
+ travis-ci = { repository = "RazrFalcon/resvg" }
+ 
+ [dependencies]
+-fern = "0.5"
++fern = ">= 0.5"
+ log = "0.4"
+ pico-args = "0.4"
+ usvg = { version = "0.8", path = "../../usvg" }
diff -Nru resvg-0.8.0/debian/patches/pico-args-0.3.patch 
resvg-0.8.0/debian/patches/pico-args-0.3.patch
--- resvg-0.8.0/debian/patches/pico-args-0.3.patch      2021-01-02 
15:48:41.000000000 +0000
+++ resvg-0.8.0/debian/patches/pico-args-0.3.patch      1970-01-01 
00:00:00.000000000 +0000
@@ -1,114 +0,0 @@
-From: Andrej Shadura <andrew.shad...@collabora.co.uk>
-Date: Sat, 21 Nov 2020 22:24:22 +0100
-Subject: pico-args 0.3
-
----
- tools/rendersvg/Cargo.toml  |  2 +-
- tools/rendersvg/src/args.rs | 28 ++++++++++++++--------------
- tools/usvg/Cargo.toml       |  2 +-
- tools/usvg/src/main.rs      | 18 +++++++++---------
- 4 files changed, 25 insertions(+), 25 deletions(-)
-
-diff --git a/tools/rendersvg/Cargo.toml b/tools/rendersvg/Cargo.toml
-index b2c0a48..211e531 100644
---- a/tools/rendersvg/Cargo.toml
-+++ b/tools/rendersvg/Cargo.toml
-@@ -10,7 +10,7 @@ workspace = "../../"
- [dependencies]
- fern = "0.5"
- log = "0.4"
--pico-args = "0.2"
-+pico-args = "0.3"
- resvg = { path = "../../" }
- time = "0.1"
- 
-diff --git a/tools/rendersvg/src/args.rs b/tools/rendersvg/src/args.rs
-index 976d4bf..95211c5 100644
---- a/tools/rendersvg/src/args.rs
-+++ b/tools/rendersvg/src/args.rs
-@@ -104,26 +104,26 @@ fn collect_args() -> Result<CliArgs, pico_args::Error> {
-     Ok(CliArgs {
-         help:               input.contains("--help"),
-         version:            input.contains(["-V", "--version"]),
--        backend:            
input.value_from_str("--backend")?.unwrap_or(default_backend()),
--        width:              input.value_from_fn(["-w", "--width"], 
parse_length)?,
--        height:             input.value_from_fn(["-h", "--height"], 
parse_length)?,
--        zoom:               input.value_from_fn(["-z", "--zoom"], 
parse_zoom)?,
--        dpi:                input.value_from_fn("--dpi", 
parse_dpi)?.unwrap_or(96),
--        background:         input.value_from_str("--background")?,
--        font_family:        input.value_from_str("--font-family")?
-+        backend:            
input.opt_value_from_str("--backend")?.unwrap_or(default_backend()),
-+        width:              input.opt_value_from_fn(["-w", "--width"], 
parse_length)?,
-+        height:             input.opt_value_from_fn(["-h", "--height"], 
parse_length)?,
-+        zoom:               input.opt_value_from_fn(["-z", "--zoom"], 
parse_zoom)?,
-+        dpi:                input.opt_value_from_fn("--dpi", 
parse_dpi)?.unwrap_or(96),
-+        background:         input.opt_value_from_str("--background")?,
-+        font_family:        input.opt_value_from_str("--font-family")?
-                                  .unwrap_or_else(|| "Times New 
Roman".to_string()),
--        font_size:          input.value_from_fn("--font-size", 
parse_font_size)?.unwrap_or(12),
--        languages:          input.value_from_fn("--languages", 
parse_languages)?
-+        font_size:          input.opt_value_from_fn("--font-size", 
parse_font_size)?.unwrap_or(12),
-+        languages:          input.opt_value_from_fn("--languages", 
parse_languages)?
-                                  .unwrap_or(vec!["en".to_string()]), // TODO: 
use system language
--        shape_rendering:    
input.value_from_str("--shape-rendering")?.unwrap_or_default(),
--        text_rendering:     
input.value_from_str("--text-rendering")?.unwrap_or_default(),
--        image_rendering:    
input.value_from_str("--image-rendering")?.unwrap_or_default(),
-+        shape_rendering:    
input.opt_value_from_str("--shape-rendering")?.unwrap_or_default(),
-+        text_rendering:     
input.opt_value_from_str("--text-rendering")?.unwrap_or_default(),
-+        image_rendering:    
input.opt_value_from_str("--image-rendering")?.unwrap_or_default(),
-         query_all:          input.contains("--query-all"),
--        export_id:          input.value_from_str("--export-id")?,
-+        export_id:          input.opt_value_from_str("--export-id")?,
-         perf:               input.contains("--perf"),
-         pretend:            input.contains("--pretend"),
-         quiet:              input.contains("--quiet"),
--        dump_svg:           input.value_from_str("--dump-svg")?,
-+        dump_svg:           input.opt_value_from_str("--dump-svg")?,
-         free:               input.free()?,
-     })
- }
-diff --git a/tools/usvg/Cargo.toml b/tools/usvg/Cargo.toml
-index 1e046fc..e54d92f 100644
---- a/tools/usvg/Cargo.toml
-+++ b/tools/usvg/Cargo.toml
-@@ -15,7 +15,7 @@ travis-ci = { repository = "RazrFalcon/resvg" }
- [dependencies]
- fern = "0.5"
- log = "0.4"
--pico-args = "0.2"
-+pico-args = "0.3"
- usvg = { version = "0.8", path = "../../usvg" }
- 
- [[bin]]
-diff --git a/tools/usvg/src/main.rs b/tools/usvg/src/main.rs
-index 01437c4..4e09775 100644
---- a/tools/usvg/src/main.rs
-+++ b/tools/usvg/src/main.rs
-@@ -87,18 +87,18 @@ fn collect_args() -> Result<Args, pico_args::Error> {
-         version:            input.contains(["-V", "--version"]),
-         stdout:             input.contains("-c"),
-         keep_named_groups:  input.contains("--keep-named-groups"),
--        dpi:                input.value_from_fn("--dpi", 
parse_dpi)?.unwrap_or(96),
--        font_family:        input.value_from_str("--font-family")?
-+        dpi:                input.opt_value_from_fn("--dpi", 
parse_dpi)?.unwrap_or(96),
-+        font_family:        input.opt_value_from_str("--font-family")?
-                                  .unwrap_or_else(|| "Times New 
Roman".to_string()),
--        font_size:          input.value_from_fn("--font-size", 
parse_font_size)?.unwrap_or(12),
--        languages:          input.value_from_fn("--languages", 
parse_languages)?
-+        font_size:          input.opt_value_from_fn("--font-size", 
parse_font_size)?.unwrap_or(12),
-+        languages:          input.opt_value_from_fn("--languages", 
parse_languages)?
-                                  .unwrap_or(vec!["en".to_string()]), // TODO: 
use system language
--        shape_rendering:    
input.value_from_str("--shape-rendering")?.unwrap_or_default(),
--        text_rendering:     
input.value_from_str("--text-rendering")?.unwrap_or_default(),
--        image_rendering:    
input.value_from_str("--image-rendering")?.unwrap_or_default(),
--        indent:             input.value_from_fn("--indent", parse_indent)?
-+        shape_rendering:    
input.opt_value_from_str("--shape-rendering")?.unwrap_or_default(),
-+        text_rendering:     
input.opt_value_from_str("--text-rendering")?.unwrap_or_default(),
-+        image_rendering:    
input.opt_value_from_str("--image-rendering")?.unwrap_or_default(),
-+        indent:             input.opt_value_from_fn("--indent", parse_indent)?
-                                  .unwrap_or(usvg::XmlIndent::Spaces(4)),
--        attrs_indent:       input.value_from_fn("--attrs-indent", 
parse_indent)?
-+        attrs_indent:       input.opt_value_from_fn("--attrs-indent", 
parse_indent)?
-                                  .unwrap_or(usvg::XmlIndent::None),
-         quiet:              input.contains("--quiet"),
-         free:               input.free()?,
diff -Nru resvg-0.8.0/debian/patches/pico-args-0.4.patch 
resvg-0.8.0/debian/patches/pico-args-0.4.patch
--- resvg-0.8.0/debian/patches/pico-args-0.4.patch      1970-01-01 
00:00:00.000000000 +0000
+++ resvg-0.8.0/debian/patches/pico-args-0.4.patch      2021-12-29 
00:23:50.000000000 +0000
@@ -0,0 +1,117 @@
+Patch for pico args 0.4 by Peter Michael Green <plugw...@debian.org>
+
+Based on patch for pico args 0.3 by Andrej Shadura 
<andrew.shad...@collabora.co.uk>
+
+Date: Wed, 29 Dec 2021 00:23:40 +0000
+Subject: pico-args 0.4
+
+---
+ tools/rendersvg/Cargo.toml  |  2 +-
+ tools/rendersvg/src/args.rs | 28 ++++++++++++++--------------
+ tools/usvg/Cargo.toml       |  2 +-
+ tools/usvg/src/main.rs      | 18 +++++++++---------
+ 4 files changed, 25 insertions(+), 25 deletions(-)
+
+diff --git a/tools/rendersvg/Cargo.toml b/tools/rendersvg/Cargo.toml
+index b2c0a48..211e531 100644
+--- a/tools/rendersvg/Cargo.toml
++++ b/tools/rendersvg/Cargo.toml
+@@ -10,7 +10,7 @@ workspace = "../../"
+ [dependencies]
+ fern = "0.5"
+ log = "0.4"
+-pico-args = "0.2"
++pico-args = "0.4"
+ resvg = { path = "../../" }
+ time = "0.1"
+ 
+diff --git a/tools/rendersvg/src/args.rs b/tools/rendersvg/src/args.rs
+index 976d4bf..95211c5 100644
+--- a/tools/rendersvg/src/args.rs
++++ b/tools/rendersvg/src/args.rs
+@@ -104,26 +104,26 @@ fn collect_args() -> Result<CliArgs, pico_args::Error> {
+     Ok(CliArgs {
+         help:               input.contains("--help"),
+         version:            input.contains(["-V", "--version"]),
+-        backend:            
input.value_from_str("--backend")?.unwrap_or(default_backend()),
+-        width:              input.value_from_fn(["-w", "--width"], 
parse_length)?,
+-        height:             input.value_from_fn(["-h", "--height"], 
parse_length)?,
+-        zoom:               input.value_from_fn(["-z", "--zoom"], 
parse_zoom)?,
+-        dpi:                input.value_from_fn("--dpi", 
parse_dpi)?.unwrap_or(96),
+-        background:         input.value_from_str("--background")?,
+-        font_family:        input.value_from_str("--font-family")?
++        backend:            
input.opt_value_from_str("--backend")?.unwrap_or(default_backend()),
++        width:              input.opt_value_from_fn(["-w", "--width"], 
parse_length)?,
++        height:             input.opt_value_from_fn(["-h", "--height"], 
parse_length)?,
++        zoom:               input.opt_value_from_fn(["-z", "--zoom"], 
parse_zoom)?,
++        dpi:                input.opt_value_from_fn("--dpi", 
parse_dpi)?.unwrap_or(96),
++        background:         input.opt_value_from_str("--background")?,
++        font_family:        input.opt_value_from_str("--font-family")?
+                                  .unwrap_or_else(|| "Times New 
Roman".to_string()),
+-        font_size:          input.value_from_fn("--font-size", 
parse_font_size)?.unwrap_or(12),
+-        languages:          input.value_from_fn("--languages", 
parse_languages)?
++        font_size:          input.opt_value_from_fn("--font-size", 
parse_font_size)?.unwrap_or(12),
++        languages:          input.opt_value_from_fn("--languages", 
parse_languages)?
+                                  .unwrap_or(vec!["en".to_string()]), // TODO: 
use system language
+-        shape_rendering:    
input.value_from_str("--shape-rendering")?.unwrap_or_default(),
+-        text_rendering:     
input.value_from_str("--text-rendering")?.unwrap_or_default(),
+-        image_rendering:    
input.value_from_str("--image-rendering")?.unwrap_or_default(),
++        shape_rendering:    
input.opt_value_from_str("--shape-rendering")?.unwrap_or_default(),
++        text_rendering:     
input.opt_value_from_str("--text-rendering")?.unwrap_or_default(),
++        image_rendering:    
input.opt_value_from_str("--image-rendering")?.unwrap_or_default(),
+         query_all:          input.contains("--query-all"),
+-        export_id:          input.value_from_str("--export-id")?,
++        export_id:          input.opt_value_from_str("--export-id")?,
+         perf:               input.contains("--perf"),
+         pretend:            input.contains("--pretend"),
+         quiet:              input.contains("--quiet"),
+-        dump_svg:           input.value_from_str("--dump-svg")?,
++        dump_svg:           input.opt_value_from_str("--dump-svg")?,
+         free:               input.free()?,
+     })
+ }
+diff --git a/tools/usvg/Cargo.toml b/tools/usvg/Cargo.toml
+index 1e046fc..e54d92f 100644
+--- a/tools/usvg/Cargo.toml
++++ b/tools/usvg/Cargo.toml
+@@ -15,7 +15,7 @@ travis-ci = { repository = "RazrFalcon/resvg" }
+ [dependencies]
+ fern = "0.5"
+ log = "0.4"
+-pico-args = "0.2"
++pico-args = "0.4"
+ usvg = { version = "0.8", path = "../../usvg" }
+ 
+ [[bin]]
+diff --git a/tools/usvg/src/main.rs b/tools/usvg/src/main.rs
+index 01437c4..4e09775 100644
+--- a/tools/usvg/src/main.rs
++++ b/tools/usvg/src/main.rs
+@@ -87,18 +87,18 @@ fn collect_args() -> Result<Args, pico_args::Error> {
+         version:            input.contains(["-V", "--version"]),
+         stdout:             input.contains("-c"),
+         keep_named_groups:  input.contains("--keep-named-groups"),
+-        dpi:                input.value_from_fn("--dpi", 
parse_dpi)?.unwrap_or(96),
+-        font_family:        input.value_from_str("--font-family")?
++        dpi:                input.opt_value_from_fn("--dpi", 
parse_dpi)?.unwrap_or(96),
++        font_family:        input.opt_value_from_str("--font-family")?
+                                  .unwrap_or_else(|| "Times New 
Roman".to_string()),
+-        font_size:          input.value_from_fn("--font-size", 
parse_font_size)?.unwrap_or(12),
+-        languages:          input.value_from_fn("--languages", 
parse_languages)?
++        font_size:          input.opt_value_from_fn("--font-size", 
parse_font_size)?.unwrap_or(12),
++        languages:          input.opt_value_from_fn("--languages", 
parse_languages)?
+                                  .unwrap_or(vec!["en".to_string()]), // TODO: 
use system language
+-        shape_rendering:    
input.value_from_str("--shape-rendering")?.unwrap_or_default(),
+-        text_rendering:     
input.value_from_str("--text-rendering")?.unwrap_or_default(),
+-        image_rendering:    
input.value_from_str("--image-rendering")?.unwrap_or_default(),
+-        indent:             input.value_from_fn("--indent", parse_indent)?
++        shape_rendering:    
input.opt_value_from_str("--shape-rendering")?.unwrap_or_default(),
++        text_rendering:     
input.opt_value_from_str("--text-rendering")?.unwrap_or_default(),
++        image_rendering:    
input.opt_value_from_str("--image-rendering")?.unwrap_or_default(),
++        indent:             input.opt_value_from_fn("--indent", parse_indent)?
+                                  .unwrap_or(usvg::XmlIndent::Spaces(4)),
+-        attrs_indent:       input.value_from_fn("--attrs-indent", 
parse_indent)?
++        attrs_indent:       input.opt_value_from_fn("--attrs-indent", 
parse_indent)?
+                                  .unwrap_or(usvg::XmlIndent::None),
+         quiet:              input.contains("--quiet"),
+         free:               input.free()?,
diff -Nru resvg-0.8.0/debian/patches/series resvg-0.8.0/debian/patches/series
--- resvg-0.8.0/debian/patches/series   2021-01-02 15:48:41.000000000 +0000
+++ resvg-0.8.0/debian/patches/series   2021-12-29 00:24:20.000000000 +0000
@@ -1,8 +1,9 @@
 no-raqote-or-skia.patch
 deps.patch
 rgb-compat.patch
-pico-args-0.3.patch
+pico-args-0.4.patch
 unicode-script-0.5.patch
 0006-resvg-qt-Do-not-use-a-deprecated-method.patch
 0007-resvg-qt-Check-Qt-version-before-using-modern-API.patch
 0008-qt-backend-Fix-building-with-Qt-5.15.patch
+0009-rust-gtk-stack-0.14.patch

Reply via email to