Bug 2028188

Summary: Review Request: ocaml-mtime - Monotonic wall-clock time for OCaml
Product: [Fedora] Fedora Reporter: Jerry James <loganjerry>
Component: Package ReviewAssignee: Olivier Lemasle <o.lemasle>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: o.lemasle, package-review
Target Milestone: ---Flags: o.lemasle: fedora-review+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: ocaml-mtime-1.3.0-1.fc36 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-12-04 18:37: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:

Description Jerry James 2021-12-01 16:55:47 UTC
Spec URL: https://jjames.fedorapeople.org/ocaml-mtime/ocaml-mtime.spec
SRPM URL: https://jjames.fedorapeople.org/ocaml-mtime/ocaml-mtime-1.3.0-1.fc36.src.rpm
Fedora Account System Username: jjames
Description: Mtime has platform independent support for monotonic wall-clock time in pure OCaml.  This time increases monotonically and is not subject to operating system calendar time adjustments.  The library has types to represent nanosecond precision timestamps and time spans.

The additional Mtime_clock library provide access to a system monotonic clock.

Mtime has no dependencies.  Mtime_clock depends on your system library.

Comment 1 Olivier Lemasle 2021-12-03 18:17:27 UTC
- Package ocaml-mtime-devel includes both /usr/lib64/ocaml/mtime/mtime.ml and /usr/lib64/ocaml/mtime/mtime.mli, whereas the Fedora OCaml Packaging Guidelines state that for the -devel subpackage:

> .ml files are not normally included. The exception is if the file describes a module
> signature and there is no corresponding .mli file, then the .ml file should be
> included. (Note that Debian is more permissive and they often distribute *.ml files,
> allowing the programmer to peek at the implementation of a module).

Not being an OCaml developer, could you please tell me if there's a good reason to include the .ml file here?

- The tests are not executed, but only because they depend on non-packaged dependency.

Otherwise:

- Latest version is packaged (1.3.0)
- License ISC OK
- Package name OK
- Package builds in mock
- The spec, including changelog, conforms to the Packaging Guidelines and the OCaml Packaging Guidelines


Rpmlint results:

