Bug 2358883 - Review Request: rust-bitfield-struct0.7 - Struct-like procedural macro for bit-fields
Summary: Review Request: rust-bitfield-struct0.7 - Struct-like procedural macro for bi...
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Cole Robinson
QA Contact: Fedora Extras Quality Assurance
URL: https://crates.io/crates/bitfield-struct
Whiteboard:
Depends On: FE-NEEDSPONSOR
Blocks:
TreeView+ depends on / blocked
 
Reported: 2025-04-10 15:17 UTC by Luigi Leonardi
Modified: 2025-04-16 09:57 UTC (History)
5 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2025-04-16 09:57:40 UTC
Type: ---
Embargoed:
crobinso: fedora-review?


Attachments (Terms of Use)
The .spec file difference from Copr build 8886802 to 8905784 (952 bytes, patch)
2025-04-15 10:47 UTC, Fedora Review Service
no flags Details | Diff

Description Luigi Leonardi 2025-04-10 15:17:00 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/lleonard/bitfield-struct/fedora-42-x86_64/08886775-rust-bitfield-struct/rust-bitfield-struct.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/lleonard/bitfield-struct/fedora-42-x86_64/08886775-rust-bitfield-struct/rust-bitfield-struct-0.7.0-1.fc42.src.rpm
Description: Procedural macro for bitfields that allows specifying bitfields as structs. As this library provides a procedural macro, it has no runtime dependencies and works for no-std environments.

Fedora Account System Username: lleonard

This is part of the effort to add the Coconut-SVSM paravisor to Fedora.
It would enables Fedora virtualization hosts to launch confidential
virtual machines using AMD's SEV-SNP technology.
See https://fedoraproject.org/wiki/Changes/ConfidentialVirtHostAMDSEVSNP

Packaging version 0.7 because it's required by igvm crate

spec file was produced by rust2rpm
Builds cleanly on f41 42 and rawhide

Comment 1 Fedora Review Service 2025-04-10 15:17:10 UTC
The ticket summary is not in the correct format.
Expected:

    Review Request: <main package name here> - <short summary here>

Found:

    Review Request: rust-bitfield-struct0.7- Struct-like procedural macro for bit-fields

As a consequence, the package name cannot be parsed and submitted to
be automatically build. Please modify the ticket summary and trigger a
build by typing [fedora-review-service-build].


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 2 Luigi Leonardi 2025-04-10 15:20:01 UTC
[fedora-review-service-build]

Comment 3 Fedora Review Service 2025-04-10 15:25:37 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8886802
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2358883-rust-bitfield-struct/fedora-rawhide-x86_64/08886802-rust-bitfield-struct/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 4 Cole Robinson 2025-04-14 20:36:56 UTC
The spec file you linked to has rpmautospec boilerplate stuff in it. Compare it to plain output of `rust2rpm bitfield-struct.0`. I think all the extra stuff is what's added at .src.rpm build time and shouldn't be in the spec you submit for review, or eventually commit to git.



rawhide build is failing:

DEBUG util.py:459:  Problem 1: nothing provides requested (crate(endian-num/default) >= 0.1.0 with crate(endian-num/default) < 0.2.0~)
DEBUG util.py:459:   Problem 2: nothing provides requested (crate(endian-num/linux-types) >= 0.1.0 with crate(endian-num/linux-types) < 0.2.0~)

looks like osteffen just did a build recently bumping fedora rust-endian-num from 0.1 to 0.2. https://koji.fedoraproject.org/koji/buildinfo?buildID=2696494

@osteffen was that for something svsm related?

Maybe we have to relax the version check for rust-bitfield-struct and see if it can build with rust-endian-num 0.2

Comment 5 Luigi Leonardi 2025-04-15 10:41:24 UTC
Spec URL: https://gitlab.com/luigileonardi/bitfield-struct/-/raw/master/rust-bitfield-struct0.7.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/lleonard/sev-snp-coconut/fedora-rawhide-x86_64/08905780-rust-bitfield-struct0.7/rust-bitfield-struct0.7-0.7.0-1.fc43.src.rpm

Thanks Cole for the review!
I updated the spec file, there should be no boilerplate in here. As you suggested I switched to rust-endiam-num 0.2

I renamed it to 0.7 because there is another review request for version 0.10.

Comment 6 Fedora Review Service 2025-04-15 10:47:26 UTC
Created attachment 2085039 [details]
The .spec file difference from Copr build 8886802 to 8905784

Comment 7 Fedora Review Service 2025-04-15 10:47:29 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8905784
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2358883-rust-bitfield-struct/fedora-rawhide-x86_64/08905784-rust-bitfield-struct0.7/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 8 Cole Robinson 2025-04-15 20:45:14 UTC
This looks ok to me. One small tweak: add a comment before the `Patch:` documenting what changed (the rust-endian-num adjustment)

+ spec matches `rust2rpm bitfield-struct` output, with `Name:` change and metadata tweak
+ Builds on rawhide
+ Installs on rawhide
+ content looks fine

But I've never reviewed a rust compat crate before. @decathorpe can you double check this for me? Is there anything I'm missing re: rust compat packages?

Comment 9 Fabio Valentini 2025-04-15 21:13:08 UTC
> + spec matches `rust2rpm bitfield-struct` output, with `Name:` change and metadata tweak

For compat packages, use `rust2rpm bitfield-struct --compat` instead, it will do those things automatically.

The only thing that would currently block adding this package to Fedora is that versioned compat packages are only allowed as alternatives for existing packages, but rust-bitfield-struct is not a package in Fedora yet.

So either

1) This package would be reviewed as a non-compat package for 0.7 and is later updated to 0.10 and a compat package for 0.7 is added, or
2) The non-compat / 0.10 version package review (https://bugzilla.redhat.com/show_bug.cgi?id=2359067) needs to be done first and imported to Fedora, and then this can proceed as planned.

Indeed if 2) happens, no package review is necessary at all -- compat packages do not require package re-reviews.

But as-is, it would not be allowed to import this versioned / compat package without having the un-versioned non-compat package present.

Comment 10 Fabio Valentini 2025-04-15 21:15:05 UTC
That said, do you *really* need version 0.7 of bitfield-struct, or could you patch what you're working on to build with version 0.10?

Patches like that are usually gladly accepted by upstream projects, and it's better to not create too many compat packages, they just create additional maintenance burden for versions of crates that are almost always no longer maintained upstream.

Comment 11 Fabio Valentini 2025-04-15 21:28:59 UTC
(In the interest of speeding things up for you, I have just approved the non-compat bitfield-struct package review.)

Comment 12 Luigi Leonardi 2025-04-16 09:01:53 UTC
> That said, do you *really* need version 0.7 of bitfield-struct, or could you patch what you're working on to build with version 0.10?
> Patches like that are usually gladly accepted by upstream projects, and it's better to not create too many compat packages, they just create additional maintenance burden for versions of crates that are almost always no longer maintained upstream.

Upstream igvm is already using version 0.10, but has not been released yet. SVSM, on the other hand, is using 0.6.2 but bumping the version seems to work just fine. So yes, we can use 0.10 directly and I guess we can close this review request.

Thanks everybody for the feedback!


Note You need to log in before you can comment on or make changes to this bug.