Bug 2292542

Summary: Review Request: rust-dlopen2 - Library for opening and operating on dynamic link libraries
Product: [Fedora] Fedora Reporter: Jonathan Steffan <jonathansteffan>
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: code, decathorpe, package-review
Target Milestone: ---Flags: decathorpe: fedora-review+
Target Release: ---   
Hardware: All   
OS: Linux   
URL: https://crates.io/crates/dlopen2
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-07-23 02:30:31 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: 2292543    
Bug Blocks: 2292541    

Description Jonathan Steffan 2024-06-15 23:04:35 UTC
Spec URL: https://jsteffan.fedorapeople.org/envision/rust-dlopen2.spec
SRPM URL: https://jsteffan.fedorapeople.org/envision/rust-dlopen2-0.7.0-1.fc39/rust-dlopen2-0.7.0-1.fc40.src.rpm
Description: Library for opening and operating on dynamic link libraries (also known
as shared objects or shared libraries).
Fedora Account System Username: jsteffan

Comment 1 Fedora Review Service 2024-06-15 23:06:43 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/7617795
(failed)

Build log:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2292542-rust-dlopen2/fedora-rawhide-x86_64/07617795-rust-dlopen2/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 Jonathan Steffan 2024-07-13 18:56:48 UTC
https://bodhi.fedoraproject.org/updates/FEDORA-2024-dc0b277171 for the build dep.

Comment 4 Fabio Valentini 2024-07-15 15:20:52 UTC
There's some messages from rpmlint:

> rust-dlopen2-devel.noarch: E: wrong-script-end-of-line-encoding /usr/share/cargo/registry/dlopen2-0.7.0/src/raw/unix.rs
> rust-dlopen2-devel.noarch: W: wrong-file-end-of-line-encoding /usr/share/cargo/registry/dlopen2-0.7.0/README.md

Can you check whether these files indeed have wrong end-of-line encoding? If yes, please fix them with sed or dos2unix (and possibly submit a fix for the issue to upstream).

Comment 5 Jonathan Steffan 2024-07-15 16:49:19 UTC
Odd. I don't see that in a repo checkout:

jon@dahome:~/Development/dlopen2$ file README.md dlopen2/src/raw/unix.rs
README.md:               C source, ASCII text
dlopen2/src/raw/unix.rs: a [allow(clippy::let_unit_value)] script, ASCII text executable

jon@dahome:~/Development/dlopen2$ dos2unix -ih README.md dlopen2/src/raw/unix.rs 
     DOS    UNIX     MAC  BOM       TXTBIN  FILE
       0     107       0  no_bom    text    README.md
       0     140       0  no_bom    text    dlopen2/src/raw/unix.rs

Comment 6 Jonathan Steffan 2024-07-15 17:11:02 UTC
The crate does have the issue.

<mock-chroot> sh-5.2# file README.md 
README.md: C source, ASCII text, with CRLF line terminators
<mock-chroot> sh-5.2# file src/raw/unix.rs 
src/raw/unix.rs: a [allow(clippy::let_unit_value)] script, ASCII text executable, with CRLF line terminators

Filed https://github.com/OpenByteDev/dlopen2/issues/13 and updated to fixup in %prep.

Spec URL: https://jsteffan.fedorapeople.org/envision/rust-dlopen2.spec
SRPM URL: https://jsteffan.fedorapeople.org/envision/rust-dlopen2-0.7.0-1.fc39/rust-dlopen2-0.7.0-1.fc40.src.rpm

Comment 7 Fedora Review Service 2024-07-16 16:50:20 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/7738891
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2292542-rust-dlopen2/fedora-rawhide-x86_64/07738891-rust-dlopen2/fedora-review/review.txt

Found issues:

- Upstream MD5sum check error, diff is in /var/lib/copr-rpmbuild/results/rust-dlopen2/diff.txt
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/

Please know that there can be false-positives.

---
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 Jonathan Steffan 2024-07-16 19:00:58 UTC
Fixed any source issues. I now build the srpms in an isolated _sourcedir. Sigh.

Spec URL: https://jsteffan.fedorapeople.org/envision/rust-dlopen2.spec
SRPM URL: https://jsteffan.fedorapeople.org/envision/rust-dlopen2-0.7.0-1.fc39/rust-dlopen2-0.7.0-1.fc40.src.rpm

[fedora-review-service-build]

Comment 9 Ben Beasley 2024-07-17 20:55:51 UTC
I feel like it would be better to run the tests that can be run rather than skipping everything. You just have to package rust-current_platform (which I’m happy to review, and should be trivial), and then you can write something like this in a rust2rpm.toml:

[tests]
comments = [
  "Skipped tests require an example shared library, sources for which are not included in the crate",
]
skip-exact = true
skip = [
  "example_address_info",
  "open_play_close_raw",
  "open_play_close_symbor",
  "open_play_close_symbor_api",
  "open_play_close_wrapper_api",
]

(I did test the above.)

Comment 10 Jonathan Steffan 2024-07-17 22:31:34 UTC
https://bugzilla.redhat.com/show_bug.cgi?id=2298528 I assume this needs to be installed on the machine that is running the rust2rpm with the rust2rpm.toml definition?

Comment 11 Ben Beasley 2024-07-17 22:37:28 UTC
(In reply to Jonathan Steffan from comment #10)
> https://bugzilla.redhat.com/show_bug.cgi?id=2298528 I assume this needs to
> be installed on the machine that is running the rust2rpm with the
> rust2rpm.toml definition?

Like any unpackaged dependency, it needs to be preinstalled in the mock chroot. There are a few ways to handle this, but something like

$ mock -r fedora-rawhide-x86_64 --clean
$ mock -r fedora-rawhide-x86_64 -i /path/to/built/dependency/*.noarch.rpm
$ fedpkg --release rawhide mockbuild --no-clean

or,

$ fedpkg --release rawhide mockbuild --no-clean --no-cleanup-after -- --postinstall

Or you can test in COPR.

Running rust2rpm just generates a spec file; it doesn’t require the package’s dependencies to be installed.

Comment 12 Jonathan Steffan 2024-07-17 22:56:45 UTC
Used the referenced rust2rpm.toml config (to be added to distgit) to generate a new spec that has the specific tests disabled.

Spec URL: https://jsteffan.fedorapeople.org/envision/rust-dlopen2.spec
SRPM URL: https://jsteffan.fedorapeople.org/envision/rust-dlopen2-0.7.0-1.fc39/rust-dlopen2-0.7.0-1.fc40.src.rpm

[fedora-review-service-build]

Comment 13 Fabio Valentini 2024-07-22 11:42:15 UTC
Looks good to me now, thank you!

Please consider adding the "--keepdate" flag to dos2unix to preserve modification time of these files.

===

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 disabled with justification)
✅ latest version of the crate is packaged
✅ license matches upstream specification and is acceptable for Fedora
🫤 license file is included with %license in %files (included manually from upstream repo)
✅ 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 14 Fedora Admin user for bugzilla script actions 2024-07-23 02:09:36 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/rust-dlopen2

Comment 15 Fedora Update System 2024-07-23 02:27:13 UTC
FEDORA-2024-f49d44988f (rust-dlopen2-0.7.0-2.fc41) has been submitted as an update to Fedora 41.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-f49d44988f

Comment 16 Fedora Update System 2024-07-23 02:30:31 UTC
FEDORA-2024-f49d44988f (rust-dlopen2-0.7.0-2.fc41) has been pushed to the Fedora 41 stable repository.
If problem still persists, please make note of it in this bug report.