[Libguestfs] Cargo edition problem with Debian 11

alan somers asomers at gmail.com
Mon Jan 16 15:32:03 UTC 2023


On Mon, Jan 16, 2023 at 5:04 AM Martin Kletzander <mkletzan at redhat.com> wrote:
>
> On Fri, Jan 13, 2023 at 08:23:05PM +0000, Richard W.M. Jones wrote:
> >On Fri, Jan 13, 2023 at 01:06:09PM -0700, alan somers wrote:
> >> Which files get overwritten by libvirt-ci ?
> >
> >I think it's everything except ci/manifest.yml, possibly.
> >Eric and Martin (CC'd) know more about this.
> >
> >The libvirt-ci page is:
> >https://libvirt.org/ci.html
> >
> >And the command I use to regenerate everything is:
> >../libvirt-ci/bin/lcitool manifest ci/manifest.yml
> >
>
> I came back, went through the thread and upstream MRs and here are some
> things I came up with:
>
> The predicates crate since version 1.0.4 do not support rust older than
> 1.60.0, so it should be decided whether nbdkit wants to support
> Debian 11, whether nbdkit wants to support the rust plugin on systems
> with older rust versions and so on.  Based on that decision there are
> ways to fix this issue.
>
> Not supporting Debian 11 is easy to achieve, of course, but probably not
> wanted.
>
> Not supporting older rust would just need disabling rust plugin builds
> with old rust in configure.ac and then on those specific systems in CI.
>
> If you want to make this work in all currently tested scenarios, then I
> guess adding:
>
> predicates-core = "=1.0.3"
> predicates-tree = "=1.0.3"
>
> to the [dev-dependencies] in Cargo.toml.  That would however be
> applicable to all systems and necessitate future update(s).

We shouldn't do that, because it would prevent any consumers from
using newer versions of those crates.

>
> If you want to do something in the CI then the easiest place is
> ci/build.sh.  For Cirrus CI I think it could be erased since most of it
> is also checked elsewhere, although not all things have been migrated to
> the other CI solution, like clippy, if I am correct.
>
> But another thing is, why is the minimum rust version in .cirrus.yml set
> to rust 1.46.0?  Increasing that would clearly fix the cirrus version
> issue.

That was a reasonable value at the time we set it.  But that was more
than a year ago.  There's no "right" answer for what the MSRV ought to
be.  The best guideline is that it should be no newer than the version
of the Rust package shipped by the oldest OS we care about.  By that
logic, we can raise it to 1.48.0 but no higher.

>
> During the adoption of libvirt-ci I knew a bit more about it, but it
> also keeps changing faster than me keeping eye on it.  So I'm not sure
> about most recent changes.  Hopefully what I documented in ci/ is either
> still true or was updated together with an lcitool update.  But in
> hindsight I think moving the build instructions into ci/build.sh was the
> right choice.  What lcitool does really well is abstract lot of the
> managing of distros, versions and package naming to make it consistent.
>
> >Rich.
> >
> >--
> >Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
> >Read my programming and virtualization blog: http://rwmj.wordpress.com
> >virt-top is 'top' for virtual machines.  Tiny program with many
> >powerful monitoring features, net stats, disk stats, logging, etc.
> >http://people.redhat.com/~rjones/virt-top
> >



More information about the Libguestfs mailing list