ocaml-mtime-debuginfo.x86_64: W: unstripped-binary-or-object /usr/lib/debug/.dwz/ocaml-mtime-1.3.0-1.fc36.x86_64
ocaml-mtime-debuginfo.x86_64: W: unstripped-binary-or-object /usr/lib/debug/usr/lib64/ocaml/mtime/mtime.cmxs-1.3.0-1.fc36.x86_64.debug
ocaml-mtime-debuginfo.x86_64: W: unstripped-binary-or-object /usr/lib/debug/usr/lib64/ocaml/mtime/mtime_top.cmxs-1.3.0-1.fc36.x86_64.debug
ocaml-mtime-debuginfo.x86_64: W: unstripped-binary-or-object /usr/lib/debug/usr/lib64/ocaml/mtime/os/mtime_clock.cmxs-1.3.0-1.fc36.x86_64.debug
ocaml-mtime-debuginfo.x86_64: W: unstripped-binary-or-object /usr/lib/debug/usr/lib64/ocaml/stublibs/dllmtime_clock_stubs.so-1.3.0-1.fc36.x86_64.debug
ocaml-mtime-debuginfo.x86_64: E: statically-linked-binary /usr/lib/debug/.dwz/ocaml-mtime-1.3.0-1.fc36.x86_64
ocaml-mtime-devel.x86_64: E: static-library-without-debuginfo /usr/lib64/ocaml/mtime/mtime.a
ocaml-mtime-devel.x86_64: E: static-library-without-debuginfo /usr/lib64/ocaml/mtime/mtime_top.a
ocaml-mtime-devel.x86_64: E: static-library-without-debuginfo /usr/lib64/ocaml/mtime/os/libmtime_clock_stubs.a
ocaml-mtime-devel.x86_64: E: static-library-without-debuginfo /usr/lib64/ocaml/mtime/os/mtime_clock.a
ocaml-mtime.x86_64: E: shared-library-without-dependency-information /usr/lib64/ocaml/mtime/mtime.cmxs
ocaml-mtime.x86_64: E: shared-library-without-dependency-information /usr/lib64/ocaml/mtime/mtime_top.cmxs
ocaml-mtime-debuginfo.x86_64: E: shared-library-without-dependency-information /usr/lib/debug/usr/lib64/ocaml/mtime/mtime.cmxs-1.3.0-1.fc36.x86_64.debug
ocaml-mtime-debuginfo.x86_64: E: shared-library-without-dependency-information /usr/lib/debug/usr/lib64/ocaml/mtime/mtime_top.cmxs-1.3.0-1.fc36.x86_64.debug
ocaml-mtime-debuginfo.x86_64: E: shared-library-without-dependency-information /usr/lib/debug/usr/lib64/ocaml/mtime/os/mtime_clock.cmxs-1.3.0-1.fc36.x86_64.debug
ocaml-mtime-debuginfo.x86_64: E: shared-library-without-dependency-information /usr/lib/debug/usr/lib64/ocaml/stublibs/dllmtime_clock_stubs.so-1.3.0-1.fc36.x86_64.debug
ocaml-mtime-debuginfo.x86_64: W: no-documentation
ocaml-mtime-debugsource.x86_64: W: no-documentation
ocaml-mtime-devel.x86_64: W: no-documentation
ocaml-mtime-debuginfo.x86_64: E: missing-PT_GNU_STACK-section /usr/lib/debug/.dwz/ocaml-mtime-1.3.0-1.fc36.x86_64
ocaml-mtime-debuginfo.x86_64: W: hidden-file-or-dir /usr/lib/debug/.dwz
ocaml-mtime-debuginfo.x86_64: W: hidden-file-or-dir /usr/lib/debug/.dwz
ocaml-mtime-debuginfo.x86_64: W: dangling-relative-symlink /usr/lib/debug/.build-id/8f/5e93351c169bac26642209d7f84aa368fb1e74 ../../../.build-id/8f/5e93351c169bac26642209d7f84aa368fb1e74
ocaml-mtime-debuginfo.x86_64: W: dangling-relative-symlink /usr/lib/debug/.build-id/cb/b576aa886fcb61d053f8be68bd22734bd0b8b4 ../../../.build-id/cb/b576aa886fcb61d053f8be68bd22734bd0b8b4
ocaml-mtime-debuginfo.x86_64: W: dangling-relative-symlink /usr/lib/debug/.build-id/df/3cce89fc1a859dcd0c2c2fa21c5e2dc1b872ba ../../../.build-id/df/3cce89fc1a859dcd0c2c2fa21c5e2dc1b872ba
ocaml-mtime-debuginfo.x86_64: W: dangling-relative-symlink /usr/lib/debug/.build-id/e9/e21ef5c86e3fed27a26ee75b248b90f504ec5e ../../../.build-id/e9/e21ef5c86e3fed27a26ee75b248b90f504ec5e

Comment 2 Jerry James 2021-12-03 20:48:46 UTC
You're right about the .ml files.  I was thinking the toplevel-related .ml files might be needed, but it looks like that is not the case.  I have removed them from the package.

The rpmlint messages did turn up the fact that the shared objects were not linked with Fedora linker flags.  I have corrected that, but some of the rpmlint warnings remain.  That's because most of the shared objects only need symbols from the OCaml runtime, not the C library, and rpmlint issues warnings and errors about such shared objects.  However, there is no error here.  The shared objects function as they should.

New URLs:

Spec URL: https://jjames.fedorapeople.org/ocaml-mtime/ocaml-mtime.spec
SRPM URL: https://jjames.fedorapeople.org/ocaml-mtime/ocaml-mtime-1.3.0-2.fc36.src.rpm

Comment 3 Olivier Lemasle 2021-12-03 22:41:34 UTC
Thanks for the changes.

Package is APPROVED.

rpmlint results:

