Bug 2227479

Summary: Review Request: rust-tiny-dfr - Most basic dynamic function row daemon possible
Product: [Fedora] Fedora Reporter: Davide Cavalca <davide>
Component: Package ReviewAssignee: Fabio Valentini <decathorpe>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: decathorpe, package-review
Target Milestone: ---Flags: decathorpe: fedora-review+
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://crates.io/crates/tiny-dfr
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-08-06 13:53:55 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: 2227475    
Bug Blocks: 2224807    
Attachments:
Description Flags
The .spec file difference from Copr build 6223018 to 6223683 none

Description Davide Cavalca 2023-07-30 02:17:01 UTC
Spec URL: https://dcavalca.fedorapeople.org/review/rust-tiny-dfr/rust-tiny-dfr.spec
SRPM URL: https://dcavalca.fedorapeople.org/review/rust-tiny-dfr/rust-tiny-dfr-0.1.1-1.fc39.src.rpm

Description:
The most basic dynamic function row daemon possible.

Fedora Account System Username: dcavalca

Comment 1 Fedora Review Service 2023-07-30 05:38:46 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/6223018
(failed)

Build log:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2227479-rust-tiny-dfr/fedora-rawhide-x86_64/06223018-rust-tiny-dfr/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 2 Davide Cavalca 2023-07-30 16:26:47 UTC
Spec URL: https://dcavalca.fedorapeople.org/review/rust-tiny-dfr/rust-tiny-dfr.spec
SRPM URL: https://dcavalca.fedorapeople.org/review/rust-tiny-dfr/rust-tiny-dfr-0.1.1-1.fc39.src.rpm

Changelog:
- update patch to the one upstream merged

Comment 3 Fedora Review Service 2023-07-30 16:29:55 UTC
Created attachment 1980746 [details]
The .spec file difference from Copr build 6223018 to 6223683

Comment 4 Fedora Review Service 2023-07-30 16:29:58 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/6223683
(failed)

Build log:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2227479-rust-tiny-dfr/fedora-rawhide-x86_64/06223683-rust-tiny-dfr/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 5 Fabio Valentini 2023-08-03 12:51:31 UTC
A few comments:

1. The license tag is not up to the latest standard wrt/ legal guidance.
Simplifying licenses like "(A OR B) AND A" to is explicitly discouraged.

So the license tag should be:

License: Apache-2.0 AND BSD-3-Clause AND CC0-1.0 AND ISC AND LGPL-2.1-or-later AND MIT AND MPL-2.0 AND Unicode-DFS-2016 AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (MIT OR Apache-2.0 OR Zlib) AND (Unlicense OR MIT)

The only simplifications that *are* OK are 1. deduplicating "(A OR B)" and "(B OR A)" since they are officially equivalent, and 2. dropping parenthesis around expressions like "(A AND B) AND C" - i.e. OR and AND are commutative and associative. Sorting the resulting AND "blocks" alphabetically is also useful to keep the result consistent.

It's also helpful to paste the output of %cargo_license_summary into the spec file, since it makes this simpler.

2. In the %files list, I would recommend to make directories explicit:

%{_datadir}/%{crate} -> %{_datadir}/%{crate}/

This prevents surprises and / or accidental changes from directories <-> files, which can often be problematic on upgrade (especially since the old workaround is now explicitly blocked by DNF). Making it explicit that something is a directory ensures that this can only happen intentionally (even though it is unlikely to happen for a directory like /usr/share/tiny-dfr/).

Comment 6 Fabio Valentini 2023-08-03 12:54:02 UTC
There was also a minor issue in the rust-librsvg package (excluding configure.ac made the build of tiny-dfr fail), I've submitted a new build that fixes that problem.

Comment 7 Davide Cavalca 2023-08-06 12:29:53 UTC
Spec URL: https://dcavalca.fedorapeople.org/review/rust-tiny-dfr/rust-tiny-dfr.spec
SRPM URL: https://dcavalca.fedorapeople.org/review/rust-tiny-dfr/rust-tiny-dfr-0.1.1-1.fc39.src.rpm

Changelog:
- fix license tag for binary package
- make directory install explicit

Comment 8 Fabio Valentini 2023-08-06 13:19:32 UTC
Looks good to me, one exception:

%post
%systemd_post %{crate}.service

%preun
%systemd_preun %{crate}.service

%postun
%systemd_postun_with_restart %{crate}.service

These are without effect, you need to use

%post -n %{crate}
%systemd_post %{crate}.service

%preun -n %{crate}
%systemd_preun %{crate}.service

%postun -n %{crate}
%systemd_postun_with_restart %{crate}.service

Please fix this before importing the package.

===

Package was generated with rust2rpm, simplifying the review.

- 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 (MIT AND Apache-2.0) and is acceptable for Fedora
- license files are included with %license in %files
- subpackage that contains statically linked binary has license tag that takes dependencies into account
- 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: 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 9 Fedora Admin user for bugzilla script actions 2023-08-06 13:21:32 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/rust-tiny-dfr

Comment 10 Fedora Update System 2023-08-06 13:53:35 UTC
FEDORA-2023-869d2d9891 has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2023-869d2d9891

Comment 11 Fedora Update System 2023-08-06 13:53:55 UTC
FEDORA-2023-869d2d9891 has been pushed to the Fedora 39 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 12 Fedora Update System 2023-08-06 21:01:18 UTC
FEDORA-2023-c2d333f341 has been submitted as an update to Fedora 38. https://bodhi.fedoraproject.org/updates/FEDORA-2023-c2d333f341

Comment 13 Fedora Update System 2023-08-07 01:26:57 UTC
FEDORA-2023-c2d333f341 has been pushed to the Fedora 38 stable repository.
If problem still persists, please make note of it in this bug report.