[HEADS-UP] rust2rpm v22
by Fabio Valentini
Hi all,
The Rust SIG has finished working on the next release of Rust
packaging tools, rust2rpm v22. The changes to the RPM macros
themselves are minor (and were actually already backported to the
Fedora packages for rust2rpm v21), but the changes to rust2rpm are
pretty big:
The headline item is probably the automatic stripping of dependencies
for "foreign" targets, which should make most manually maintained
patches for Rust crate packages in Fedora unnecessary. Additionally,
we've refactored the rust2rpm python module, so the core functionality
that's required for the rust-packaging RPM macros no longer depends on
any third-party python packages.
Please refer to the release notes for more details:
https://pagure.io/fedora-rust/rust2rpm/blob/main/f/NEWS
I've submitted updates for v22 to rawhide, f36, and f35, which should
be pushed *soon* (still waiting for the gating tests to pass):
https://bodhi.fedoraproject.org/updates/FEDORA-2022-60c698a60f
https://bodhi.fedoraproject.org/updates/FEDORA-2022-6dcc99ae76
https://bodhi.fedoraproject.org/updates/FEDORA-2022-04e23a1f12
Existing Rust packages should continue to build as usual, since the
RPM macros have not changed. If you encounter problems with
/usr/bin/rust2rpm, please either file a ticket in the upstream project
(https://pagure.io/fedora-rust/rust2rpm) or ping us in the "Fedora
Rust" channel on matrix if you're unsure whether something is a
feature or a bug. :)
Fabio
1 year, 4 months
Can we get rid of some Python dependencies in all Rust builds
by Miro Hrončok
Hello Rust folks,
I see that all Rust crate packages require rust-packaging which in turn
requires python3-rust2rpm. That brings in:
- Python (obviously)
- python-jinja2
- python-requests
- python-tqdm
I always forget about this when I try to do some impact checks in Copr.
Currently, I am rebuilding all (transitive) build-dependents of
python-markupsafe in Fedora 35 and 36 due to a requested update. This includes
~2k rust packages that could probably be skipped, becasue markupsafe is
required by jinja2.
Do all rust packages indeed need all 3 listed Python libs on runtime?
As far as I understand, Python is used in the dependency generators trough the
cargo-inspector entry-point. So, let's live with that. jinja2, requests and
tqdm all seem to only by imported from the rust2rpm entrypoint (rust2rpm.__main__).
Can we please get rid of this dependency? It could be done on several levels:
1) upstream pyp2rpm, either or:
a) split the project into inspector, rust2rpm and common
-- I consider this tedious
b) make rust2rpm CLI a Python extra
-- I consider this bad UX, since the upstream project *is rust2rpm*
2) downstream rust-pacakging, all of the following:
- move crate-inspector bits to rust-pacakging
- stop requiring python3-rust2rpm from rust-pacakging
- use modern Python macros to install the entry_point via pip
(this is needed to be able to run ti without the metadata installed)
I have a proof of concept for (2) but it requires some small adjustment
upstream -- the inspector module must not import form __main__ (that is very
bad habit): https://src.fedoraproject.org/rpms/rust-packaging/pull-request/3
WDYT?
--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok
1 year, 4 months
Rust Stack Spring Cleaning (July 2022 Edition)
by Fabio Valentini
Hello Rust packagers,
Following up on my previous emails, there are still a lot of Rust packages that
were imported to Fedora, but the recommended "initial setup" for them was never
finished.
I have started by adding them all "rust-*" packages to koschei, which makes it
way easier for me to see at a glance whether there are any broken packages in
our Rust stack at any point in time.
There is also the question about whether anitya release-monitoring.org is
actually set up for those packages, but I don't have an easy way to make
scripted checks for this yet. If you add new Rust packages to Fedora, please
make sure to set up release-monitoring with these settings:
project: $crate
homepage: https://crates.io/crates/$crate
backend: crates.io
version scheme: semantic
version filter: alpha;beta;rc;pre
distro: Fedora
Package: rust-$crate
In addition, I would ask of all of you to make sure all your packages have been
added to the @rust-sig group on src.fedoraproject.org (at least with "commit"
access), unless there is a very good reason not to do so (and if that is the
case for a particular package on this list, I'd be interested in knowing the
reason).
Without that, it makes it very hard for us to keep the Rust stack
up-to-date and in working order, because the "rust-sig" list / bugzilla account
does not get CC'd on new bugs that way, and your bugs do not show up in our
BugZilla queries.
If you want a scripted way of adding "@rust-sig" group to many packages, you
can generate an API token on src.fedoraproject.org (with "Modify an existing
project") access level, and use the simple Python script from this GitHub gist:
https://gist.github.com/decathorpe/9d128982cb00e2d345d9e397372538ec
Below is the list of "incompletely set-up" packages, in alphabetic order, and
at the bottom, is a list per package maintainer.
Thanks,
Fabio / decathorpe
================================================================================
Maintainers per package:
- rust-arrayvec0.5: eclipseo
- rust-atomic-traits: salimma
- rust-aws-nitro-enclaves-cose: pbrobinson
- rust-blsctl: javierm
- rust-ciborium: pbrobinson
- rust-ciborium-io: pbrobinson
- rust-ciborium-ll: pbrobinson
- rust-clap_generate: eclipseo
- rust-clap_generate_fig: eclipseo
- rust-clircle: eclipseo
- rust-cryptoki: pbrobinson
- rust-cryptoki-sys: pbrobinson
- rust-cty: nickblack
- rust-dbus-codegen: pbrobinson
- rust-dbus-crossroads: pbrobinson
- rust-derivative: pbrobinson
- rust-esphome: dcavalca
- rust-helvum: salimma
- rust-is_ci: salimma
- rust-is_debug: atim
- rust-josekit: pbrobinson
- rust-js-sys: pbrobinson
- rust-keccak: pbrobinson
- rust-kvm-bindings: slp
- rust-kvm-ioctls: slp
- rust-libspa: salimma
- rust-libspa-sys: salimma
- rust-mptcp-pm: cathay4t
- rust-nu-engine: salimma
- rust-nu-parser: salimma
- rust-nu-protocol: salimma
- rust-oid: pbrobinson
- rust-openssl-kdf: pbrobinson
- rust-owo-colors: salimma
- rust-parsec-client: pbrobinson
- rust-parsec-interface: pbrobinson
- rust-phf0.8: ignatenkobrain
- rust-phf_generator0.8: ignatenkobrain
- rust-phf_macros0.8: ignatenkobrain
- rust-phf_shared0.8: ignatenkobrain
- rust-picky-asn1: pbrobinson
- rust-picky-asn1-der: pbrobinson
- rust-picky-asn1-x509: pbrobinson
- rust-pipewire: salimma
- rust-pipewire-sys: salimma
- rust-pkcs11: pbrobinson
- rust-process_control: atim, petersen
- rust-prost: pbrobinson
- rust-prost-build: pbrobinson
- rust-prost-derive: pbrobinson
- rust-prost-types: pbrobinson
- rust-psa-crypto: pbrobinson
- rust-psa-crypto-sys: pbrobinson
- rust-rsa: pbrobinson
- rust-rustcat: dcavalca
- rust-sd-notify: pbrobinson
- rust-secrecy: pbrobinson
- rust-serde_with: pbrobinson
- rust-sha3: pbrobinson
- rust-shadow-rs: atim
- rust-signal: salimma
- rust-simple_asn1: pbrobinson
- rust-starship-battery: atim
- rust-supports-color: salimma
- rust-supports-hyperlinks: salimma
- rust-supports-unicode: salimma
- rust-tss-esapi-sys: pbrobinson
- rust-universal-hash: pbrobinson
- rust-version: pbrobinson
- rust-versions: atim
Packages per maintainer:
- atim (5): rust-is_debug, rust-process_control, rust-shadow-rs,
rust-starship-battery, rust-versions
- cathay4t (1): rust-mptcp-pm
- dcavalca (2): rust-esphome, rust-rustcat
- eclipseo (4): rust-arrayvec0.5, rust-clap_generate,
rust-clap_generate_fig, rust-clircle
- ignatenkobrain (4): rust-phf0.8, rust-phf_generator0.8,
rust-phf_macros0.8, rust-phf_shared0.8
- javierm (1): rust-blsctl
- nickblack (1): rust-cty
- pbrobinson (35): rust-aws-nitro-enclaves-cose, rust-ciborium,
rust-ciborium-io, rust-ciborium-ll, rust-cryptoki, rust-cryptoki-sys,
rust-dbus-codegen, rust-dbus-crossroads, rust-derivative,
rust-josekit, rust-js-sys, rust-keccak, rust-oid, rust-openssl-kdf,
rust-parsec-client, rust-parsec-interface, rust-picky-asn1,
rust-picky-asn1-der, rust-picky-asn1-x509, rust-pkcs11, rust-prost,
rust-prost-build, rust-prost-derive, rust-prost-types,
rust-psa-crypto, rust-psa-crypto-sys, rust-rsa, rust-sd-notify,
rust-secrecy, rust-serde_with, rust-sha3, rust-simple_asn1,
rust-tss-esapi-sys, rust-universal-hash, rust-version
- petersen (1): rust-process_control
- salimma (15): rust-atomic-traits, rust-helvum, rust-is_ci,
rust-libspa, rust-libspa-sys, rust-nu-engine, rust-nu-parser,
rust-nu-protocol, rust-owo-colors, rust-pipewire, rust-pipewire-sys,
rust-signal, rust-supports-color, rust-supports-hyperlinks,
rust-supports-unicode
- slp (2): rust-kvm-bindings, rust-kvm-ioctls
1 year, 4 months
Re: Update to newer release
by zebob.m@gmail.com
On 6/30/22 7:36 PM, Jericho Keyne <jerichokeyne(a)gmail.com> wrote:
> Hello,
>
> I would greatly appreciate it if you could update to a newer release of just. Currently only
> version 0.9.8 is packaged, but version 0.10.2 has a feature I want to be able to use, that
> being to be able to use regex in conditionals. The project is currently on version 1.2.0 and
> there have been many improvements since 0.9.8 released almost a year ago. I've also been
> able to confirm that using cargo to build and install version 1.2.0 works just fine on Fedora.
>
> Thanks in advance for any help,
> Jericho Keyne
>
Hello,
I have worked on this today. There are two new dependencies that need reviews, but otherwise the package looks in good shape. I can't give you an ETA but hopefully within the next two weeks.
Best regards,
Robert-André
(FAS: eclipseo)
1 year, 5 months