https://bugzilla.redhat.com/show_bug.cgi?id=2453288

Ben Beasley <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]



--- Comment #3 from Ben Beasley <[email protected]> ---
Glancing at the spec file, I think you should consult
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_shared_libraries.
Shared libraries MUST be versioned via SONAME; no unversioned shared libraries
can be installed in the default linker path. We do have a few Rust-based shared
libraries. I can provide some good examples using cargo-c, e.g. rust-rav1e:

 
https://src.fedoraproject.org/rpms/rust-rav1e/blob/d9a574d39b3cebea0d1b05d64d30d51a0d9eb92a/f/rust-rav1e.spec

or rust-rustc-demangle-capi, where cargo-c support had to be patched in
downstream:

 
https://src.fedoraproject.org/rpms/rust-rustc-demangle-capi/blob/54e45c7b8e3c168b139a1f877759d1485a26d78f/f/rust-rustc-demangle-capi.spec

See also:

 
https://docs.fedoraproject.org/en-US/packaging-guidelines/Rust/#_building_shared_libraries_with_cargo_c

This is probably the easiest way for you to make a versioned shared library. I
am not sure what it would take to make it happen without cargo-c. You might
know more about this than I do.

We also don’t package static (.a) libraries at all unless there’s a technical
reason why we *need* them and can’t use the shared library:

 
https://docs.fedoraproject.org/en-US/packaging-guidelines/#packaging-static-libraries

If the static library is needed, I think it ought to be justified in a
spec-file comment, like:

 
https://src.fedoraproject.org/rpms/libfplll/blob/83e803542166d97d3255b22c473bca0cb2f25a6c/f/libfplll.spec#_167

The fact that %build is empty is a little weird, but I haven’t investigated
closely.

Currently, you have everything in the base package’s %files list, and aren’t
actually producing a binary -devel package.

The versioned shared library (once you have one) goes in the base package:

  %{_libdir}/libnsm.so.0.5{,.*}

The unversioned shared-library symbolic link, the header, and the pkgconfig
file go in the -devel subpackage (%files devel):

  %{_includedir}/nsm.h
  %{_libdir}/pkgconfig/libnsm.pc
  %{_libdir}/libnsm.so

The static library shouldn’t be shipped, if possible. If you must ship it, it
needs to go in a -static subpackage that Requires the -devel package with a
fully-versioned dependency, like
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_requiring_base_package.

  %{_libdir}/libnsm.a


-- 
You are receiving this mail because:
You are always notified about changes to this product and component
You are on the CC list for the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=2453288

Report this comment as SPAM: 
https://bugzilla.redhat.com/enter_bug.cgi?product=Bugzilla&format=report-spam&short_desc=Report%20of%20Bug%202453288%23c3

-- 
_______________________________________________
package-review mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it: 
https://forge.fedoraproject.org/infra/tickets/issues/new

Reply via email to