Bug 2512063 - Review Request: rust-lapin - AMQP client library
Summary: Review Request: rust-lapin - AMQP client library
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Fabio Valentini
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 2512062
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-08-06 14:29 UTC by Jeremy Cline
Modified: 2026-08-12 19:45 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2026-08-12 19:45:37 UTC
Type: ---
Embargoed:
decathorpe: fedora-review+


Attachments (Terms of Use)

Description Jeremy Cline 2026-08-06 14:29:24 UTC
Spec URL: https://jcline.fedorapeople.org/new-packages/rust-lapin.spec
SRPM URL: https://jcline.fedorapeople.org/new-packages/rust-lapin-4.10.0-1.fc45.src.rpm
Description: AMQP client library.
Fedora Account System Username: jcline

Depends on https://bugzilla.redhat.com/show_bug.cgi?id=2512062

Comment 1 Fabio Valentini 2026-08-10 19:16:24 UTC
A few comments:

- Changing the "default" feature flags is considered a breaking change (compared to upstream / crates.io).
  I would usually recommend *not* to patch the "default" feature flags, and instead set feature flags for lapin in dependent packages accordingly.
- There are a few other changes that aren't documented / explained (dropped features for "codegen", "codegen-internal", "native-tls", "rustls", "rustls--aws_lc_rs", "rustls--ring", "rustls-native-certs", "rustls-platform-verifier", "rustls-webpki-roots", "vendored-openssl").

All rustls-related features could stay enabled as far as I can tell (except rustls--aws_lc_rs), dropping "vendored-openssl" makes sense, but "codegen*" flags aren't obvious why they're dropped.

Comment 2 Jeremy Cline 2026-08-10 19:46:06 UTC
codegen is for if you want to regenerate the AMQP channel bindings at build time. I didn't look into the history but I assume this is for upstream developers. The file in question it will regenerate is https://github.com/amqp-rs/lapin/blob/main/src/generated/channel.rs from https://github.com/amqp-rs/lapin/blob/main/templates/channel.rs via the build.rs. If someone out there decides to ship an AMQP app that needs that, they are more than welcome to package the extra dependencies.

native-tls is/was out-of-date and I don't use it. Should some other application come along and need it, we can turn it on, but I have no desire to chase that tangle, nor do I think it makes sense to add to it without good reason. If you really want, I'll go turn rustls back on everywhere, but there's at least one place in the stack where the default feature set includes aws_lc_rs so that would still be a breaking change, and it also pulls in a lot of missing dependencies that will be unused.

Comment 3 Fabio Valentini 2026-08-11 10:05:16 UTC
Alright. Usually we don't hide feature support that would have no missing dependencies, but there's no rule *against* it, either.

I assume you plan to use rust2rpm.toml config file - please add the reasoning provided above to it as documentation for *why* you're doing this.

Changing the default backend to OpenSSL is *OK* since ~technically~ it shouldn't change behaviour or affect the exposed feature set, so in this case patching the "default" feature flag is acceptable. Just beware that in *some* cases, openssl might behave differently than rustls, so if you see issues, they might be caused by that downstream patch.

===

Package was generated with rust2rpm, simplifying the review.

✅ package contains only permissible content
✅ package builds and installs without errors on rawhide
🫤 test suite is run and all unit tests pass:
   some tests are not run - this is OK since setting up an AMQP server in the test environment would be unreasonable effort.
✅ latest version of the crate is packaged
✅ license matches upstream specification and is acceptable for Fedora
✅ license file is included with %license in %files
✅ package complies with Rust Packaging Guidelines

Package APPROVED.

===

Recommended post-import rust-sig tasks:

- set up package on release-monitoring.org:
  project: $crate
  homepage: https://crates.io/crates/$crate
  backend: crates.io
  version scheme: semantic
  version filter (*NOT* pre-release filter): alpha;beta;rc;pre
  distro: Fedora
  Package: rust-$crate

- set bugzilla assignee overrides to @rust-sig (optional)

Comment 4 Fedora Admin user for bugzilla script actions 2026-08-11 17:36:24 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/rust-lapin
Monitoring:
Wasn't able to create project in Anitya. You can create it manually on: `https://release-monitoring.org`


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