Quoting Reinhard Tartler (2025-03-14 13:28:53)
> Reinhard Tartler <siret...@debian.org> writes:
> > Package: librust-tonic-dev
> > Version: 0.10.2+dfsg-12
> > Severity: serious
> > Justification: Breaks compilation of depending packages
> >
> > [...]
> > The following packages have unmet dependencies:
> >  librust-tonic-dev : Depends: librust-axum-0.6-dev but it is not installable
> > E: Unable to correct problems, you have held broken packages.
> > apt-get failed.
> > E: Package installation failed
> 
> 
> I've tried the naive approach of "just" bumping the dependencies with
> the attached patch. However, this runs into a compilation issue:
> 
> 
> ' CARGO_PKG_HOMEPAGE='https://github.com/hyperium/tonic' 
> CARGO_PKG_LICENSE=MIT CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=tonic 
> CARGO_PKG_README=../README.md 
> CARGO_PKG_REPOSITORY='https://github.com/hyperium/tonic' 
> CARGO_PKG_RUST_VERSION='' CARGO_PKG_VERSION=0.10.2 CARGO_PKG_VERSION_MAJOR=0 
> CARGO_PKG_VERSION_MINOR=10 CARGO_PKG_VERSION_PATCH=2 CARGO_PKG_VERSION_PRE='' 
> CARGO_PRIMARY_PACKAGE=1 
> LD_LIBRARY_PATH=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/release/deps
>  rustc --crate-name tonic --edition=2021 tonic/src/lib.rs --error-format=json 
> --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib 
> --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no --cfg 
> 'feature="channel"' --cfg 'feature="codegen"' --cfg 'feature="default"' --cfg 
> 'feature="gzip"' --cfg 'feature="prost"' --cfg 'feature="tls"' --cfg 
> 'feature="transport"' --check-cfg 'cfg(docsrs,test)' --check-cfg 
> 'cfg(feature, values("channel", "codegen", "default", "gzip", "prost", "tls", 
> "tls-root
>  s", "tls-roots-common", "transport"))' -C metadata=485a23f653a8e74a -C 
> extra-filename=-decac77e6c54a626 --out-dir 
> /build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps
>  --target x86_64-unknown-linux-gnu -C strip=debuginfo -L 
> dependency=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps
>  -L 
> dependency=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/release/deps
>  --extern 
> async_stream=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/libasync_stream-fb31bd691a4d0da2.rmeta
>  --extern 
> async_trait=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/release/deps/libasync_trait-753d4fdfba6a47f0.so
>  --extern 
> axum=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/libaxum-8227ca5c25ea4d84.rmeta
>  --extern 
> base64=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/libbase64-18f2b7c2b4af2
>  989.rmeta --extern 
> bytes=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/libbytes-049891ee00809e23.rmeta
>  --extern 
> flate2=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/libflate2-d79784b4a9ba394f.rmeta
>  --extern 
> h2=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/libh2-8499421b229fc163.rmeta
>  --extern 
> http=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/libhttp-51d39075ca9bb9eb.rmeta
>  --extern 
> http_body=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/libhttp_body-56d10af7fd24699c.rmeta
>  --extern 
> hyper=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/libhyper-e38e798c35535e29.rmeta
>  --extern 
> hyper_timeout=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/libhyper_timeout-a324e9fd6d7f
>  9933.rmeta --extern 
> percent_encoding=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/libpercent_encoding-14360a2752397cf5.rmeta
>  --extern 
> pin_project=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/libpin_project-66922be3f1cda763.rmeta
>  --extern 
> prost=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/libprost-bb55bf7e76c86d88.rmeta
>  --extern 
> rustls=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/librustls-0b8f1af495a10f72.rmeta
>  --extern 
> rustls_pemfile=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/librustls_pemfile-0617cb1eb193c177.rmeta
>  --extern 
> tokio=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/libtokio-012cdf6cfc47a665.rmeta
>  --extern 
> tokio_rustls=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-
>  linux-gnu/release/deps/libtokio_rustls-b7a50ca23e565701.rmeta --extern 
> tokio_stream=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/libtokio_stream-1f9533b6b8b17828.rmeta
>  --extern 
> tower=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/libtower-e87d80db1912db72.rmeta
>  --extern 
> tower_layer=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/libtower_layer-755127e7643f220a.rmeta
>  --extern 
> tower_service=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/libtower_service-58b220a2076bd222.rmeta
>  --extern 
> tracing=/build/reproducible-path/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/deps/libtracing-6d424f805c115e7d.rmeta
>  --remap-path-prefix 
> tonic-build_0.10.2=/usr/share/cargo/registry/tonic-build-0.10.2 
> --remap-path-prefix tonic_0.10.2=/usr/share/cargo/registry/tonic-0.10.2 -L 
> native=/build/reproducible-pat
>  
> h/rust-tonic-0.10.2+dfsg/target/x86_64-unknown-linux-gnu/release/build/ring-a6a76e47df4ffd6c/out`
> error[E0432]: unresolved import `axum::body::BoxBody`
>    --> tonic/src/transport/mod.rs:109:16
>     |
> 109 | pub use axum::{body::BoxBody as AxumBoxBody, Router as AxumRouter};
>     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `BoxBody` in `body`
>     |
>     = help: consider importing one of these items instead:
>             crate::body::BoxBody
>             http_body::combinators::BoxBody
> 
> error[E0425]: cannot find value `boxed` in module `axum::body`
>   --> tonic/src/transport/service/router.rs:79:62
>    |
> 79 |         let svc = svc.map_response(|res| res.map(axum::body::boxed));
>    |                                                              ^^^^^ not 
> found in `axum::body`
>    |
> 
> 
> So it seems that tonic 0.10.2 is not compatible with axum 0.7 at all. That's 
> most unfornate.
> 
> I've also spent more time that I'd like to admit in attempting to
> upgrade the package ot tonic 0.12 (is the first upstream version to use
> axum 0.7), but this runs into a number of other version incompatibilities.
> 
> Jonas, this is threatening removal of large portions of the container
> stack, such as podman. The reason for that is that podman has rewritten
> its networking stack in rust with netavark/aardvark-dns, which require tonic.
> 
> What's the best way to proceed here? Trying to backport
> https://github.com/hyperium/tonic/commit/9c1f2f9402d97cfa4c9d9065b5af2fb99d2ef521
> to tonic 0.10 or attempting to package 0.12?

I don't know what is best until I have solved the puzzle.

What I am trying now is upgrade tonic to v0.12.

 - Jonas

-- 
 * Jonas Smedegaard - idealist & Internet-arkitekt
 * Tlf.: +45 40843136  Website: http://dr.jones.dk/
 * Sponsorship: https://ko-fi.com/drjones

 [x] quote me freely  [ ] ask before reusing  [ ] keep private

Attachment: signature.asc
Description: signature

Reply via email to