Bug 2368362 - Review Request: rust-ssh-agent-client-rs - Pure rust implementation of the ssh-agent protocol
Summary: Review Request: rust-ssh-agent-client-rs - Pure rust implementation of the ss...
Keywords:
Status: POST
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Ben Beasley
QA Contact: Fedora Extras Quality Assurance
URL: https://crates.io/crates/ssh-agent-cl...
Whiteboard:
Depends On:
Blocks: 2404683
TreeView+ depends on / blocked
 
Reported: 2025-05-24 12:34 UTC by Noa Resare
Modified: 2025-10-18 21:53 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:
code: fedora-review+


Attachments (Terms of Use)
The .spec file difference from Copr build 9077037 to 9078264 (447 bytes, patch)
2025-05-25 12:01 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 9078264 to 9685807 (357 bytes, patch)
2025-10-13 20:05 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 9685807 to 9688952 (654 bytes, patch)
2025-10-14 21:49 UTC, Fedora Review Service
no flags Details | Diff

Description Noa Resare 2025-05-24 12:34:23 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/noa/rust/fedora-42-aarch64/09077024-rust-ssh-agent-client-rs/rust-ssh-agent-client-rs.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/noa/rust/fedora-42-aarch64/09077024-rust-ssh-agent-client-rs/rust-ssh-agent-client-rs-1.0.0-1.fc42.src.rpm
Description: Pure rust implementation of the ssh-agent protocol
Fedora Account System Username: noa

I believe I need a sponsor, even though I dabbled with Fedora packaging a long time ago.

I am the upstream author of this code, and my purpose in packaging it is to be able to package my pam-ssh-agent crate for Fedora.

The COPR build referenced above builds its srpm using the srpm target in this makefile: https://github.com/nresare/rpm-packaging/blob/main/ssh-agent-client-rs/Makefile

Comment 1 Fedora Review Service 2025-05-24 12:42:06 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9077037
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2368362-rust-ssh-agent-client-rs/fedora-rawhide-x86_64/09077037-rust-ssh-agent-client-rs/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 2 Noa Resare 2025-05-25 11:54:15 UTC
It turns out that the copr 'make srpm' feature that only invokes "dnf install rust2rpm" and not "dnf install rust2rpm rust2rpm-helper" will silently skip generating patches that removes non-matching conditional dependencies, such as the windows only interprocess.

Here is an updated .src.rpm and .spec where this is fixed:

https://download.copr.fedorainfracloud.org/results/noa/rust/epel-10-aarch64/09077642-rust-ssh-agent-client-rs/rust-ssh-agent-client-rs-1.0.0-1.el10.src.rpm
https://download.copr.fedorainfracloud.org/results/noa/rust/epel-10-aarch64/09077642-rust-ssh-agent-client-rs/rust-ssh-agent-client-rs.spec

Comment 3 Fedora Review Service 2025-05-25 12:01:46 UTC
Created attachment 2091502 [details]
The .spec file difference from Copr build 9077037 to 9078264

Comment 4 Fedora Review Service 2025-05-25 12:01:49 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9078264
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2368362-rust-ssh-agent-client-rs/fedora-rawhide-x86_64/09078264-rust-ssh-agent-client-rs/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 5 Ben Beasley 2025-10-13 13:01:20 UTC
The COPR build has been garbage-collected, so the links give 404 errors and this is no longer reviewable. Consider using something more durable like https://fedoraproject.org/wiki/Infrastructure/fedorapeople.org to upload your submissions.

Comment 6 Noa Resare 2025-10-13 19:57:11 UTC
Oh, I was not aware of that. Thankfully the COPR build system was happy to regenerate the missing files. Here are some updated, permanent links

https://github.com/nresare/rpm-packaging/releases/download/v20251013/rust-ssh-agent-client-rs.spec
https://github.com/nresare/rpm-packaging/releases/download/v20251013/rust-ssh-agent-client-rs-1.1.1-1.el10.src.rpm

Comment 7 Fedora Review Service 2025-10-13 20:05:16 UTC
Created attachment 2109657 [details]
The .spec file difference from Copr build 9078264 to 9685807

Comment 8 Fedora Review Service 2025-10-13 20:05:19 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9685807
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2368362-rust-ssh-agent-client-rs/fedora-rawhide-x86_64/09685807-rust-ssh-agent-client-rs/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 Ben Beasley 2025-10-14 05:29:48 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated

The spec file is exactly as generated by rust2rpm, greatly simplifying the
review.


Issues:
=======
- Package does not contain duplicates in %files.
  Note: warning: File listed twice: /usr/share/cargo/registry/ssh-agent-
  client-rs-1.1.1/LICENSE-APACHE
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_duplicate_files

  This is not a serious problem; it is due to reasonable design decisions in
  rust2rpm.

