Bug 2296542

Summary: Review Request: rust-tonic-types - Collection of useful protobuf types that can be used with tonic
Product: [Fedora] Fedora Reporter: Cristian Le <fedora>
Component: Package ReviewAssignee: Fabio Valentini <decathorpe>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: decathorpe, package-review
Target Milestone: ---Keywords: AutomationTriaged
Target Release: ---Flags: decathorpe: fedora-review+
Hardware: All   
OS: Linux   
URL: https://crates.io/crates/tonic-types
Whiteboard:
Fixed In Version: rust-tonic-types-0.12.2-1.fc42 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-09-23 14:38:40 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2296372, 2296375, 2296540    
Bug Blocks: 2297310    
Attachments:
Description Flags
The .spec file difference from Copr build 8023493 to 8026925
none
The .spec file difference from Copr build 8026925 to 8042165 none

Comment 2 Fedora Review Service 2024-08-27 15:31:27 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/7947944
(failed)

Build log:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2296542-rust-tonic-types/fedora-rawhide-x86_64/07947944-rust-tonic-types/builder-live.log.gz

Please make sure the package builds successfully at least for Fedora Rawhide.

- If the build failed for unrelated reasons (e.g. temporary network
  unavailability), please ignore it.
- If the build failed because of missing BuildRequires, please make sure they
  are listed in the "Depends On" field


---
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 3 Fabio Valentini 2024-09-12 22:06:30 UTC
The license situation of this crate seems to be somewhat weird:

