Re: Rust Stack Spring Cleaning - 2024 Edition
by Fabio Valentini
On Mon, Apr 22, 2024 at 5:13 PM Peter Robinson <pbrobinson(a)gmail.com> wrote:
>
> I am aware of a few of the above I'm listed against that my deps no
> longer requre (eg passwd) but I hadn't got around to working out what
> else depended on them to retire without possibly breaking something
> else, overall happy for them to be retired as part of the mass
> retirement if there's no other deps.
Whoops, sorry about that - I constructed the "packages per
maintainer" list manually, apparently I was too tired to check that
everybody included in the table is also included in the per-maintainer
lists :(
> There's also some that are deps on things still in progress like
> rust-rustls-pki-types (rhbz 2272351 has dep details), not sure how to
> tag those so I don't have to do more work to repackage them.
Thanks for checking!
FYI, rustls-pki-types is no longer a leaf package since I updated
rustls / reqwest to newer versions.
Fabio
1 week, 1 day
Rust Stack Spring Cleaning - 2024 Edition
by Fabio Valentini
Hello Rust packagers,
I'm continuously working on reducing unnecessary accumulation of cruft
in the Rust package stack in Fedora, and I have been keeping track of
unused library packages for almost three years now.
Some of these packages have been unused leaves for over two years!
I will again start being more proactive with orphaning / retiring
affected packages where I am the primary maintainer, starting
incrementally from the packages which have been unused for the longest
time - unless I know of a reason to keep a specific package, for
example:
- something that depends on the package is still going through package review
- the package was updated to a "breaking" release and a compat package
was created, and now the "main" package is not depended on while the
compat package is in use
If you know of a reason why a leaf package where I am the primary
maintainer should not be retired, please let me know, and I will
exclude it from the list.
For packages where I am *not* the primary maintainer, I need help:
- Is this package still required for something that I don't know
about, or can it be dropped?
- Was it added as a dependency for something else, but packaging this
"something else" was abandoned?
- Was it needed at the time, but is the library no longer needed now?
Keeping unused packages around only makes maintenance of the Rust
stack more difficult due to the more "dense" dependency graph that
needs to be considered when pushing "breaking" changes. Over the past
year or so, the number of Rust packages in Fedora has grown by almost
50% from about 2200 to over 3000, which is making this issue worse.
Full report included below (view in monospace font for correct formatting).
Thank you for your help,
Fabio
+----------------------------------+------------+-----------+------------------+
| Package | Leaf since | Leaf days | Maintainer |
+----------------------------------+------------+-----------+------------------+
| rust-curve25519-dalek | 2021-11-18 | 875 | dcavalca |
| rust-gstreamer-editing-services | 2021-11-18 | 875 | atim |
| rust-gstreamer-player | 2021-11-18 | 875 | atim |
| rust-rand_jitter | 2021-11-18 | 875 | jistone |
| rust-rand_os | 2021-11-18 | 875 | jistone |
| rust-tower-test | 2021-11-18 | 875 | decathorpe |
| rust-tower-util | 2021-11-18 | 875 | decathorpe |
| rust-partial-io | 2022-02-06 | 795 | decathorpe |
| rust-minimad | 2022-02-18 | 783 | dcavalca |
| rust-libhandy | 2022-02-20 | 781 | decathorpe |
| rust-tiger | 2022-02-20 | 781 | decathorpe |
| rust-rand_hc | 2022-02-21 | 780 | jistone |
| rust-benfred-read-process-memory | 2022-02-27 | 774 | dcavalca |
| rust-custom_error | 2022-02-27 | 774 | dcavalca |
| rust-madvr_parse | 2022-02-27 | 774 | dcavalca |
| rust-os-release | 2022-02-27 | 774 | dcavalca |
| rust-strict | 2022-02-27 | 774 | dcavalca |
| rust-subprocess | 2022-02-27 | 774 | dcavalca |
| rust-libxml | 2022-04-07 | 735 | decathorpe |
| rust-snake_case | 2022-04-25 | 717 | decathorpe |
| rust-openat-ext | 2022-04-28 | 714 | walters |
| rust-log-mdc | 2022-05-05 | 707 | decathorpe |
| rust-cargo-manifest | 2022-05-06 | 706 | laiot |
| rust-digest_auth | 2022-05-06 | 706 | laiot |
| rust-binascii | 2022-05-10 | 702 | saluki |
| rust-inlinable_string | 2022-05-10 | 702 | decathorpe |
| rust-ubyte | 2022-05-10 | 702 | decathorpe |
| rust-email-encoding | 2022-05-17 | 695 | saluki |
| rust-tabular | 2022-05-23 | 689 | jbtrystram |
| rust-async-mutex | 2022-06-01 | 680 | decathorpe |
| rust-awc | 2022-06-01 | 680 | decathorpe |
| rust-infer | 2022-06-15 | 666 | decathorpe |
| rust-escape_string | 2022-07-08 | 643 | dcavalca |
| rust-actix | 2022-07-18 | 633 | decathorpe |
| rust-envsubst | 2022-07-18 | 633 | jlebon |
| rust-esphome | 2022-07-18 | 633 | dcavalca |
| rust-fail | 2022-07-18 | 633 | jlebon |
| rust-fn-error-context | 2022-07-18 | 633 | decathorpe |
| rust-gmp-mpfr-sys | 2022-07-18 | 633 | dcavalca |
| rust-intervaltree | 2022-07-18 | 633 | decathorpe |
| rust-local-encoding | 2022-07-18 | 633 | dcavalca |
| rust-local_ipaddress | 2022-07-18 | 633 | dcavalca |
| rust-prometheus | 2022-07-18 | 633 | jlebon |
| rust-tokio-compat | 2022-07-18 | 633 | dcavalca |
| rust-typed-builder | 2022-07-18 | 633 | dcavalca |
| rust-tzfile | 2022-07-18 | 633 | decathorpe |
| rust-cpc | 2022-08-02 | 618 | dcavalca |
| rust-memcached-rs | 2022-08-02 | 618 | dcavalca |
| rust-cap | 2022-08-11 | 609 | dcavalca |
| rust-region | 2022-08-11 | 609 | decathorpe |
| rust-temp_testdir | 2022-08-11 | 609 | dcavalca |
| rust-bit_field | 2022-08-15 | 605 | orion |
| rust-base-x | 2022-08-18 | 602 | dcavalca |
| rust-hyperlocal | 2022-08-18 | 602 | dcavalca |
| rust-inflate | 2022-08-18 | 602 | orion |
| rust-pathsearch | 2022-08-18 | 602 | dcavalca |
| rust-atomic-traits | 2022-09-02 | 587 | salimma |
| rust-lebe | 2022-09-02 | 587 | orion |
| rust-simple_asn1 | 2022-09-02 | 587 | pbrobinson |
| rust-deflate | 2022-09-05 | 584 | decathorpe |
| rust-gag | 2022-09-14 | 575 | decathorpe |
| rust-notify-rust | 2022-09-14 | 575 | decathorpe |
| rust-process_control | 2022-09-14 | 575 | atim |
| rust-firestorm | 2022-10-06 | 553 | decathorpe |
| rust-libsodium-sys | 2022-10-14 | 545 | sdgathman |
| rust-flume | 2022-10-21 | 538 | orion |
| rust-netstat2 | 2022-10-27 | 532 | dcavalca |
| rust-termwiz | 2022-11-03 | 525 | dcavalca |
| rust-criterion-plot | 2022-12-06 | 492 | kalev |
| rust-oorandom | 2022-12-06 | 492 | kalev |
| rust-plotters | 2022-12-06 | 492 | kalev |
| rust-tinytemplate | 2022-12-06 | 492 | kalev |
| rust-pep440 | 2022-12-14 | 484 | lbalhar |
| rust-cache-padded | 2022-12-28 | 470 | decathorpe |
| rust-treeline | 2022-12-28 | 470 | atim |
| rust-fallible_collections | 2023-02-04 | 432 | blinxen |
| rust-exitfailure | 2023-02-05 | 431 | dcavalca |
| rust-random | 2023-02-05 | 431 | dcavalca |
| rust-serde_bser | 2023-02-05 | 431 | dcavalca |
| rust-os_type | 2023-02-23 | 413 | decathorpe |
| rust-signal | 2023-02-23 | 413 | salimma |
| rust-array-init | 2023-03-16 | 392 | atim |
| rust-ct-logs | 2023-03-19 | 389 | decathorpe |
| rust-anes | 2023-03-28 | 380 | decathorpe |
| rust-sptr | 2023-03-28 | 380 | salimma |
| rust-test-generator | 2023-03-31 | 377 | kalev |
| rust-combine | 2023-04-07 | 370 | dcavalca |
| rust-concolor | 2023-04-19 | 358 | dcavalca |
| rust-micro-timer | 2023-04-19 | 358 | alebastr |
| rust-twoway | 2023-04-25 | 352 | atim |
| rust-noisy_float | 2023-05-06 | 341 | blinxen |
| rust-osmesa-sys | 2023-05-10 | 337 | returntrip |
| rust-wayland-egl | 2023-05-10 | 337 | returntrip |
| rust-xcb | 2023-05-10 | 337 | salimma |
| rust-bitreader | 2023-05-23 | 324 | decathorpe |
| rust-timebomb | 2023-05-23 | 324 | decathorpe |
| rust-crypto-hash | 2023-06-07 | 309 | decathorpe |
| rust-pico-args | 2023-06-07 | 309 | jistone |
| rust-ptyprocess | 2023-06-07 | 309 | blinxen |
| rust-trust-dns-server | 2023-06-07 | 309 | decathorpe |
| rust-zmq | 2023-06-07 | 309 | ueno |
| rust-powierza-coefficient | 2023-06-16 | 300 | salimma |
| rust-i3ipc | 2023-07-07 | 279 | atim |
| rust-libpulse-binding | 2023-07-07 | 279 | atim |
| rust-maildir | 2023-07-07 | 279 | atim |
| rust-symlink | 2023-07-07 | 279 | blinxen |
| rust-webpki | 2023-07-07 | 279 | decathorpe |
| rust-svgtypes | 2023-07-19 | 267 | decathorpe |
| rust-rusttype | 2023-07-26 | 260 | dcavalca |
| rust-domain | 2023-08-02 | 253 | pemensik |
| rust-axum | 2023-08-06 | 249 | decathorpe |
| rust-askama_shared | 2023-08-12 | 243 | atim |
| rust-duct_sh | 2023-08-22 | 233 | jamacku |
| rust-gtk | 2023-09-07 | 217 | decathorpe |
| rust-nparse | 2023-10-25 | 169 | atim |
| rust-logos | 2023-11-12 | 151 | saluki |
| rust-colorgrad | 2023-11-19 | 144 | leo |
| rust-enum-display-derive | 2023-11-19 | 144 | leo |
| rust-suggest | 2023-11-25 | 138 | saluki |
| rust-euclid | 2023-11-28 | 135 | leo |
| rust-ghost | 2023-12-02 | 131 | decathorpe |
| rust-epoll | 2023-12-13 | 120 | slp |
| rust-smallstr | 2023-12-17 | 116 | dcavalca |
| rust-trust-dns-client | 2024-01-02 | 100 | decathorpe |
| rust-wayland-commons | 2024-01-02 | 100 | salimma |
| rust-nom-supreme | 2024-01-04 | 98 | salimma |
| rust-vec1 | 2024-01-04 | 98 | salimma |
| rust-async-process | 2024-01-07 | 95 | decathorpe |
| rust-notify-debouncer-mini | 2024-01-07 | 95 | decathorpe |
| rust-safetensors | 2024-01-07 | 95 | thunderbirdtr |
| rust-unidecode | 2024-01-15 | 87 | decathorpe |
| rust-rlimit | 2024-01-17 | 85 | salimma |
| rust-base32 | 2024-01-20 | 82 | salimma |
| rust-fend-core | 2024-01-20 | 82 | albertlarsan68 |
| rust-poly1305 | 2024-01-20 | 82 | mikelo2 |
| rust-cedarwood | 2024-01-23 | 79 | albertlarsan68 |
| rust-topological-sort | 2024-01-23 | 79 | albertlarsan68 |
| rust-parse-size | 2024-01-27 | 75 | blinxen |
| rust-serde_plain | 2024-01-27 | 75 | blinxen |
| rust-cached_proc_macro | 2024-01-30 | 72 | dmellado |
| rust-cached_proc_macro_types | 2024-01-30 | 72 | dmellado |
| rust-aom-sys | 2024-02-04 | 67 | decathorpe |
| rust-dav1d-sys | 2024-02-04 | 67 | decathorpe |
| rust-sanitize-filename | 2024-02-04 | 67 | blinxen |
| rust-readwrite | 2024-02-05 | 66 | jlebon |
| rust-passwd | 2024-02-15 | 56 | pbrobinson |
| rust-app_dirs | 2024-02-18 | 53 | atim |
| rust-names | 2024-02-20 | 51 | dcavalca |
| rust-jwt | 2024-02-29 | 42 | dmellado |
| rust-unscanny | 2024-02-29 | 42 | decathorpe |
| rust-qstring | 2024-03-02 | 40 | ctron |
| rust-backoff | 2024-03-07 | 35 | alciregi |
| rust-olpc-cjson | 2024-03-07 | 35 | dmellado |
| rust-rsa | 2024-03-12 | 30 | pbrobinson |
| rust-version | 2024-03-12 | 30 | pbrobinson |
| rust-escape8259 | 2024-03-18 | 24 | principis |
| rust-strum | 2024-03-18 | 24 | decathorpe |
| rust-derive_builder | 2024-03-22 | 20 | decathorpe |
| rust-docker_credential | 2024-03-22 | 20 | dmellado |
| rust-tracing-futures | 2024-03-22 | 20 | jistone |
| rust-stratisd_proc_macros | 2024-03-30 | 12 | jbaublitz |
| rust-jxl-oxide | 2024-04-03 | 8 | kalev |
| rust-lopdf | 2024-04-03 | 8 | kalev |
| rust-rustls-pki-types | 2024-04-03 | 8 | pbrobinson |
| rust-zbus_xml | 2024-04-03 | 8 | decathorpe |
| rust-circular-buffer | 2024-04-06 | 5 | music |
| rust-btoi | 2024-04-07 | 4 | blinxen |
| rust-rust-embed | 2024-04-08 | 3 | decathorpe |
| rust-bytes-cast | 2024-04-10 | 1 | alebastr |
| rust-format-bytes | 2024-04-10 | 1 | alebastr |
| rust-logging_timer | 2024-04-10 | 1 | kiilerix |
| rust-vcsgraph | 2024-04-10 | 1 | alebastr |
| rust-whoami | 2024-04-10 | 1 | kiilerix |
| rust-envy | 2024-04-11 | 0 | ctron |
| rust-http-body | 2024-04-11 | 0 | decathorpe |
+----------------------------------+------------+-----------+------------------+
Packages by maintainer:
- albertlarsan68 (3): rust-cedarwood, rust-fend-core, rust-topological-sort
- alciregi (1): rust-backoff
- alebastr (4): rust-bytes-cast, rust-format-bytes, rust-micro-timer,
rust-vcsgraph
- atim (12): rust-app_dirs, rust-array-init, rust-askama_shared,
rust-gstreamer-editing-services, rust-gstreamer-player, rust-i3ipc,
rust-libpulse-binding, rust-maildir, rust-nparse,
rust-process_control, rust-treeline, rust-twoway
- blinxen (8): rust-btoi, rust-fallible_collections, rust-noisy_float,
rust-parse-size, rust-ptyprocess, rust-sanitize-filename,
rust-serde_plain, rust-symlink
- ctron (2): rust-envy, rust-qstring
- dcavalca (33): rust-base-x, rust-benfred-read-process-memory,
rust-cap, rust-combine, rust-concolor, rust-cpc,
rust-curve25519-dalek, rust-custom_error, rust-escape_string,
rust-esphome, rust-exitfailure, rust-gmp-mpfr-sys, rust-hyperlocal,
rust-local-encoding, rust-local_ipaddress, rust-madvr_parse,
rust-memcached-rs, rust-minimad, rust-names, rust-netstat2,
rust-os-release, rust-pathsearch, rust-random, rust-rusttype,
rust-serde_bser, rust-smallstr, rust-rust-strict, rust-subprocess,
rust-temp_testdir, rust-termwiz, rust-tokio-compat, rust-typed-builder
- decathorpe (47): rust-actix, rust-anes, rust-aom-sys,
rust-async-mutex, rust-async-process, rust-awc, rust-axum,
rust-bitreader, rust-cache-padded, rust-crypto-hash, rust-ct-logs,
rust-dav1d-sys, rust-deflate, rust-derive_builder, rust-firestorm,
rust-fn-error-context, rust-gag, rust-ghost, rust-gtk, rust-http-body,
rust-infer, rust-inlinable_string, rust-intervaltree, rust-libhandy,
rust-libxml, rust-log-mdc, rust-notify-debouncer-mini,
rust-notify-rust, rust-os_type, rust-partial-io, rust-region,
rust-rust-embed, rust-snake_case, rust-strum, rust-svgtypes,
rust-tiger, rust-timebomb, rust-tower-test, rust-tower-util,
rust-trust-dns-client, rust-trust-dns-server, rust-tzfile, rust-ubyte,
rust-unidecode, rust-unscanny, rust-webpki, rust-zbus_xml
- dmellado (5): rust-cached_proc_macro, rust-cached_proc_macro_types,
rust-docker_credential, rust-jwt, rust-olpc-cjson
- jamacku (1): rust-duct_sh
- jbaublitz (1): rust-stratisd_proc_macros
- jbtrystram (1): rust-tabular
- jistone (5): rust-pico-args, rust-rand_hc, rust-rand_jitter,
rust-rand_os, rust-tracing-futures
- jlebon (4): rust-envsubst, rust-fail, rust-prometheus, rust-readwrite
- kalev (7): rust-criterion-plot, rust-jxl-oxide, rust-lopdf,
rust-oorandom, rust-plotters, rust-test-generator, rust-tinytemplate
- kiilerix (2): rust-logging_timer, rust-whoami
- laiot (2): rust-cargo-manifest, rust-digest_auth
- lbalhar (1): rust-pep440
- leo (3): rust-colorgrad, rust-enum-display-derive, rust-euclid
- mikelo2 (1): rust-poly1305
- music (1): rust-circular-buffer
- orion (4): rust-bit_field, rust-flume, rust-inflate, rust-lebe
- pemensik (1): rust-domain
- principis (1): rust-escape8259
- returntrip (2): rust-osmesa-sys, rust-wayland-egl
- salimma (10): rust-atomic-traits, rust-base32, rust-nom-supreme,
rust-powierza-coefficient, rust-rlimit, rust-signal, rust-sptr,
rust-vec1, rust-wayland-commons, rust-xcb
- saluki (4): rust-binascii, rust-email-encoding, rust-logos, rust-suggest
- sdgathman (1): rust-libsodium-sys
- slp (1): rust-epoll
- thunderbirdtr (1): rust-safetensors
- ueno (1): rust-zmq
- walters (1): rust-openat-ext
2 weeks, 4 days
Re: Rust Stack Spring Cleaning - 2024 Edition
by Fabio Valentini
On Thu, Apr 11, 2024 at 7:45 PM Ben Beasley <code(a)musicinmybrain.net> wrote:
>
> The rust-circular-buffer crate was packaged as a dependency for bpftop,
> https://github.com/Netflix/bpftop.
>
> I won’t necessarily be packaging bpftop myself, but I know several
> parties are interested in doing so, and I expect it will happen soon one
> way or the other.
Thanks! I forgot about that, it's good to have this in writing.
> A few existing dependencies still need to be updated first:
>
> Problem 1: nothing provides requested (crate(anyhow/default) >= 1.0.81
> with crate(anyhow/default) < 2.0.0~)
> Problem 2: nothing provides requested (crate(libbpf-rs/default) >=
> 0.23.0 with crate(libbpf-rs/default) < 0.24.0~)
> Problem 3: nothing provides requested (crate(libbpf-sys/default) >=
> 1.4.0 with crate(libbpf-sys/default) < 2.0.0~)
> Problem 4: nothing provides requested (crate(ratatui) >= 0.26.1 with
> crate(ratatui) < 0.27.0~)
> Problem 5: nothing provides requested (crate(ratatui/crossterm) >=
> 0.26.1 with crate(ratatui/crossterm) < 0.27.0~)
> Problem 6: nothing provides requested (crate(tui-input/default) >=
> 0.8.0 with crate(tui-input/default) < 0.9.0~)
I can update anyhow tomorrow, that should be a simple update.
Michel said he'll be looking at libbpf-rs / libbpf-sys soon.
ratatui can be updated too, though it might require a compat package
for the current version
tui-input seems to be a new dependency.
Thank you for checking,
Fabio
2 weeks, 4 days
Re: Rust Stack Spring Cleaning - 2024 Edition
by Michel Lind
On Thu, Apr 11, 2024 at 01:45:26PM -0400, Ben Beasley wrote:
> The rust-circular-buffer crate was packaged as a dependency for bpftop,
> https://github.com/Netflix/bpftop.
>
> I won’t necessarily be packaging bpftop myself, but I know several parties
> are interested in doing so, and I expect it will happen soon one way or the
> other.
>
> A few existing dependencies still need to be updated first:
>
> Problem 1: nothing provides requested (crate(anyhow/default) >= 1.0.81 with
> crate(anyhow/default) < 2.0.0~)
> Problem 2: nothing provides requested (crate(libbpf-rs/default) >= 0.23.0
> with crate(libbpf-rs/default) < 0.24.0~)
> Problem 3: nothing provides requested (crate(libbpf-sys/default) >= 1.4.0
> with crate(libbpf-sys/default) < 2.0.0~)
> Problem 4: nothing provides requested (crate(ratatui) >= 0.26.1 with
> crate(ratatui) < 0.27.0~)
> Problem 5: nothing provides requested (crate(ratatui/crossterm) >= 0.26.1
> with crate(ratatui/crossterm) < 0.27.0~)
> Problem 6: nothing provides requested (crate(tui-input/default) >= 0.8.0
> with crate(tui-input/default) < 0.9.0~)
>
Speaking of all the bpf* - I have a TODO (will ping the chat too) to
update below, which I expect will require a lot of libbpf-* to be
updated.
For ratatui -- nu-explore >= 0.91.0 needs 0.26, but I dropped it to 0.25
instead, trying to remember why.
Ah... because dua-cli, gimoji, and tui-react needs the old one
❯ fedrq-cratedeps-verbose.sh ratatui
rust-dua-cli : (crate(ratatui) >= 0.25.0 with crate(ratatui) < 0.26.0~)
rust-gimoji : (crate(ratatui/default) >= 0.25.0 with crate(ratatui/default) < 0.26.0~)
rust-nu-explore : (crate(ratatui/default) >= 0.25.0 with crate(ratatui/default) < 0.26.0~)
rust-tui-react : (crate(ratatui) >= 0.25.0 with crate(ratatui) < 0.26.0~)
Best,
--
_o) Michel Lind (né Salim)
_( ) identities: https://keyoxide.org/5dce2e7e9c3b1cffd335c1d78b229d2f7ccc04f2
2 weeks, 4 days
Heads-up: Planning retirement of rust-cpython and rust-python3-sys
by Fabio Valentini
Hello Rustaceans and Pythonistas,
The "cpython" and "python3-sys" crates provide Rust bindings for
CPython, but the project is no longer actively maintained [0], and it
does not support CPython 3.12+ due to ABI / API changes. Programs that
use the "cpython" bindings for building against CPython 3.12+ crash at
runtime.
The upstream project recommends projects to move to the PyO3 bindings,
which are much more popular now, are actively maintained, and which
have been adding support for new versions of CPython pretty quickly
over the past few years.
The only package in Fedora that depends on the "cpython" bindings is
mercurial, which uses them for building the "mercurial-rust"
extensions. These extensions do not work on Fedora 39+ due to the
aforementioned changes in Python 3.12+. I reported this as an issue
half a year ago [1], but got no response from the mercurial
maintainers.
My recommendation would be to disable building the mercurial-rust
extensions on Fedora 39+ (where they already don't work!) until
mercurial upstream moves to PyO3 to properly support CPython 3.12+.
I am planning to retire the "rust-cpython" and "rust-python3-sys"
crates next week.
Fabio
[0]: https://github.com/dgrunwald/rust-cpython/commit/e815555
[1]: https://bugzilla.redhat.com/show_bug.cgi?id=2249383
3 weeks, 4 days