On 24/11/2020 19:04, Sylvestre Ledru wrote:
Hello,
Le 24/11/2020 à 19:06, Calum McConnell a écrit :
> Package: debcargo
> Severity: important
> X-Debbugs-Cc: calumlikesapple...@gmail.com
>
As the freeze approaches, it becomes more important to make sure that every
package desired for the next release is actually
present in Debian. Many of the important rust packages have not been in
testing for several months, and must be fixed and updated soon.
Do you have a list of packages you have in mind?
Cargo is in testing (version 0.43.1)
AIUI the "cargo" crate is packaged twice in Debian.
The "cargo" source package uses embedded rust libraries (to avoid bootstrapping
nightmares) and builds
the cargo tool. It is currently in testing, though it seems to have a FTBFS
issue which is not yet
reported in the BTS.
the "rust-cargo" source package on the other hand builds the librust-cargo-dev
and librust-cargo+openssl-dev
packages and is not in testing.
Debcargo indeed needs some love (i reported bug
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=963916).
As NEW is super fast lately,
Speed is all very well, but is there any resolution to the dispute over feature
packages that has caused
a large number of uploads to be rejected recently after sitting in new for
ages? I understand one of the ftpmasters
has proposed an archive split, but I don't think it's actually been implemented
yet and I would be surprised if it
was implemented in time for bullseye.
peter, do you think you could have a new look?
I've been trying to help out a bit with getting rust in testing back into a
healthy state
and trying to keep it that way, but I am NOT a rust expert and I am NOT
comfortable taking responsibility for
major updates/transitions or packaging rust crates that are new to Debian.
Anyway with that disclaimer out of the way lets take a look at the issues with
getting debcargo back into testing.
The first issue is that the autopkgtests in rust-cargo and rust-vte have never
passed. Should they simply be marked
as broken?
The second issue is rust-core-foundation is currently
uninstallable/unbuildable, due to a recent update of
rust-core-foundatoin-sys which in turn means rust-cargo and rust-debcargo are
unbuildable. It looks like the new
version was marked as released in the vcs but not actually uploaded to the
archive.
The third issue is what to do about rust-cargo itself. The version currently in
Debian is quite some way behind
upstream and depends on the old version of rust-core-foundation. It looks like
ximin was in the process of updating it
to 0.47.0 but stopped. I looked at building 0.47 (and before that 0.49) but
quickly ran intodependency issues.
Tracking through I see.
* rust-cargo 0.47.0
* rust-git2 0.13.12
* rust-git2-sys 0.12.14
* libgit2-dev -- currently in experimental
* rust-im-rc 15.0.0
* The featureset packages that I disabled to avoid new and because one of
them
had unsatisfiable dependencies have been re-enabled in git.
* Neither refpool or metrohash seems to have been packaged, either in
debian or in debcargo-conf
the latter seems to be a hard dependency.
* semver 0.11.0
* Autopkgtests fail for most featuresets, the version currently in the
archive doesn't have any
autopkgtests though.
Plus outside of the direct dependency lines, several of those packages have
other reverse dependencies.
In summary this is a far bigger set of changes than I am personally prepared to
take responsibility
for in packages I have very little knowledge of.
So I looked at the less ambitious option of keeping rust-cargo at the version
currently in sid
and figuring out the minimum changes relative to current sid to get things
sane. I got as far as
* Update rust-core-foundation to 0.9.1
* Keep rust-vte at 0.3.3, mark the autpkgtest as broken and relax the
dependency on rust-utf8parse.
* Keep rust-cargo at 0.43.1, mark the autpkgtest as broken and relax the
dependency on rust-core-foundation
* Relax dependency on rust-semver-parser in rust-debcargo.
Unfortunately it seems that there have been API changes in semver-parser that
actually effect debcargo
Running `LD_LIBRARY_PATH='/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/debug/deps:/usr/lib'
CARGO_PKG_VERSION_PATCH=3 CARGO_PKG_VERSION_MAJOR=2 CARGO_PKG_VERSION=2.4.3
CARGO_PKG_NAME=debcargo CARGO=/usr/bin/cargo CARGO_PKG_DESCRIPTION='Create a Debian package from
a Cargo crate.' CARGO_PKG_HOMEPAGE=
CARGO_PKG_REPOSITORY='https://salsa.debian.org/rust-team/debcargo' CARGO_PKG_VERSION_PRE=
CARGO_MANIFEST_DIR=/tmp/autopkgtest.Q6QoAY/build.Kd0/src CARGO_PKG_AUTHORS='Josh Triplett
<j...@joshtriplett.org>:Ximin Luo <infini...@debian.org>:Vasudev Kamath
<vasu...@copyninja.info>' CARGO_PKG_VERSION_MINOR=4 rustc --crate-name debcargo
--edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib
--emit=dep-info,metadata,link -C debuginfo=2 -C metadata=c8362fd769a53753 -C
extra-filename=-c8362fd769a53753 --out-dir
/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps --target
x86_64-unknown-linux-gnu -C
incremental=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/incremental
-L dependency=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps
-L dependency=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/debug/deps --extern
ansi_term=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps/libansi_term-34e552010f828746.rmeta
--extern
anyhow=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps/libanyhow-c7e349a4163d139d.rmeta
--extern
cargo=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps/libcargo-e40a62f860023931.rmeta
--extern
chrono=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps/libchrono-654efa7ffc2482b4.rmeta
--extern
clap=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps/libclap-95deb79aeecc6040.rmeta
--extern
filetime=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps/libfiletime-dafc6a94d28e153e.rmeta
--extern
flate2=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps/libflate2-c81f64771f47481b.rmeta
--extern
git2=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps/libgit2-33f617a53d663e14.rmeta
--extern
glob=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps/libglob-dfd15eef4c26fca2.rmeta
--extern
itertools=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps/libitertools-bc3ee1b5879334bf.rmeta
--extern
regex=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps/libregex-275d6b997fc8f3bc.rmeta
--extern
semver=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps/libsemver-8ace63291457ddd1.rmeta
--extern
semver_parser=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps/libsemver_parser-99c41a2765c77dec.rmeta
--extern
serde=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps/libserde-a54cb3b7a5382044.rmeta
--extern
serde_derive=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/debug/deps/libserde_derive-7a8c3179645a5709.so
--extern
tar=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps/libtar-0d397838ec0fafc9.rmeta
--extern
tempfile=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps/libtempfile-45a9428073a120eb.rmeta
--extern
textwrap=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps/libtextwrap-36c4fddb155e8870.rmeta
--extern
toml=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps/libtoml-feb862549a36ab80.rmeta
--extern
walkdir=/tmp/autopkgtest.Q6QoAY/build.Kd0/src/target/x86_64-unknown-linux-gnu/debug/deps/libwalkdir-2858051cb98c19c8.rmeta
-C debuginfo=2 --cap-lints warn -C linker=x86_64-linux-gnu-gcc -C link-arg=-Wl,-z,relro
--remap-path-prefix
/tmp/autopkgtest.Q6QoAY/build.Kd0/src=/usr/share/cargo/registry/debcargo-2.4.3 -L
native=/usr/lib/x86_64-linux-gnu -L native=/usr/lib/x86_64-linux-gnu -L
native=/usr/lib/x86_64-linux-gnu -L native=/usr/lib/x86_64-linux-gnu`
error[E0432]: unresolved import `semver_parser`
--> src/debian/dependency.rs:3:5
|
3 | use semver_parser;
| ^^^^^^^^^^^^^
error[E0433]: failed to resolve: use of undeclared type or module
`WildcardVersion`
--> src/debian/dependency.rs:300:20
|
300 | (&Wildcard(WildcardVersion::Minor), _) => {
| ^^^^^^^^^^^^^^^ use of undeclared type or module
`WildcardVersion`
error[E0433]: failed to resolve: use of undeclared type or module
`WildcardVersion`
--> src/debian/dependency.rs:304:20
|
304 | (&Wildcard(WildcardVersion::Patch), _) => {
| ^^^^^^^^^^^^^^^ use of undeclared type or module
`WildcardVersion`
error[E0412]: cannot find type `Predicate` in this scope
--> src/debian/dependency.rs:22:16
|
22 | fn new(p: &Predicate) -> Result<Self> {
| ^^^^^^^^^ not found in this scope
error[E0412]: cannot find type `Predicate` in `semver_parser::range`
--> src/debian/dependency.rs:195:34
|
195 | p: &'a semver_parser::range::Predicate,
| ^^^^^^^^^ not found in
`semver_parser::range`
error[E0425]: cannot find value `Gt` in this scope
--> src/debian/dependency.rs:229:17
|
229 | Ok(&Gt)
| ^^ not found in this scope
|
help: consider importing one of these items
|
1 | use crate::debian::dependency::semver_parser::Op::Gt;
|
1 | use semver_parser::Op::Gt;
|
1 | use semver_parser::lexer::Token::Gt;
|
error[E0412]: cannot find type `Predicate` in `semver_parser::range`
--> src/debian/dependency.rs:245:31
|
245 | p: &semver_parser::range::Predicate,
| ^^^^^^^^^ not found in
`semver_parser::range`
error[E0531]: cannot find tuple struct or tuple variant `Wildcard` in this scope
--> src/debian/dependency.rs:300:11
|
300 | (&Wildcard(WildcardVersion::Minor), _) => {
| ^^^^^^^^ not found in this scope
error[E0531]: cannot find tuple struct or tuple variant `Wildcard` in this scope
--> src/debian/dependency.rs:304:11
|
304 | (&Wildcard(WildcardVersion::Patch), _) => {
| ^^^^^^^^ not found in this scope
error[E0425]: cannot find function `parse` in `semver_parser::range`
--> src/debian/dependency.rs:327:37
|
327 | let req =
semver_parser::range::parse(&dep.version_req().to_string()).unwrap();
| ^^^^^ not found in
`semver_parser::range`
|
help: consider importing one of these items
|
1 | use cargo::util::toml::parse;
|
1 | use chrono::format::parse;
|
1 | use crate::debian::chrono::format::parse;
|
1 | use crate::debian::dependency::semver_parser::version::parse;
|
and 1 other candidate
error[E0603]: module `range` is private
--> src/debian/dependency.rs:4:20
|
4 | use semver_parser::range::Op::*;
| ^^^^^ private module
|
note: the module `range` is defined here
and a bunch more similar errors, I really have no idea where to start on fixing
this.