- crate code is MIT
- proto/*.proto files are Apache-2.0, but I can't see that they're actually referenced by the code?
- src/generated/types.bin is a weird binary file (where is it from?) and it seems to have an embedded BSD-3-Clause license text

1. Please confirm my suspicions that the Apache-2.0 licensed .proto files are indeed unused. If that is indeed the case, investigate whether they can be dropped from the package and / or from the crate upstream.

2. Determine the origin of the types.bin file. How it's generated? Is that process reproducible? Could we rebuild it at build-time? And why does it embed a BSD-3-Clause license text?

Comment 5 Fedora Review Service 2024-09-16 09:52:43 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8023493
(failed)

Build log:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2296542-rust-tonic-types/fedora-rawhide-x86_64/08023493-rust-tonic-types/builder-live.log.gz

Please make sure the package builds successfully at least for Fedora Rawhide.

- If the build failed for unrelated reasons (e.g. temporary network
  unavailability), please ignore it.
- If the build failed because of missing BuildRequires, please make sure they
  are listed in the "Depends On" field


---
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 7 Fedora Review Service 2024-09-17 09:43:24 UTC
Created attachment 2047230 [details]
The .spec file difference from Copr build 8023493 to 8026925

Comment 8 Fedora Review Service 2024-09-17 09:43:25 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8026925
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2296542-rust-tonic-types/fedora-rawhide-x86_64/08026925-rust-tonic-types/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 9 Fabio Valentini 2024-09-19 10:26:25 UTC
> Source2:        https://github.com/LecrisUT/tonic/raw/packaging/fedora/LICENSE-APACHE

This link is no longer valid. If you need to include an external Apache-2.0 license text, please use the official one, not a custom link:

https://www.apache.org/licenses/LICENSE-2.0.txt

> BuildRequires:  protobuf-devel

Is this really needed here? I thought prost should already pull in protobuf - or do you need protoc? That one is in "protobuf-compiler".
If it is /usr/bin/protoc that you need, then I wonder why 1) it's not pulled in correctly by prost, and 2) you could just depend on "BR: /usr/bin/protoc" directly, without guessing the package name.

The patch to add build.rs looks good to me, and the package in general looks fine, with these two exceptions.

Comment 10 Cristian Le 2024-09-19 11:41:08 UTC
> > Source2:        https://github.com/LecrisUT/tonic/raw/packaging/fedora/LICENSE-APACHE
> 
> This link is no longer valid. If you need to include an external Apache-2.0
> license text, please use the official one, not a custom link:
> 
> https://www.apache.org/licenses/LICENSE-2.0.txt

The link should still be available, and I am mostly unsure if upstream would want to change the template copyright part or not. sqlx do that change.
But yeah, I'll switch it to a static bundled file.

> > BuildRequires:  protobuf-devel
> 
> Is this really needed here? I thought prost should already pull in protobuf
> - or do you need protoc? That one is in "protobuf-compiler".
> If it is /usr/bin/protoc that you need, then I wonder why 1) it's not pulled
> in correctly by prost, and 2) you could just depend on "BR: /usr/bin/protoc"
> directly, without guessing the package name.

I need to parts from here the `protoc` and the std libraries themselves. I have previously tried to build `atuin` locally with `protobuf-compiler` and it failed because it couldn't find the appropriate libraries. I just double-checked for this package as well by changing it to `BR: /usr/bin/protoc` and I get:
```
     Running `/builddir/build/BUILD/rust-tonic-types-0.12.2-build/tonic-types-0.12.2/target/rpm/build/tonic-types-b1705e977b60cfc9/build-script-build`
error: failed to run custom build command for `tonic-types v0.12.2 (/builddir/build/BUILD/rust-tonic-types-0.12.2-build/tonic-types-0.12.2)`
Caused by:
  process didn't exit successfully: `/builddir/build/BUILD/rust-tonic-types-0.12.2-build/tonic-types-0.12.2/target/rpm/build/tonic-types-b1705e977b60cfc9/build-script-build` (exit status: 101)
  --- stdout
  cargo::rerun-if-changed=/builddir/build/BUILD/rust-tonic-types-0.12.2-build/tonic-types-0.12.2/proto/status.proto
  cargo::rerun-if-changed=/builddir/build/BUILD/rust-tonic-types-0.12.2-build/tonic-types-0.12.2/proto/error_details.proto
  cargo::rerun-if-changed=/builddir/build/BUILD/rust-tonic-types-0.12.2-build/tonic-types-0.12.2/proto
  --- stderr
  thread 'main' panicked at build.rs:51:10:
  called `Result::unwrap()` on an `Err` value: Custom { kind: Other, error: "protoc failed: google/protobuf/any.proto: File not found.\nstatus.proto:19:1: Import \"google/protobuf/any.proto\" was not found or had errors.\nstatus.proto:46:12: \"google.protobuf.Any\" is not defined.\n" }
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: Bad exit status from /var/tmp/rpm-tmp.Gc0TDy (%build)
    Bad exit status from /var/tmp/rpm-tmp.Gc0TDy (%build)
```

```console
$ dnf repoquery --whatprovides */google/protobuf/any.proto
erlang-gpb-0:4.21.1-2.fc41.noarch
golang-github-gogo-protobuf-devel-0:1.3.2-16.fc41.noarch
mingw32-protobuf-0:3.19.6-6.fc41.noarch
mingw64-protobuf-0:3.19.6-6.fc41.noarch
protobuf-devel-0:3.19.6-10.fc41.i686
protobuf-devel-0:3.19.6-10.fc41.x86_64
python3-grpcio-tools-0:1.48.4-41.fc41.x86_64
rust-protobuf-codegen-pure-devel-0:2.28.0-4.fc41.noarch
```

Comment 12 Fedora Review Service 2024-09-20 07:51:55 UTC
Created attachment 2047804 [details]
The .spec file difference from Copr build 8026925 to 8042165

Comment 13 Fedora Review Service 2024-09-20 07:51:57 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8042165
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2296542-rust-tonic-types/fedora-rawhide-x86_64/08042165-rust-tonic-types/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 14 Fabio Valentini 2024-09-23 14:03:04 UTC
Thank you, looks good to me now!

===

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
✅ latest version of the crate is packaged
🫤 license matches upstream specification and is acceptable for Fedora (license clarification still pending upstream)
✅ license files are 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 (*NOT* pre-release) filter: alpha;beta;rc;pre
  distro: Fedora
  Package: rust-$crate

- add @rust-sig with "commit" access as package co-maintainer
  (should happen automatically)

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

- track package in koschei for all built branches
  (should happen automatically once rust-sig is co-maintainer)

Comment 15 Cristian Le 2024-09-23 14:18:54 UTC
Thank you for the review, Fabio

Comment 16 Fedora Admin user for bugzilla script actions 2024-09-23 14:19:05 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/rust-tonic-types

Comment 17 Fedora Update System 2024-09-23 14:34:09 UTC
FEDORA-2024-89699cebcb (rust-tonic-types-0.12.2-1.fc42) has been submitted as an update to Fedora 42.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-89699cebcb

Comment 18 Fedora Update System 2024-09-23 14:38:40 UTC
FEDORA-2024-89699cebcb (rust-tonic-types-0.12.2-1.fc42) has been pushed to the Fedora 42 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 19 Fedora Update System 2024-09-24 07:16:46 UTC
FEDORA-2024-b32479db34 (rust-tonic-types-0.12.2-1.fc41) has been submitted as an update to Fedora 41.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-b32479db34

Comment 20 Fedora Update System 2024-09-25 01:25:35 UTC
FEDORA-2024-4ea1514c36 has been pushed to the Fedora 39 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-4ea1514c36`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-4ea1514c36

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 21 Fedora Update System 2024-09-25 01:33:16 UTC
FEDORA-2024-b32479db34 has been pushed to the Fedora 41 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-b32479db34`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-b32479db34

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 22 Fedora Update System 2024-09-25 01:44:17 UTC
FEDORA-2024-f82c7b97a5 has been pushed to the Fedora 40 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-f82c7b97a5`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-f82c7b97a5

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 23 Fedora Update System 2024-10-02 03:51:29 UTC
FEDORA-2024-4ea1514c36 (rust-tonic-types-0.12.2-1.fc39) has been pushed to the Fedora 39 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 24 Fedora Update System 2024-10-03 00:15:07 UTC
FEDORA-2024-b32479db34 (rust-tonic-types-0.12.2-1.fc41) has been pushed to the Fedora 41 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 25 Fedora Update System 2024-10-03 01:57:25 UTC
FEDORA-2024-f82c7b97a5 (rust-tonic-types-0.12.2-1.fc40) has been pushed to the Fedora 40 stable repository.
If problem still persists, please make note of it in this bug report.