#1129191 meli: FTBFS: [meli 0.8.13] Tried rustfmt on overrides module, got error: rustfmt invocation replied with: `Warning: can't set `wrap_comments = true`, unstable features are only available in nightly channel.

Package:
src:meli
Source:
src:meli
Submitter:
Santiago Vila
Date:
2026-05-31 12:07:02 UTC
Severity:
normal
Tags:
#1129191#5
Date:
2026-02-27 10:13:13 UTC
From:
To:
Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202602/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:meli, so that this is still
visible in the BTS web page for this package.

Thanks.
--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean
   dh_auto_clean --buildsystem=rust
	/usr/share/dh-rust/bin/cargo clean
debian cargo wrapper: options, profiles, parallel, lto: ['parallel=2'] [] ['-j2'] 0
debian cargo wrapper: rust_type, gnu_type: x86_64-unknown-linux-gnu, x86_64-linux-gnu
debian cargo wrapper: running subprocess (['env', 'RUST_BACKTRACE=1', '/usr/bin/cargo', 'clean', '--verbose', '--verbose'],) {'check': True}
     Removed 0 files
   dh_clean -XCargo.toml.orig
 debian/rules binary
dh binary
   dh_update_autotools_config
   dh_autoreconf
   dh_auto_configure --buildsystem=rust
	/usr/share/dh-rust/bin/cargo prepare-debian debian/cargo_registry

[... snipped ...]

warning: trait `WriteAsFd` is more private than the item `terminal::screen::Tty::set_draw_fn`
   --> meli/src/terminal/screen.rs:185:5
    |