- The script tests/data/create.sh results in a dependency on /usr/bin/bash,
  which isn’t really necessary.

  You could avoid this by using rust2rpm.toml to remove the shebang and
  executable permissions:

    [scripts.prep]
    pre = [
      "# Avoid generating a dependency on bash",
      "chmod -v a-x tests/data/create.sh",
      "sed -r -i '1{/^#!/}d' tests/data/create.sh",
    ]

  Or, you could use package.include/package.exclude in a Cargo.toml metadata
  patch to avoid shipping this script at all.

- The test codec::test::test_write_too_large fails on i686. See
  https://github.com/nresare/ssh-agent-client-rs/pull/53, which explains the
  problem and skips the test on 32-bit platforms. I suggest applying that PR as
  a patch.

===== MUST items =====

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "*No copyright* Apache License 2.0",
     "MIT License". 45 files have unknown license. Detailed output of
     licensecheck in /home/ben/fedora/review/2368362-rust-ssh-agent-client-
     rs/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[-]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: No rpmlint messages.
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: The License field must be a valid SPDX expression.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 0 bytes in 0 files.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[!]: Final provides and requires are sane (see attachments).

     See Issues; it would be better to avoid the dependency on /usr/bin/bash by
     making tests/data/create.sh not an executable script or by omitting it
     entirely.

[-]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in rust-
     ssh-agent-client-rs-devel , rust-ssh-agent-client-rs+default-devel
[x]: Package functions as described.

     (tests pass)