ocaml-mtime-debuginfo.x86_64: W: unstripped-binary-or-object /usr/lib/debug/.dwz/ocaml-mtime-1.3.0-2.fc36.x86_64
ocaml-mtime-debuginfo.x86_64: W: unstripped-binary-or-object /usr/lib/debug/usr/lib64/ocaml/mtime/mtime.cmxs-1.3.0-2.fc36.x86_64.debug
ocaml-mtime-debuginfo.x86_64: W: unstripped-binary-or-object /usr/lib/debug/usr/lib64/ocaml/mtime/mtime_top.cmxs-1.3.0-2.fc36.x86_64.debug
ocaml-mtime-debuginfo.x86_64: W: unstripped-binary-or-object /usr/lib/debug/usr/lib64/ocaml/mtime/os/mtime_clock.cmxs-1.3.0-2.fc36.x86_64.debug
ocaml-mtime-debuginfo.x86_64: W: unstripped-binary-or-object /usr/lib/debug/usr/lib64/ocaml/stublibs/dllmtime_clock_stubs.so-1.3.0-2.fc36.x86_64.debug
ocaml-mtime-debuginfo.x86_64: E: statically-linked-binary /usr/lib/debug/.dwz/ocaml-mtime-1.3.0-2.fc36.x86_64
ocaml-mtime-devel.x86_64: E: static-library-without-debuginfo /usr/lib64/ocaml/mtime/mtime.a
ocaml-mtime-devel.x86_64: E: static-library-without-debuginfo /usr/lib64/ocaml/mtime/mtime_top.a
ocaml-mtime-devel.x86_64: E: static-library-without-debuginfo /usr/lib64/ocaml/mtime/os/libmtime_clock_stubs.a
ocaml-mtime-devel.x86_64: E: static-library-without-debuginfo /usr/lib64/ocaml/mtime/os/mtime_clock.a
ocaml-mtime.x86_64: E: shared-library-without-dependency-information /usr/lib64/ocaml/mtime/mtime_top.cmxs
ocaml-mtime-debuginfo.x86_64: E: shared-library-without-dependency-information /usr/lib/debug/usr/lib64/ocaml/mtime/mtime.cmxs-1.3.0-2.fc36.x86_64.debug
ocaml-mtime-debuginfo.x86_64: E: shared-library-without-dependency-information /usr/lib/debug/usr/lib64/ocaml/mtime/mtime_top.cmxs-1.3.0-2.fc36.x86_64.debug
ocaml-mtime-debuginfo.x86_64: E: shared-library-without-dependency-information /usr/lib/debug/usr/lib64/ocaml/mtime/os/mtime_clock.cmxs-1.3.0-2.fc36.x86_64.debug
ocaml-mtime-debuginfo.x86_64: E: shared-library-without-dependency-information /usr/lib/debug/usr/lib64/ocaml/stublibs/dllmtime_clock_stubs.so-1.3.0-2.fc36.x86_64.debug
ocaml-mtime-debuginfo.x86_64: W: no-documentation
ocaml-mtime-debugsource.x86_64: W: no-documentation
ocaml-mtime-devel.x86_64: W: no-documentation
ocaml-mtime-debuginfo.x86_64: E: missing-PT_GNU_STACK-section /usr/lib/debug/.dwz/ocaml-mtime-1.3.0-2.fc36.x86_64
ocaml-mtime.x86_64: W: library-not-linked-against-libc /usr/lib64/ocaml/mtime/mtime.cmxs
ocaml-mtime-debuginfo.x86_64: W: hidden-file-or-dir /usr/lib/debug/.dwz
ocaml-mtime-debuginfo.x86_64: W: hidden-file-or-dir /usr/lib/debug/.dwz
ocaml-mtime-debuginfo.x86_64: W: dangling-relative-symlink /usr/lib/debug/.build-id/58/02de16afd17908e49f466dd8c06c01cf104898 ../../../.build-id/58/02de16afd17908e49f466dd8c06c01cf104898
ocaml-mtime-debuginfo.x86_64: W: dangling-relative-symlink /usr/lib/debug/.build-id/5b/22d5407ad74465f83cf77c62eae821504ac4af ../../../.build-id/5b/22d5407ad74465f83cf77c62eae821504ac4af
ocaml-mtime-debuginfo.x86_64: W: dangling-relative-symlink /usr/lib/debug/.build-id/7f/ebeb394e23480d94bd78d873fd105241770073 ../../../.build-id/7f/ebeb394e23480d94bd78d873fd105241770073
ocaml-mtime-debuginfo.x86_64: W: dangling-relative-symlink /usr/lib/debug/.build-id/f3/c4a3da29daf2c3d28888c7ce7636196920e230 ../../../.build-id/f3/c4a3da29daf2c3d28888c7ce7636196920e230

Comment 4 Jerry James 2021-12-04 01:35:51 UTC
Thank you for the review!  https://pagure.io/releng/fedora-scm-requests/issue/38806

Comment 5 Gwyn Ciesla 2021-12-04 04:47:16 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/ocaml-mtime

Comment 6 Jerry James 2021-12-04 18:37:31 UTC
This package has been built in Rawhide.