185 | /     pub fn set_draw_fn(
186 | |         &mut self,
187 | |         draw_horizontal_segment_fn: DrawHorizontalSegmentFn,
188 | |     ) -> &mut Self {
    | |__________________^ method `terminal::screen::Tty::set_draw_fn` is reachable at visibility `pub`
    |
note: but trait `WriteAsFd` is only usable at visibility `pub(crate)`
   --> meli/src/terminal/screen.rs:46:1
    |
 46 | pub (crate) unsafe trait WriteAsFd: std::io::Write + AsFd {}
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: type `BufWriterWithFd<Box<(dyn WriteAsFd + 'static)>>` is more private than the item `terminal::screen::Screen::<terminal::screen::Tty>::draw_horizontal_segment`
   --> meli/src/terminal/screen.rs:481:5
    |
481 | /     pub fn draw_horizontal_segment(
482 | |         grid: &mut CellBuffer,
483 | |         stdout: &mut StateStdout,
484 | |         xs: std::ops::Range<usize>,
485 | |         y: usize,
486 | |     ) {
    | |_____^ associated function `terminal::screen::Screen::<terminal::screen::Tty>::draw_horizontal_segment` is reachable at visibility `pub`
    |
note: but type `BufWriterWithFd<Box<(dyn WriteAsFd + 'static)>>` is only usable at visibility `pub(crate)`
   --> meli/src/terminal/screen.rs:51:1
    |
 51 | pub (crate) struct BufWriterWithFd<W: WriteAsFd> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: trait `WriteAsFd` is more private than the item `terminal::screen::Screen::<terminal::screen::Tty>::draw_horizontal_segment`
   --> meli/src/terminal/screen.rs:481:5
    |
481 | /     pub fn draw_horizontal_segment(
482 | |         grid: &mut CellBuffer,
483 | |         stdout: &mut StateStdout,
484 | |         xs: std::ops::Range<usize>,
485 | |         y: usize,
486 | |     ) {
    | |_____^ associated function `terminal::screen::Screen::<terminal::screen::Tty>::draw_horizontal_segment` is reachable at visibility `pub`
    |
note: but trait `WriteAsFd` is only usable at visibility `pub(crate)`
   --> meli/src/terminal/screen.rs:46:1
    |
 46 | pub (crate) unsafe trait WriteAsFd: std::io::Write + AsFd {}
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: type `BufWriterWithFd<Box<(dyn WriteAsFd + 'static)>>` is more private than the item `terminal::screen::Screen::<terminal::screen::Tty>::draw_horizontal_segment_no_color`
   --> meli/src/terminal/screen.rs:520:5
    |
520 | /     pub fn draw_horizontal_segment_no_color(
521 | |         grid: &mut CellBuffer,
522 | |         stdout: &mut StateStdout,
523 | |         xs: std::ops::Range<usize>,
524 | |         y: usize,
525 | |     ) {
    | |_____^ associated function `terminal::screen::Screen::<terminal::screen::Tty>::draw_horizontal_segment_no_color` is reachable at visibility `pub`
    |
note: but type `BufWriterWithFd<Box<(dyn WriteAsFd + 'static)>>` is only usable at visibility `pub(crate)`
   --> meli/src/terminal/screen.rs:51:1
    |
 51 | pub (crate) struct BufWriterWithFd<W: WriteAsFd> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: trait `WriteAsFd` is more private than the item `terminal::screen::Screen::<terminal::screen::Tty>::draw_horizontal_segment_no_color`
   --> meli/src/terminal/screen.rs:520:5
    |
520 | /     pub fn draw_horizontal_segment_no_color(
521 | |         grid: &mut CellBuffer,
522 | |         stdout: &mut StateStdout,
523 | |         xs: std::ops::Range<usize>,
524 | |         y: usize,
525 | |     ) {
    | |_____^ associated function `terminal::screen::Screen::<terminal::screen::Tty>::draw_horizontal_segment_no_color` is reachable at visibility `pub`
    |
note: but trait `WriteAsFd` is only usable at visibility `pub(crate)`
   --> meli/src/terminal/screen.rs:46:1
    |
 46 | pub (crate) unsafe trait WriteAsFd: std::io::Write + AsFd {}
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: type `BufWriterWithFd<Box<(dyn WriteAsFd + 'static)>>` is more private than the item `cells::Attr::write`
    --> meli/src/terminal/cells.rs:1354:5
     |
1354 |     pub fn write(self, prev: Self, stdout: &mut crate::StateStdout) -> std::io::Result<()> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `cells::Attr::write` is reachable at visibility `pub`
     |
note: but type `BufWriterWithFd<Box<(dyn WriteAsFd + 'static)>>` is only usable at visibility `pub(crate)`
    --> meli/src/terminal/screen.rs:51:1
     |
  51 | pub (crate) struct BufWriterWithFd<W: WriteAsFd> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: trait `WriteAsFd` is more private than the item `cells::Attr::write`
    --> meli/src/terminal/cells.rs:1354:5
     |
1354 |     pub fn write(self, prev: Self, stdout: &mut crate::StateStdout) -> std::io::Result<()> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `cells::Attr::write` is reachable at visibility `pub`
     |
note: but trait `WriteAsFd` is only usable at visibility `pub(crate)`
    --> meli/src/terminal/screen.rs:46:1
     |
  46 | pub (crate) unsafe trait WriteAsFd: std::io::Write + AsFd {}
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused `std::result::Result` that must be used
  --> meli/src/terminal/screen.rs:83:9
   |
83 |         self.inner.borrow_mut().flush();
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: this `Result` may be an `Err` variant, which should be handled
   = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
help: use `let _ = ...` to ignore the resulting value
   |
83 |         let _ = self.inner.borrow_mut().flush();
   |         +++++++

     Running `CARGO=/usr/bin/cargo CARGO_CRATE_NAME=jmap CAR [too-long-redacted] tive=/usr/lib/x86_64-linux-gnu`
error: cannot find derive macro `Deserialize` in this scope
  --> melib/tests/jmap/main.rs:57:21
   |
57 |     #[derive(Debug, Deserialize)]
   |                     ^^^^^^^^^^^
   |
note: `Deserialize` is imported here, but it is only a trait, without a derive macro
  --> melib/tests/jmap/main.rs:54:17
   |
54 |     use serde::{Deserialize, Serialize};
   |                 ^^^^^^^^^^^
help: consider importing this derive macro
   |
37 +     use serde_derive::Deserialize;
   |

error: cannot find attribute `serde` in this scope
  --> melib/tests/jmap/main.rs:58:7
   |
58 |     #[serde(rename_all = "camelCase")]
   |       ^^^^^
   |
   = note: `serde` is in scope, but it is a crate, not an attribute
help: `serde` is an attribute that can be used by the derive macros `Deserialize` and `Serialize`, you might be missing a `derive` attribute
   |
59 +     #[derive(Deserialize, Serialize)]
60 |     pub struct ClientRequest {
   |

error: cannot find derive macro `Serialize` in this scope
  --> melib/tests/jmap/main.rs:64:28
   |
64 |     #[derive(Clone, Debug, Serialize)]
   |                            ^^^^^^^^^
   |
note: `Serialize` is imported here, but it is only a trait, without a derive macro
  --> melib/tests/jmap/main.rs:54:30
   |
54 |     use serde::{Deserialize, Serialize};
   |                              ^^^^^^^^^
help: consider importing this derive macro
   |
37 +     use serde_derive::Serialize;
   |

error: cannot find attribute `serde` in this scope
  --> melib/tests/jmap/main.rs:65:7
   |
65 |     #[serde(rename_all = "camelCase")]
   |       ^^^^^
   |
   = note: `serde` is in scope, but it is a crate, not an attribute
help: `serde` is an attribute that can be used by the derive macros `Deserialize` and `Serialize`, you might be missing a `derive` attribute
   |
66 +     #[derive(Deserialize, Serialize)]
67 |     pub struct ClientMethodResponse {
   |

error: cannot find attribute `serde` in this scope
  --> melib/tests/jmap/main.rs:67:11
   |
67 |         #[serde(serialize_with = "method_response_ser")]
   |           ^^^^^
   |
   = note: `serde` is an attribute that can be used by the derive macros `Deserialize` and `Serialize`, you might be missing a `derive` attribute
   = note: `serde` is in scope, but it is a crate, not an attribute

error: cannot find attribute `serde` in this scope
  --> melib/tests/jmap/main.rs:69:11
   |
69 |         #[serde(default)]
   |           ^^^^^
   |
   = note: `serde` is an attribute that can be used by the derive macros `Deserialize` and `Serialize`, you might be missing a `derive` attribute
   = note: `serde` is in scope, but it is a crate, not an attribute

error[E0277]: the trait bound `ClientMethodResponse: serde::Serialize` is not satisfied
    --> melib/tests/jmap/main.rs:673:33
     |
 672 |   ...                   serde_json::to_string(
     |                         --------------------- required by a bound introduced by this call
 673 | / ...                       &state
 674 | | ...                           .lock()
 675 | | ...                           .unwrap()
 676 | | ...                           .api(lossy.lines().rev().nth(0).unwrap()),
     | |_______________________________________________________________________^ unsatisfied trait bound
     |
help: the trait `Serialize` is not implemented for `ClientMethodResponse`
    --> melib/tests/jmap/main.rs:66:5
     |
  66 |     pub struct ClientMethodResponse {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: for local types consider adding `#[derive(serde::Serialize)]` to your `ClientMethodResponse` type
     = note: for types from other crates check whether the crate offers a `serde` feature flag
     = help: the following other types implement trait `Serialize`:
               &'a T
               &'a mut T
               ()
               (T,)
               (T0, T1)
               (T0, T1, T2)
               (T0, T1, T2, T3)
               (T0, T1, T2, T3, T4)
             and 369 others
note: required by a bound in `serde_json::to_string`
    --> /<<PKGBUILDDIR>>/debian/cargo_registry/serde_json-1.0.145/src/ser.rs:2247:17
     |
2245 | pub fn to_string<T>(value: &T) -> Result<String>
     |        --------- required by a bound in this function
2246 | where
2247 |     T: ?Sized + Serialize,
     |                 ^^^^^^^^^ required by this bound in `to_string`

error[E0277]: the trait bound `ClientRequest: serde::Deserialize<'de>` is not satisfied
    --> melib/tests/jmap/main.rs:188:42
     |
 188 |             let request: ClientRequest = serde_json::from_str(request).unwrap();
     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
     |
help: the trait `Deserialize<'_>` is not implemented for `ClientRequest`
    --> melib/tests/jmap/main.rs:59:5
     |
  59 |     pub struct ClientRequest {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^
     = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `ClientRequest` type
     = note: for types from other crates check whether the crate offers a `serde` feature flag
     = help: the following other types implement trait `Deserialize<'de>`:
               &'a [u8]
               &'a serde_json::value::RawValue
               &'a std::path::Path
               &'a str
               ()
               (T,)
               (T0, T1)
               (T0, T1, T2)
             and 373 others
note: required by a bound in `serde_json::from_str`
    --> /<<PKGBUILDDIR>>/debian/cargo_registry/serde_json-1.0.145/src/de.rs:2699:8
     |
2697 | pub fn from_str<'a, T>(s: &'a str) -> Result<T>
     |        -------- required by a bound in this function
2698 | where
2699 |     T: de::Deserialize<'a>,
     |        ^^^^^^^^^^^^^^^^^^^ required by this bound in `from_str`

For more information about this error, try `rustc --explain E0277`.
error: could not compile `melib` (test "jmap") due to 8 previous errors

Caused by:
  process didn't exit successfully: `CARGO=/usr/bin/cargo CA [too-long-redacted] _64-linux-gnu` (exit status: 1)
warning: build failed, waiting for other jobs to finish...
warning: `meli` (lib) generated 23 warnings (run `cargo fix --lib -p meli` to apply 2 suggestions)
dh_auto_test: error: /usr/share/dh-rust/bin/cargo test returned exit code 101
make[1]: *** [debian/rules:23: override_dh_auto_test] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:16: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2
--------------------------------------------------------------------------------

#1129191#10
Date:
2026-05-31 12:05:04 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
meli, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1129191@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Jonas Smedegaard <dr@jones.dk> (supplier of updated meli package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Sun, 31 May 2026 13:39:06 +0200
Source: meli
Architecture: source
Version: 0.8.13+dfsg-4
Distribution: unstable
Urgency: medium
Maintainer: Jonas Smedegaard <dr@jones.dk>
Changed-By: Jonas Smedegaard <dr@jones.dk>
Closes: 1129191 1138240
Changes:
 meli (0.8.13+dfsg-4) unstable; urgency=medium
 .
   * extend patch 2002_system-shared_libs;
     closes: bug#1138240, thanks to Matthias Geiger and Santiago Vila
   * add patch cherry-picked upstream
     to fix odd Debian-speciic build failure;
     closes: bug#1129191, thanks to Santiago Vila and Manos Pitsidianakis
   * update copyright info: license patches same as main upstream license
Checksums-Sha1:
 f6afa0c1aab724605a990c056c0909c2e31febd4 4173 meli_0.8.13+dfsg-4.dsc
 8c8e8672b34f2f622cc0eff5fae5667a9258fbf5 19880 meli_0.8.13+dfsg-4.debian.tar.xz
 e7045bf3f7dd1ed5de57b76c25d5b6ae39030831 34849 meli_0.8.13+dfsg-4_amd64.buildinfo
Checksums-Sha256:
 9deaf41c9417e84a23e183568393c16155996cf4740db11550c75a6566b25165 4173 meli_0.8.13+dfsg-4.dsc
 57a8fb53c3d5c3eb5980e777e005a3df6e220c819b467343b02a09609f0b6168 19880 meli_0.8.13+dfsg-4.debian.tar.xz
 df337100739f2dd79656cbce71936ee694e20b32d5618606758f8bb370898f81 34849 meli_0.8.13+dfsg-4_amd64.buildinfo
Files:
 cbbacaab97af3b6fbb95ecd8b51f6ead 4173 mail optional meli_0.8.13+dfsg-4.dsc
 4ec95e1d1a9a437f30b2f402d25e1b20 19880 mail optional meli_0.8.13+dfsg-4.debian.tar.xz
 562a90f8ccfc16148ee3c987465bcd22 34849 mail optional meli_0.8.13+dfsg-4_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----

iQJABAEBCgAqFiEEn+Ppw2aRpp/1PMaELHwxRsGgASEFAmocIO0MHGRyQGpvbmVz
LmRrAAoJECx8MUbBoAEhHEgQAIXA+QApoua2M6b7rpqLuYeghdSIUoCYlWuqFgIE
KUZOmUURtDFTi7Y1tKiUi3L+i9/vwhuysz5U9tMgP5IBIi8BaOO7IQO0GAFnqlRp
GPEbPrU20QjnCdJrDbBu/it4x2CmU+aQWEWgdYS53GKNyaq7zSlpK8RHX7+AiDMR
ZaaelW4WbXMr9sGwknYyVbTisd8h0XR6+WT7D/bHQrmo2LhlV21RjzSHHAkAHyLL
neqf/PxJ83Ec2h4nnswk7BUZQH5Wi3Js3pKwMf0v1EV68xK6ZI/YSt0aMg5QQscu
3LKGgXTxeOVgn5GqDnDtFewTBU3zYTm1N9i0n8UVceg5xiJ8lt+DpP8LMi6dCZQc
TInmOQ0NLQg0d+krSaKqqerX8JChurtsd8WhsNUGbgvGH4Cvs9ectMT28xqiYBxg
P7PuagjwlBpMq7RMGEVT//g2WZM7b6FALLW7R96+IgaSAfYPmSykesaFH/lPIbbw
W/gXJHaCi+chGNJap8Kjn6Xa8BsrDJIJ/KmGqR/762ESfwEPH7p9TfuL/E6A37Ik
OQ52eeTx5CtyqvlIYj3Lo8wtRrbBFEz7/9bY9J3SchSaDYqbR6rkKhsy12Pb4o4W
BFdSXmsidoecC9/e3RvxcAE3nrWLZrlvVwksqt0uMPYkT3JOzJXDdxejPOgj2EEn
I3SI
=757F
-----END PGP SIGNATURE-----