[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[!]: Package should compile and build into binary rpms on all supported
     architectures.

codec::test::test_write_too_large

[x]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: No rpmlint messages.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: rust-ssh-agent-client-rs-devel-1.1.1-1.fc44.noarch.rpm
          rust-ssh-agent-client-rs+default-devel-1.1.1-1.fc44.noarch.rpm
          rust-ssh-agent-client-rs-1.1.1-1.fc44.src.rpm
============================ rpmlint session starts ============================
rpmlint: 2.7.0
configuration:
    /usr/lib/python3.13/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmptre1fqgv')]
checks: 32, packages: 3

 3 packages and 0 specfiles checked; 0 errors, 0 warnings, 13 filtered, 0 badness; has taken 0.2 s 




Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.7.0
configuration:
    /usr/lib/python3.14/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 32, packages: 2

 2 packages and 0 specfiles checked; 0 errors, 0 warnings, 9 filtered, 0 badness; has taken 0.0 s 



Source checksums
----------------
https://crates.io/api/v1/crates/ssh-agent-client-rs/1.1.1/download#/ssh-agent-client-rs-1.1.1.crate :
  CHECKSUM(SHA256) this package     : bc3c4dd567de6556169a17ce106042cac86a5f5fe7ec9c89c924b57c47707b73
  CHECKSUM(SHA256) upstream package : bc3c4dd567de6556169a17ce106042cac86a5f5fe7ec9c89c924b57c47707b73


Requires
--------
rust-ssh-agent-client-rs-devel (rpmlib, GLIBC filtered):
    (crate(bytes/default) >= 1.10.1 with crate(bytes/default) < 2.0.0~)
    (crate(signature/default) >= 2.2.0 with crate(signature/default) < 3.0.0~)
    (crate(ssh-encoding/default) >= 0.2.0 with crate(ssh-encoding/default) < 0.3.0~)
    (crate(ssh-key/crypto) >= 0.6.7 with crate(ssh-key/crypto) < 0.7.0~)
    (crate(ssh-key/default) >= 0.6.7 with crate(ssh-key/default) < 0.7.0~)
    (crate(thiserror/default) >= 2.0.12 with crate(thiserror/default) < 3.0.0~)
    /usr/bin/bash
    cargo

rust-ssh-agent-client-rs+default-devel (rpmlib, GLIBC filtered):
    cargo
    crate(ssh-agent-client-rs)



Provides
--------
rust-ssh-agent-client-rs-devel:
    crate(ssh-agent-client-rs)
    rust-ssh-agent-client-rs-devel

rust-ssh-agent-client-rs+default-devel:
    crate(ssh-agent-client-rs/default)
    rust-ssh-agent-client-rs+default-devel



Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/usr/bin/fedora-review -b 2368362
Buildroot used: fedora-rawhide-aarch64
Active plugins: Generic, Shell-api
Disabled plugins: Java, Perl, C/C++, SugarActivity, fonts, R, Haskell, PHP, Ocaml, Python
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH

Comment 10 Noa Resare 2025-10-14 21:44:07 UTC
Thank you for the review, much appreciated. 

I have released a new version of the library with some minor changes that I have meant to do for a while, and also 

- merged your fix for 32 bit test failure
- updated the test data generation script to no longer trigger the spurious bash dependency

The updated builds are available here:
https://github.com/nresare/rpm-packaging/releases/download/v20251014/rust-ssh-agent-client-rs-1.1.2-1.el10.src.rpm
https://github.com/nresare/rpm-packaging/releases/download/v20251014/rust-ssh-agent-client-rs.spec


I have one questio: As part of my new release I had a look at the latest releases of all the dependencies and updated anyhow and thiserror, the to crates that had updates. This broke the build in copr since these specific patch releases are not available. What is the preferred way to handle this? I felt a bit backwards to create a new point-release with downgraded dependencies, so instead I created a patch for the .spec file and checked it into https://github.com/nresare/rpm-packaging/blob/main/ssh-agent-client-rs/ssh-agent-client-rs-1.1.2_deps_rollback.patch
which copr uses to build the .src.rpm.

What is the preferred way to deal with this?

Comment 11 Fedora Review Service 2025-10-14 21:49:30 UTC
Created attachment 2109763 [details]
The .spec file difference from Copr build 9685807 to 9688952

Comment 12 Fedora Review Service 2025-10-14 21:49:33 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9688952
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2368362-rust-ssh-agent-client-rs/fedora-rawhide-x86_64/09688952-rust-ssh-agent-client-rs/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 13 Ben Beasley 2025-10-17 06:10:16 UTC
(In reply to Noa Resare from comment #10)
> I have one questio: As part of my new release I had a look at the latest
> releases of all the dependencies and updated anyhow and thiserror, the to
> crates that had updates. This broke the build in copr since these specific
> patch releases are not available. What is the preferred way to handle this?
> I felt a bit backwards to create a new point-release with downgraded
> dependencies, so instead I created a patch for the .spec file and checked it
> into
> https://github.com/nresare/rpm-packaging/blob/main/ssh-agent-client-rs/ssh-
> agent-client-rs-1.1.2_deps_rollback.patch
> which copr uses to build the .src.rpm.
> 
> What is the preferred way to deal with this?

If a very recent version of a dependency is needed “just because,” that its, because somebody updated lower bounds as a routine upstream maintenance activity, or a bot like renovate or dependabot is aggressively bumping lower bounds upstream, then patching them to allow slightly earlier versions is a very reasonable choice. However, when patching Cargo.toml, instead of something like

[package]
extra-patches = [
  { number = 10, file = "ssh-agent-client-rs-1.1.2_deps_rollback.patch"},
]

you should do something like:

[package]
cargo-toml-extra-patches = [
    "Allow slightly older patch releases of thiserror and anyhow",
]

and then run "rust2rpm -p" to patch Cargo.toml interactively.

If you need to carry the same patch to subsequent updates, you can do "rust2rpm -r" and it will try to reapply/rebase it.

-----

If you really do need an update, you can set the bugzilla ticket for the update (assuming anitya/the-new-hotnesss has filed one) to depend on the tickets for the dependency updates. That helps the maintainer see that there is actually a reason to prioritize an update.

-----

In some cases, filing a PR for the update may be helpful, if you’re willing to do due diligence to make it helpful and easy to review:

- Check the source diff, e.g. for thiserror, https://github.com/dtolnay/thiserror/compare/2.0.16...2.0.17 or https://diff.rs/thiserror/2.0.16/thiserror/2.0.17/Cargo.toml
- Check the changelog, e.g. https://github.com/dtolnay/thiserror/releases/tag/2.0.17
- Do a local mock build with "fedpkg --release rawhide mockbuild -- --postinstall". This checks that no feature metapackages have unsatisfied dependencies.
- Deal with any interconnected packages; for example, rust-thiserror and rust-thiserror-impl must always be updated together in the same side tag. Test them together: something like "mock -r fedora-rawhide-aarch64 --clean && mock -r fedora-rawhide-aarch64 -i ~/fedora/rust-sig/rust-thiserror-impl/results_rust-thiserror-impl/2.0.17/1.fc44/rust-thiserror-impl*.noarch.rpm && fedpkg --release rawhide mockbuild --no-clean --no-cleanup-after -- --postinstall"
- If a package will be updated across SemVer boundaries, analyze whether a compat package will be required or whether (ideally) dependent packages can be safely patched, preferably offering these patches upstream.

A half-baked PR that would break dependent packages is not very useful, but a high-quality PR can be.

Comment 15 Noa Resare 2025-10-17 07:50:44 UTC
Thank you for this really helpful write-up. This is definitely a case of me just bringing in the latest patch release into upstream without even looking at it. I will try out the cargo-toml-extra-patches method of generating the patches next time the need arises.

Is there anything you would like to address in this review? If not, I shall go ahead and submit a review for pam-ssh-agent, the part of this effort that is actually a bit useful outside of the small group of people wanting to communicate directly with their ssh-agent.

Comment 16 Ben Beasley 2025-10-18 21:53:26 UTC
The package is APPROVED; please see comments about the patch, below, and note
that it can now be removed anyway.


Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated

The spec file is almost exactly as generated by rust2rpm, simplifying the review. There is an additional patch:

Patch10:        ssh-agent-client-rs-1.1.2_deps_rollback.patch

This patch is appropriate to do downstream. Patches to Cargo.toml should
normally be done with "rust2rpm -p" since they may affect the generated spec
file, particularly the feature metapackages; however, since this one merely
adjusts version bounds, no harm was done by doing it this way. A patch should
normally be commented to say what it does and why, and whether it could be sent
upstream; see
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_all_patches_should_have_an_upstream_bug_link_or_comment.

Note that this patch is no longer necessary in Rawhide, since I helped update
the packages in question. Updates for stable releases are now in testing
repositories.


Issues:
=======
- Package does not contain duplicates in %files.
  Note: warning: File listed twice: /usr/share/cargo/registry/ssh-agent-
  client-rs-1.1.2/LICENSE-APACHE
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_duplicate_files

  This is not a serious problem, and is due to reasonable design decisions in
  rust2rpm.


===== MUST items =====

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "*No copyright* Apache License 2.0",
     "MIT License". 45 files have unknown license. Detailed output of
     licensecheck in /home/ben/fedora/review/2368362-rust-ssh-agent-client-
     rs/20251018/2368362-rust-ssh-agent-client-rs/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[-]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: No rpmlint messages.
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: The License field must be a valid SPDX expression.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 0 bytes in 0 files.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[-]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in rust-
     ssh-agent-client-rs-devel , rust-ssh-agent-client-rs+default-devel
[x]: Package functions as described.

     (tests pass)

[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[!]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.

     The Cargo.toml patch should have a comment about its purpose and
     upstreamability.

[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[x]: Package should compile and build into binary rpms on all supported
     architectures.

     https://koji.fedoraproject.org/koji/taskinfo?taskID=138266004

[x]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: No rpmlint messages.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: rust-ssh-agent-client-rs-devel-1.1.2-1.fc44.noarch.rpm
          rust-ssh-agent-client-rs+default-devel-1.1.2-1.fc44.noarch.rpm
          rust-ssh-agent-client-rs-1.1.2-1.fc44.src.rpm
============================ rpmlint session starts ============================
rpmlint: 2.7.0
configuration:
    /usr/lib/python3.13/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmpi47cbky9')]
checks: 32, packages: 3

 3 packages and 0 specfiles checked; 0 errors, 0 warnings, 13 filtered, 0 badness; has taken 0.2 s 




Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.7.0
configuration:
    /usr/lib/python3.14/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 32, packages: 2

 2 packages and 0 specfiles checked; 0 errors, 0 warnings, 9 filtered, 0 badness; has taken 0.0 s 



Source checksums
----------------
https://crates.io/api/v1/crates/ssh-agent-client-rs/1.1.2/download#/ssh-agent-client-rs-1.1.2.crate :
  CHECKSUM(SHA256) this package     : 55e17f8c47c06666b1cffb0116555450c7ee46c4004701981208dd6f79850747
  CHECKSUM(SHA256) upstream package : 55e17f8c47c06666b1cffb0116555450c7ee46c4004701981208dd6f79850747


Requires
--------
rust-ssh-agent-client-rs-devel (rpmlib, GLIBC filtered):
    (crate(bytes/default) >= 1.10.1 with crate(bytes/default) < 2.0.0~)
    (crate(signature/default) >= 2.2.0 with crate(signature/default) < 3.0.0~)
    (crate(ssh-encoding/default) >= 0.2.0 with crate(ssh-encoding/default) < 0.3.0~)
    (crate(ssh-key/crypto) >= 0.6.7 with crate(ssh-key/crypto) < 0.7.0~)
    (crate(ssh-key/default) >= 0.6.7 with crate(ssh-key/default) < 0.7.0~)
    (crate(thiserror/default) >= 2.0.16 with crate(thiserror/default) < 3.0.0~)
    cargo

rust-ssh-agent-client-rs+default-devel (rpmlib, GLIBC filtered):
    cargo
    crate(ssh-agent-client-rs)



Provides
--------
rust-ssh-agent-client-rs-devel:
    crate(ssh-agent-client-rs)
    rust-ssh-agent-client-rs-devel

rust-ssh-agent-client-rs+default-devel:
    crate(ssh-agent-client-rs/default)
    rust-ssh-agent-client-rs+default-devel



Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/usr/bin/fedora-review -b 2368362
Buildroot used: fedora-rawhide-aarch64
Active plugins: Shell-api, Generic
Disabled plugins: fonts, Haskell, PHP, R, Java, Ocaml, SugarActivity, C/C++, Perl, Python
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH


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