Bug 1477363

Summary: Review Request: ocaml-cmdliner - Declarative definition of command line interfaces for OCaml
Product: [Fedora] Fedora Reporter: Ben Rosser <rosser.bjr>
Component: Package ReviewAssignee: Andy Li <andy>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: andy, package-review, rjones
Target Milestone: ---Flags: andy: fedora-review+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-12-12 11:18:09 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: 1487877    
Bug Blocks: 1501992    

Description Ben Rosser 2017-08-01 21:29:07 UTC
Spec URL: https://tc01.fedorapeople.org/ocaml/opam/ocaml-cmdliner.spec
SRPM URL: https://tc01.fedorapeople.org/ocaml/opam/ocaml-cmdliner-1.0.0-1.20170801git8c4bc23.fc26.src.rpm

Description:

Cmdliner allows the declarative definition of command line
interfaces for OCaml.

It provides a simple and compositional mechanism to convert
command line arguments to OCaml values and pass them to your
functions. The module automatically handles syntax errors,
help messages and UNIX man page generation. It supports
programs with single or multiple commands and respects
most of the POSIX and GNU conventions.

Cmdliner has no dependencies and is distributed under
the ISC license.

Fedora Account System Username: tc01

This is one of a handful of dependencies for opam, the OCaml package manager.

There is an option in the makefile to build a "dynlink" native lib (https://caml.inria.fr/pub/docs/manual-ocaml/libref/Dynlink.html, I assume). I'm not sure if our guidelines want us to package these, so I have avoided doing so. It would be easy enough to enable.

Comment 1 Ben Rosser 2017-08-11 18:49:59 UTC
Upstream has since made an actual release incorporating the buildsystem changes that caused me to make a snapshot package.

Updated spec and SRPM:

Spec URL: https://tc01.fedorapeople.org/ocaml/opam/ocaml-cmdliner.spec
SRPM URL: https://tc01.fedorapeople.org/ocaml/opam/ocaml-cmdliner-1.0.2-1.fc25.src.rpm

Comment 2 Richard W.M. Jones 2017-08-11 19:31:39 UTC
Sorry, I meant to take this earlier ...

Comment 3 Richard W.M. Jones 2017-08-11 19:35:35 UTC
> %global opt %(test -x %{_bindir}/ocamlopt && echo 1 || echo 0)

Don't use this test.  Instead use the %{ocaml_native_compiler} macro
which lists arches that support the native compiler.  You use it like this:

  %ifarch %{ocaml_native_compiler}
  ... stuff needing ocamlopt ...
  %endif

> %global debug_package %{nil}

Most packages can create debuginfo.  Make sure that -g is passed to
every invocation of ocamlc, ocamlopt, ocamlmklib (and maybe others).

> %global _use_internal_dependency_generator 0
> %global __find_requires /usr/lib/rpm/ocaml-find-requires.sh
> %global __find_provides /usr/lib/rpm/ocaml-find-provides.sh

These lines are almost certainly wrong, just remove them.

Yes, I'm aware that the OCaml packaging guidelines are some distance
behind actual practice.  If you want to volunteer to update them ...

Comment 4 Ben Rosser 2017-08-11 19:59:46 UTC
Thanks for taking the review!

> Most packages can create debuginfo.  Make sure that -g is passed to
> every invocation of ocamlc, ocamlopt, ocamlmklib (and maybe others).

So cmdliner uses ocamlbuild (when it's not built via topkg). According to the ocamlbuild documentation it should be possible to set the 'debug' tag in order to generate debug information, so I attempted to modify the _tags file accordingly:

<src> : include, debug

(https://github.com/dbuenzli/cmdliner/blob/master/_tags)

However even after doing this no debuginfo information seems to get generated. Is there something else I need to do?

> Yes, I'm aware that the OCaml packaging guidelines are some distance
> behind actual practice.  If you want to volunteer to update them ...

I suspected this might be the case, but wasn't sure. :) If I have the time (once I finish the actual packaging), perhaps I'll take a look at doing that.

Anyway, I'll reupload the spec with the other fixes pending your response about debuginfo generation.

Comment 5 Richard W.M. Jones 2017-08-11 20:50:10 UTC
I believe you can change the ocamlbuild command line to add

  ocamlbuild ... -tag debug

(https://nicolaspouillard.fr/ocamlbuild/ocamlbuild-user-guide.html)

You'll also want to check what actual ocamlopt commands are being
executed to ensure that -g is passed to them all.

To check that debuginfo is being generated at all, look at the
*.o files.  For example:

  echo 'print_endline "hello world"' > test.ml
  ocamlopt.opt -g test.ml
  eu-readelf --debug-dump=info test.o

You should see entries such as ‘name’, ‘comp_dir’.

However if -g has been omitted then eu-readelf will give an error:

  eu-readelf: cannot get debug context descriptor: No DWARF information found

You can also run the same commands on executables.

Comment 6 Ben Rosser 2017-08-11 21:47:11 UTC
So it looks like setting true : debug (the equivalent of -tag debug, it seems) in the _tags file does indeed generate debuginfo in the *.o files. However the debuginfo package still doesn't get made.

Looking at _build/_log, it seems -g is passed to every step except the last ocamlopt invocation, for whatever reason:

https://paste.fedoraproject.org/paste/-Ww26xBbvH3meABH7ptf0A

It is not immediately clear to me why; for now I'm just going to upload the current version of the spec and get back to debugging this later.

Spec URL: https://tc01.fedorapeople.org/ocaml/opam/ocaml-cmdliner.spec
SRPM URL: https://tc01.fedorapeople.org/ocaml/opam/ocaml-cmdliner-1.0.2-2.fc26.src.rpm

- Attempt debuginfo generation by setting true : debug in tags file.
- Modernize ocaml packaging: use ocaml_native_compiler macro.
- Also remove old ocaml dependency generator scripts.

Comment 7 Richard W.M. Jones 2017-08-14 09:45:54 UTC
(In reply to Ben Rosser from comment #6)
> So it looks like setting true : debug (the equivalent of -tag debug, it
> seems) in the _tags file does indeed generate debuginfo in the *.o files.
> However the debuginfo package still doesn't get made.
> 
> Looking at _build/_log, it seems -g is passed to every step except the last
> ocamlopt invocation, for whatever reason:
> 
> https://paste.fedoraproject.org/paste/-Ww26xBbvH3meABH7ptf0A

The final link doesn't include -g so that's one problem:

ocamlfind ocamlopt -a -package bytes src/cmdliner_suggest.cmx src/cmdliner_trie.cmx src/cmdliner_base.cmx src/cmdliner_manpage.cmx src/cmdliner_info.cmx src/cmdliner_docgen.cmx src/cmdliner_msg.cmx src/cmdliner_cline.cmx src/cmdliner_term.cmx src/cmdliner_arg.cmx src/cmdliner.cmx -o src/cmdliner.cmxa

Comment 8 Richard W.M. Jones 2017-08-14 09:53:06 UTC
> %define libname ...

I believe that all %define should be %global because of a weirdness
of RPM (https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#.25global_preferred_over_.25define)

> # make build-native-dynlink; "make install" does it by default, not sure if
> # should be done here.

I'm guessing it should be done there.  Also note the
%{ocaml_natdynlink} macro which expands to the list of
architectures that support natdynlink (≠ list of architectures
supporting native compilation).

In addition, fedora-review complains about:

> [ ]: License field in the package spec file matches the actual license.
>      Note: Checking patched sources after %prep for licenses. Licenses
>      found: "ISC", "Unknown or generated", "*No copyright* Public domain".
>      34 files have unknown license. Detailed output of licensecheck in
>      [...]

As long as MIT is compatible with the license, then that's fine.

> [!]: Uses parallel make %{?_smp_mflags} macro.

Not all packages are compatible with parallel builds, but you should
check to see if it can be used and add a comment to the spec file if
there is a problem.

> [ ]: Spec use %global instead of %define unless justified.
>      Note: %define requiring justification: %define libname %(echo %{name}
>      | sed -e 's/^ocaml-//')

See above.

There are also some rpmlint errors, but they all seem to be irrelevant.

Generated dependencies look fine to me.

Comment 9 Ben Rosser 2017-08-15 16:43:34 UTC
> The final link doesn't include -g so that's one problem:

I've fixed this by passing -lflag -g to ocamlbuild, which does add -g to the link step (though as far as I can see, this shouldn't be necessary...), e.g. according to the build log:

ocamlfind ocamlopt -a -g -package bytes src/cmdliner_suggest.cmx src/cmdliner_trie.cmx src/cmdliner_base.cmx src/cmdliner_manpage.cmx src/cmdliner_info.cmx src/cmdliner_docgen.cmx src/cmdliner_msg.cmx src/cmdliner_cline.cmx src/cmdliner_term.cmx src/cmdliner_arg.cmx src/cmdliner.cmx -o src/cmdliner.cmxa

However... this still did not solve the problem. But then I, on a weird hunch, removed the "chmod -x" line from the install step and, magically, debuginfo was found... So I've made the chmod more granular to only set -x on the files RPM was actually complaining about and now everything seems to work!

> As long as MIT is compatible with the license, then that's fine.

Uh, my bad. :) For some reason I thought ISC == MIT (and indeed, they are very similar) but looking at our guidelines the "ISC" tag should be used here. So I'll just use License: ISC instead.

Here's the new version:

Spec URL: https://tc01.fedorapeople.org/ocaml/opam/ocaml-cmdliner.spec
SRPM URL: https://tc01.fedorapeople.org/ocaml/opam/ocaml-cmdliner-1.0.2-3.fc26.src.rpm

- Fix debuginfo generation by not blindly chmod -x all the files.
- Pass -g to the link step of ocamlbuild as well as the compilation step.
- Use ocaml_natdynlink macro to determine when to compile the *.cmxs files.
- Modify the makefile to use install -p instead of just install.
- Switch License tag to the more correct ISC license.
- Added parallel build macro to make invocation.
- Made libname macro a global rather than a define.

Should the natdylink library be in the -devel package instead of the main package? Currently it gets included in the main package.

Comment 10 Ben Rosser 2017-08-30 16:21:28 UTC
I should probably go ahead and actually package ocaml-result, now that jbuilder is needed for opam anyway (and also accepted).

Trying to build opam with jbuilder fails because I didn't remove "result" from cmdliner's META file. I can of course fix this by, well, removing result from cmdliner's META file, but result is likely to be needed by other OCaml packages anyway in the future.

Comment 11 Ben Rosser 2017-09-21 14:29:32 UTC
Now that ocaml-result is in Rawhide, I added a BR on ocaml-result-devel and no longer patch cmdliner to use Pervasives.result instead. I think this should now be ready for review (again).

Spec URL: https://tc01.fedorapeople.org/ocaml/opam/ocaml-cmdliner.spec
SRPM URL: https://tc01.fedorapeople.org/ocaml/opam/ocaml-cmdliner-1.0.2-4.fc26.src.rpm

(I did this a while ago but apparently never updated the review ticket, my bad!)

Comment 12 Ben Rosser 2017-11-02 15:23:09 UTC
Sorry to nag, but it's been a while... are you still planning to finish the review?

Comment 13 Richard W.M. Jones 2017-11-02 15:30:36 UTC
I was, but if you have someone else lined up who can do it then
go ahead and ask them.  I have been super-busy, but could probably
do it next week.

Comment 14 Ben Rosser 2017-11-02 15:35:16 UTC
No worries! There have been some review swap threads on devel@ recently and I was just wondering if I should offer a swap for this review. I don't think there's any great rush.

Comment 15 Andy Li 2017-11-20 06:43:42 UTC
I would like to do a gentle ping here since I'm interested in using opam in some of the ocaml libs I'm going to package.

Comment 16 Richard W.M. Jones 2017-11-20 12:02:43 UTC
I'm still making very slow progress through the OCaml rebuild in Fedora 28.
If I were you I'd go onto the Fedora devel list and offer to do a
"review swap" with someone.

Comment 17 Ben Rosser 2017-11-20 17:12:37 UTC
Andy, do you want to take the review then? I'd be happy to review swap for something in exchange.

Otherwise I'll ask the devel list.

Comment 18 Andy Li 2017-11-21 05:46:28 UTC
Yes, I will review it.

I have just realized that being in the packager group grants me the right to prove packages according to https://fedoraproject.org/wiki/Package_Review_Process

This is going to be my first review then :)

Comment 19 Andy Li 2017-11-21 06:21:43 UTC
Please revise:

 * You can copy the %doc line of ocaml-cmdliner to ocaml-cmdliner-devel to resolve "ocaml-cmdliner-devel.x86_64: W: no-documentation".

 * The devel package should "Requires: %{name}%{?_isa} = %{version}-%{release}"


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

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



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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

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: "ISC", "Unknown or generated", "*No copyright* Public domain".
     34 files have unknown license. Detailed output of licensecheck in
     /home/andy/Documents/ocaml-cmdliner/1477363-ocaml-
     cmdliner/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: Package does not own files or directories owned by other packages.
     Note: Dirs in package are owned also by: /usr/lib/.build-id(cups-
     client, efivar-libs, rsyslog, policycoreutils-python-utils, lz4-libs,
     qemu-block-gluster, rpm-plugin-selinux, abrt, libmediaart,
     libimagequant, giflib, libreoffice-graphicfilter, trousers, libdb-
     utils, tracker-miners, xorg-x11-font-utils, PackageKit-command-not-
     found, perl-Sys-Syslog, libcom_err, libseccomp, p11-kit, libabw,
     gtkspell, libvirt-daemon-driver-storage-iscsi, libmodman, argyllcms,
     parted, gnome-disk-utility, libdvdread, zstd, bluez-libs, libwebp,
     libxslt, system-config-printer-udev, perl-Encode, elfutils,
     python2-cryptography, libevdev, libgpg-error, lvm2-libs, perl-Digest-
     SHA, libzstd, gtk-murrine-engine, libdazzle, xdg-desktop-portal-gtk,
     lua-lpeg, symlinks, libcdr, mate-sensors-applet, e2fsprogs-libs,
     pulseaudio-libs, usermode-gtk, lcms2, qemu-guest-agent, ntfs-3g,
     libxcb, libyubikey, python3-pycurl, python3-brlapi, openconnect,
     rtkit, xcb-util-keysyms, sushi, libgphoto2, xcb-util, gvfs-fuse,
     python3-coverage, anaconda-widgets, http-parser, pulseaudio-utils,
     libeot, systemd-bootchart, perl-Time-Piece, dbusmenu-qt, ncurses-libs,
     polkit, ldns, libreport-plugin-logger, gnome-color-manager, fcoe-
     utils, libyui-mga-ncurses, xorg-x11-xkb-utils, ibus-hangul,
     NetworkManager-openvpn, libxkbfile, hplip-libs, libwvstreams,
     xmlrpc-c-client, sane-backends-drivers-cameras, python3-hawkey,
     libwpd, libvirt-daemon-driver-qemu, mbedtls, perl-Time-HiRes, qemu-
     block-ssh, libwps, gssdp, gnome-calendar, libacl, xorg-x11-drv-ati,
     libSM, policycoreutils, mcelog, abrt-plugin-bodhi, libmusicbrainz5,
     pptp, gnote, sane-backends-drivers-scanners, libXxf86misc, foomatic,
     colord-gtk, nspr, libicu-devel, rpm-build, libvirt-daemon-driver-
     storage-sheepdog, pygtk2, libglvnd-gles, rpm-plugin-systemd-inhibit,
     setroubleshoot, gstreamer1, gom, gmime30, dbus-libs, libreoffice-gtk3,
     libreoffice-gtk2, cairo-gobject, gnome-screenshot, gutenprint,
     usermode, qpdf-libs, linux-atm-libs, libedit, openssh, libvirt-
     gconfig, python3-cairo, accountsservice, isl, hfsplus-tools,
     ImageMagick, perl-IPC-SysV, gssproxy, mesa-libGLU, libblockdev-btrfs,
     libatomic_ops, gupnp-av, caja-extensions, gstreamer-tools, libmpcdec,
     gtk-update-icon-cache, python3-iscsi-initiator-utils, libyui-ncurses,
     libvirt-daemon-driver-interface, NetworkManager, liblangtag,
     NetworkManager-glib, NetworkManager-l2tp-gnome, libdatrie, glade-libs,
     setuptool, gstreamer-plugins-good, guile, pcre-utf16, tree, isdn4k-
     utils, gvfs-goa, pipewire, gnupg, cronie-anacron, xfsprogs, libcroco,
     NetworkManager-iodine, telepathy-glib, plymouth-plugin-label, colord-
     libs, perl-Unicode-Collate, totem-pl-parser, gpgmepp, libgcab1,
     libzhuyin, gvnc, hypervfcopyd, cronie, caja-image-converter, rpm-libs,
     libreport, nettle, libcacard, libverto-libev, colord, libpipeline,
     pkcs11-helper, accountsservice-libs, gnome-system-monitor, findutils,
     popt, python2-xpyb, qt5-qtx11extras, libsss_idmap, imsettings-
     gsettings, libraw1394, folks, gnome-clocks, python3-dbus, iproute-tc,
     libipa_hbac, gamin, spice-glib, woff2, coolkey, dotconf, luajit,
     libXfont, PackageKit-glib, patch, sqlite-libs, lttng-ust, enchant,
     libXxf86dga, rhash, xdg-user-dirs-gtk, libwayland-client, pinentry-
     gnome3, libsmbios, libXres, mdadm, xl2tpd, device-mapper,
     python2-librepo, libXtst, python2-setproctitle, irqbalance, gnome-
     terminal, GeoIP, libsigc++20, python2-talloc, dconf-editor, libXrandr,
     newt, liba52, hplip, python2-libuser, cyrus-sasl-scram, crda, libical,
     sheepdog, qt5-qtdeclarative, libofa, libXfont2, libblockdev-loop,
     libssh2, NetworkManager-adsl, open-vm-tools-desktop, samba-dc-libs,
     libXcursor, iio-sensor-proxy, bridge-utils, webkitgtk4-plugin-process-
     gtk2, procps-ng, plymouth-core-libs, telnet, simple-scan, libXpm,
     xorg-x11-drv-nouveau, bluez-obexd, mate-screenshot, libpeas, pam_krb5,
     gutenprint-cups, grub2-tools-efi, avahi, libselinux, libassuan, expat,
     cups-filters, iw, clutter-gtk, userspace-rcu, wavpack, python3-yui,
     ibus-libpinyin, setroubleshoot-server, make, python3-markupsafe,
     libnice, libsoup, libetpan, glusterfs-api, fuse, perl-Net-SSLeay,
     perl-Filter, cups-libs, mate-session-manager, libappstream-glib,
     libsepol, efivar, gzip, python3-cangjie, keyutils, isomd5sum,
     libfdisk, libdmx, openssl-libs, corosynclib, opencc, libreport-plugin-
     reportuploader, gavl, shotwell, ipset, mate-system-log, libyui-gtk,
     keybinder3, deltarpm, fuse-libs, xorg-x11-xauth, libglvnd-glx, gvfs-
     smb, gtkspell3, python2-caja, libcue, libXrender, json-glib,
     libX11-xcb, libfontenc, libicu, libgsf, xorg-x11-drv-vmware, sssd-
     common, NetworkManager-openconnect, libgtop2, btrfs-progs,
     bind99-libs, wvdial, perl-Devel-PPPort, protobuf-c, sni-qt, mesa-
     libglapi, glx-utils, evolution-data-server, PackageKit,
     libmateweather, perl-MIME-Base64, engrampa, wpa_supplicant, libstdc++,
     ppp, git, perl-Compress-Raw-Bzip2, mpg123-libs, opus, git-core,
     libxklavier, traceroute, cyrus-sasl-plain, libblockdev-crypto, pcsc-
     lite-ccid, libreoffice-pdfimport, mate-notification-daemon, rp-pppoe,
     libtheora, attr, mtr, gtksourceview2, gtksourceview3, pugixml,
     libcanberra-gtk2, libcanberra-gtk3, gstreamer1-plugins-bad-free-gtk,
     mtdev, libmspack, systemd-udev, libXvMC, wmctrl, cheese-libs, libXmu,
     smartmontools, jasper-libs, librbd1, mate-screensaver, device-mapper-
     libs, xorg-x11-xinit, marisa, libogg, libffi, pcre-utf32,
     python2-hawkey, diffutils, chrony, time, mpfr, caja-beesu, cyrus-sasl-
     md5, iputils, qt5-qtxmlpatterns, numactl-libs, mariadb-
     connector-c-devel, libvirt-daemon-driver-nwfilter, recode, libwmf-
     lite, tigervnc-server-minimal, gpgme, ninja-build, hypervvssd,
     xorg-x11-drv-openchrome, libmcpp, libibverbs, gdb-headless, dleyna-
     core, qemu-block-nfs, libgovirt, libqmi-utils, libmbim-utils, psacct,
     lame-libs, gnome-bluetooth-libs, usbredir, libtirpc, iptables-libs,
     mate-dictionary, cryptsetup-libs, bind-libs, pygobject2, mesa-
     libwayland-egl, ghostscript-x11, lua-posix, libinput, libreport-cli,
     libpkgconf, python3-dmidecode, libyui-mga, abrt-gui-libs, libosinfo,
     corosync, im-chooser, qt5-qtsvg, libreoffice-calc, libqmi, gawk,
     dmraid-events, pcsc-lite-libs, adwaita-gtk2-theme, libbasicobjects,
     gdk-pixbuf2-devel, baobab, rdma-core, vte291, libgweather, sssd-krb5,
     qemu-block-iscsi, perl-Devel-Peek, brotli, filezilla, libgrss, httpd,
     libsmbclient, file-roller-nautilus, transmission-gtk, libvdpau,
     python2-cddb, compat-openssl10, abrt-addon-kerneloops, gnome-maps,
     mate-system-monitor, network-manager-applet, openCOLLADA, xcb-util-
     renderutil, sssd-ad, lightdm, libpinyin, freetype, logrotate, rdist,
     scl-utils, libdnet, atril-libs, ntfsprogs, abrt-libs, libgdither,
     samba-common-libs, libreswan, libpsl, python3-rpm, nautilus-sendto,
     fwupdate-libs, jimtcl, libuser, NetworkManager-libreswan, libnotify,
     abrt-retrace-client, opensc, boost-date-time, libglade2, satyr,
     caribou-gtk3-module, gnome-font-viewer, gtk2-immodule-xim, xorg-x11
     -drv-vesa, libbluray, brltty, texlive-lib, libbabeltrace, vpnc,
     psmisc, net-snmp-libs, xorg-x11-drv-libinput, libsss_certmap,
     libblockdev-mpath, cairo, libgcc, gdisk, ilmbase, perl-Compress-Bzip2,
     poppler, libstemmer, djvulibre-libs, marco-libs, claws-mail, ibus-
     libzhuyin, fftw-libs-double, net-tools, ModemManager, abrt-gui, ibus-
     m17n, qemu-img, qt5-qtbase-gui, sgpio, orc, libidn2, libuuid, ocaml,
     libarchive, libfreehand, ibus-gtk3, ibus-gtk2, python2-libselinux,
     cryptsetup, udisks2, clucene-contribs-lib, paps-libs, tcp_wrappers,
     xz, libXcomposite, caja-sendto, vconfig, mtools, beesu, vim-minimal,
     harfbuzz-icu, libplist, checkpolicy, xdg-user-dirs, glusterfs-libs,
     spice-server, gdk-pixbuf2, gupnp, authconfig, libevent, redland,
     python2-cccolutils, tcpdump, gnome-characters, control-center,
     libblockdev-kbd, imsettings-qt, libblockdev, librdmacm, lua-socket,
     dconf, xz-libs, dbus-glib, PackageKit-gtk3-module, libdvdnav, libcap,
     libvirt-daemon-driver-storage-zfs, libwbclient, libvirt-daemon-driver-
     storage-gluster, numad, mod_http2, libthai, fakeroot, gnome-session,
     nss-tools, adcli, iproute, python2-gpg, libsmartcols, gsound,
     fakeroot-libs, pluma, xfburn, os-prober, ethtool, info, libfprint,
     systemd-libs, cpio, libfdt, util-linux, libburn, imsettings, OpenEXR-
     libs, krb5-libs, gnome-online-accounts, libconfig, enca, libblockdev-
     part, libpciaccess, clucene-core, libsss_autofs, kmod, NetworkManager-
     ssh-gnome, NetworkManager-pptp, libetonyek, plymouth, gnome-user-
     share, sssd-client, libgxps, gnome-bluetooth, libpagemaker, highlight,
     libxkbcommon, device-mapper-multipath-libs, yajl, lockdev, cups-
     filters-libs, geocode-glib, lpsolve, gnome-terminal-nautilus, xorg-x11
     -server-utils, gnupg2, libstorj, evince-libs, libepubgen, libdnf,
     abrt-addon-pstoreoops, gnome-keyring, pulseaudio-libs-glib2, libnice-
     gstreamer1, nm-connection-editor, mate-disk-usage-analyzer,
     python3-pyparted, libudisks2, gstreamer1-plugins-bad-free,
     NetworkManager-libreswan-gnome, python3-setools, clutter, zenity,
     rhythmbox, chkconfig, libgnome-keyring, hostname, iscsi-initiator-
     utils, gparted, librados2, libvirt-daemon-driver-storage-mpath, pam,
     python2-gstreamer, python2-cffi, openldap, evince-nautilus, ipcalc,
     NetworkManager-team, speex, libvirt-daemon-driver-storage-logical,
     ibus-wayland, neon, rest, libsamplerate, python2-lxml, NetworkManager-
     vpnc-gnome, boost-iostreams, poppler-utils, samba, libwpg, zfs-fuse,
     imsettings-mate, libusbmuxd, perl-Unicode-Normalize, gperftools-libs,
     libimobiledevice, lzop, NetworkManager-wwan, polkit-pkla-compat,
     libmtp, compface, librevenge, hexchat, libpath_utils, gjs, python3
     -gobject-base, gnome-settings-daemon, dnsmasq, geoclue2-libs,
     libXfixes, nekovm, libblkid, libcdio, NetworkManager-l2tp, rsync,
     gnome-software, webkitgtk4-jsc, lua-libs, abrt-addon-coredump-helper,
     soundtouch, xorg-x11-drv-evdev, libpeas-gtk, libXinerama, libteam,
     vim-enhanced, libcmis, elfutils-libs, acl, iodine-client, mate-panel-
     libs, libcangjie, libkadm5, ocaml-runtime, gupnp-igd, gstreamer-
     plugins-base, libgee, libXxf86vm, mesa-libEGL, systemd-pam, libyui-
     mga-qt, perl-Storable, perl-Digest-MD5, gvfs-gphoto2, perl-Sort-Key,
     libvirt-daemon-driver-storage-rbd, libnfsidmap, nss-util, libsemanage,
     cracklib, mozjs52, systemd-container, libcomps, at, gtk3-immodule-xim,
     libblockdev-fs, java-1.8.0-openjdk-headless, libnma, gettext,
     pcre2-utf32, soxr, espeak, libvirt-gobject, libutempter, libmetalink,
     slang, libref_array, gnome-keyring-pam, pulseaudio, e2fsprogs,
     libcdio-paranoia, grub2-tools-minimal, cpp, libksba, libwayland-
     server, virglrenderer, gdbm, libpurple, osinfo-db-tools, libsndfile,
     libvisio, bzip2-libs, NetworkManager-iodine-gnome, sshpass, gnutls,
     libyui-mga-gtk, device-mapper-persistent-data, ykpers, libselinux-
     utils, mate-calc, perl-Scalar-List-Utils, dosfstools, rng-tools,
     gnome-abrt, libspectre, compat-openssl10-pkcs11-helper, nano,
     keyutils-libs, libproxy, sssd-common-pac, libreoffice-math,
     libtimezonemap, audit-libs-python3, perl-Data-Dumper, glusterfs-fuse,
     plymouth-graphics-libs, pidgin, anaconda-core, libmatemixer,
     libatasmart, fortune-mod, mlocate, file-libs, grub2-tools, avahi-glib,
     mokutil, libblockdev-swap, libnetfilter_conntrack, python3-gobject,
     libev, frei0r-plugins, fprintd-pam, gmime, libusbx, NetworkManager-
     openvpn-gnome, qrencode-libs, libICE, libgexiv2, drpm, createrepo_c-
     libs, grilo, perl-Compress-Raw-Zlib, speexdsp, upower, p7zip,
     libreoffice-x11, nautilus, xcb-util-wm, gtk2-devel, atk, dbxtool,
     alsa-lib, libwnck3, python2-gobject, gtkmm24, libvirt-daemon-driver-
     storage-disk, brasero-libs, mesa-dri-drivers, pyliblzma, python3-abrt,
     libgnomekbd, NetworkManager-ssh, ocaml-ocamlbuild, ibus-rawcode,
     pciutils, libini_config, openssh-clients, libX11, mate-desktop-libs,
     celt051, kyotocabinet-libs, python3-pwquality, gvfs-mtp,
     python3-cryptography, systemd, libnl3, libnatpmp, libidn, grubby,
     python3-libreport, epiphany-runtime, libbytesize, samba-common-tools,
     qemu-block-rbd, python3-systemd, mate-panel, libnl3-cli, ibus-libs,
     python2-libcomps, audit-libs, cyrus-sasl-devel, bluez, gettext-libs,
     liborcus, caja-open-terminal, gvfs-afp, gvfs-afc, switcheroo-control,
     fwupd, raptor2, libyui, libcrypt-nss, plymouth-plugin-two-step, sbc,
     qt-x11, libsane-hpaio, libhangul, bash, poppler-glib, libgpod,
     seahorse, environment-modules, libblockdev-lvm, lvm2, harfbuzz, cups,
     dmraid, python3-wrapt, gvfs-client, NetworkManager-libnm,
     python2-libs, ibus-qt, gnome-boxes, ocaml-findlib, lrzsz, libglvnd-
     egl, libunwind, unbound-libs, dhcp-libs, libtalloc, libtar,
     hypervkvpd, libepoxy, perl-Variable-Magic, man-db, python2-dbus,
     gedit, libvirt-daemon-driver-storage-core, libzapojit, mesa-libgbm,
     boost-locale, liblogging-stdlog, timedatex, fltk, xdg-desktop-portal,
     sssd-nfs-idmap, rasqal, wireless-tools, libdb, passwd, cups-pk-helper,
     quota, kmod-libs, libdv, gutenprint-libs, lm_sensors-libs,
     libreoffice-writer, desktop-file-utils, libXdamage, xorg-x11-utils,
     libmwaw, exo, libcryptui, dleyna-connector-dbus, gtkmm30, libxfce4ui,
     gobject-introspection, libpwquality, fontconfig, mate-applets,
     libblockdev-dm, python3-sip, meanwhile, perl-Math-BigInt-FastCalc,
     evince-djvu, grep, libdaemon, mariadb-connector-c, evince, flatpak,
     python3-librepo, pkgconf, vino, json-c, sed, sssd-ipa,
     pygtk2-libglade, perl-threads-shared, glib-networking, samba-libs,
     python3-qt5-base, kpartx, libpng, ghostscript-core, sane-backends-
     libs, python3-pillow, ostree-libs, cyrus-sasl, hardlink,
     libcollection, pakchois, libgcrypt, libsolv, cairomm, perl-Unicode-
     UTF8, nss-softokn, geoclue2, lsof, binutils, libreoffice-impress,
     gnome-online-miners, gucharmap, adwaita-qt4, adwaita-qt5, xorg-x11
     -server-Xorg, usbmuxd, libmbim, perl-IO, libverto, glibmm24,
     libXScrnSaver, realmd, libmspub, ncurses, nfs-utils, graphite2,
     python3-kerberos, perl-version, libreport-plugin-kerneloops,
     gstreamer-plugins-bad-free, gmp, sssd-krb5-common, volume_key-libs,
     b43-fwcutter, farstream02, mate-settings-daemon, alsa-plugins-
     pulseaudio, perl-interpreter, bluez-cups, libcurl, coreutils, libcap-
     ng, gvfs, dbus-x11, pinentry, libvirt-daemon-driver-storage-scsi,
     librepo, nautilus-extensions, qemu-common, gsm, libuv, boost-
     filesystem, libtevent, libchamplain, libglvnd, gnome-documents-libs,
     boost-system, libpcap, wxBase3, im-chooser-common, snappy, marco,
     libgadu, clutter-gst2, clutter-gst3, cyrus-sasl-lib, atril, libdrm,
     genisoimage, mate-applet-softupd, pcre2, mate-control-center,
     xmlrpc-c, jsoncpp, perl-TermReadKey, cogl, rygel, libpng-devel,
     python3-PyYAML, libvirt-glib, telepathy-logger, libssh, GConf2, glibc,
     flatpak-libs, fipscheck, bc, gtk-vnc2, gnome-calculator, wget,
     openssl, libreport-web, libgomp, libexif, libvirt-daemon-driver-
     secret, tigervnc, libgusb, glib2, python2-libxml2, qemu-
     system-x86-core, ImageMagick-libs, startup-notification, pcre2-utf16,
     libmnl, libzmf, libmng, nss, pcre, libchamplain-gtk, tcp_wrappers-
     libs, sane-backends, gstreamer1-plugins-base, speech-dispatcher,
     pciutils-libs, libiptcdata, libmpc, libXi, file-roller, openjpeg2,
     flac-libs, libXt, libXv, libexttextcat, libreofficekit, libnfnetlink,
     libiec61883, gstreamer, device-mapper-event, libusal, libreport-
     plugin-bugzilla, qt5-qtbase, libpskc, linux-atm, ibus, jwhois, qemu-
     block-dmg, libsss_sudo, curl, yelp-libs, cmake, libdmapsharing, gcc-
     gdb-plugin, caja-actions, fipscheck-lib, pilot-link-libs, mate-search-
     tool, python2-pycurl, dos2unix, python3-setproctitle, paps,
     libstaroffice, abrt-tui, ustr, abrt-addon-xorg, libdhash, gucharmap-
     libs, mate-power-manager, caribou, sssd-proxy, imsettings-libs, totem,
     gd, gc, python3-cups, libxshmfence, libreport-plugin-systemd-journal,
     gstreamer1-plugins-ugly-free, unzip, gtk2, gtk3, libmatekbd, libv4l,
     atkmm, npth, perl-Params-Util, libyaml, libXau, gspell, xcb-util-
     image, m17n-lib, mozjs17, libfilezilla, libblockdev-mdraid, glusterfs,
     exiv2-libs, libunistring, dleyna-server, qgnomeplatform, gstreamer1
     -plugins-good, python2-rpm, libasyncns, qemu-block-curl, device-
     mapper-multipath, c-ares, xmlsec1-openssl, python2-cairo, gfbgraph,
     NetworkManager-pptp-gnome, jansson, bind-utils, librsvg2, firefox,
     alsa-utils, apr, libsss_nss_idmap, gupnp-dlna, trousers-lib, zip,
     webrtc-audio-processing, bcache-tools, libproxy-mozjs, python3-psutil,
     mate-menus-libs, libqxp, harfbuzz-devel, bubblewrap, libtasn1,
     jbigkit-libs, libe-book, iptables, sqlite, tar, sudo, speech-
     dispatcher-espeak, dhcp-client, fprintd, pinentry-gtk, gcc, dwz,
     xorg-x11-drv-qxl, gcr, ebtables, libyui-qt, avahi-libs, pigz, libquvi,
     gvfs-archive, libao, perl-libs, lz4, kbd, libreoffice-core, libphodav,
     libwayland-cursor, openvpn, libwacom, python2-kerberos, pango, libss,
     krb5-devel, mod_dnssd, dbus, polkit-libs, perl-threads, perl-Params-
     Validate, python2-newt, pangomm, mesa-libxatracker, nss-sysinit,
     LibRaw, nss-mdns, python3-cffi, pygtksourceview, at-spi2-core,
     libvirt-daemon-driver-network, glibc-common, liblockfile, gnome-
     autoar, python3-libxml2, libnfs, stoken-libs, gnome-contacts,
     libiscsi, groff-base, python-pwquality, libusb, atril-caja, mesa-
     libGL, abrt-addon-ccpp, libldb, bind-libs-lite, NetworkManager-vpnc,
     libvirt-daemon-driver-nodedev, libipt, libcanberra, pcsc-lite, mate-
     media, PackageKit-gstreamer-plugin, libgudev, xorg-x11-drv-wacom,
     libsrtp, perl-Package-Stash-XS, samba-client-libs, which, boost-
     chrono, zlib, samba-client, libaio, lua-expat, gstreamer-plugins-
     espeak, libxfce4util, libshout, python2-krbv, brlapi, createrepo_c,
     libreport-gtk, liboauth, xmlsec1, isns-utils-libs, libwsman1,
     krb5-workstation, mcpp, nmap-ncat, lksctp-tools, libgltf,
     usb_modeswitch, mythes, evolution, NetworkManager-wifi, qt,
     libfastjson, kexec-tools, mate-desktop, mate-terminal, libpeas-loader-
     python, caja-wallpaper, teamd, libvorbis, lightdm-gobject,
     NetworkManager-openconnect-gnome, rpcbind, pcre-cpp,
     python3-libselinux, libodfgen, liblouis, exiv2, libestr, lua, caja,
     hunspell, libpeas-loader-python3, llvm-libs, gnome-logs, pulseaudio-
     module-bluetooth, libvirt-libs, passwdqc, libXft, libattr, hyphen,
     p7zip-plugins, gnupg2-smime, webkitgtk4, caja-share, rpm, sssd-ldap,
     iptstate, glib2-devel, libreport-plugin-ureport, radvd, python3-lxml,
     python3-libs, glusterfs-cli, perl-PathTools, ipset-libs, perl-Devel-
     Size, bluez-tools, mozjs38, gnome-menus, glusterfs-client-xlators,
     libreoffice-pyuno, file, libxml2, libgepub, libreoffice-ure, iscsi-
     initiator-utils-iscsiuio, slick-greeter, cyrus-sasl-gssapi, mpage,
     libnm-gtk, mousetweaks, libvirt-daemon, libsecret, gtk2-engines, p11
     -kit-trust, NetworkManager-bluetooth, augeas-libs, libsysfs, audit,
     abrt-dbus, gnome-desktop3, gdk-pixbuf2-modules, at-spi2-atk, xfconf,
     xen-libs, libisofs, nss-pem, vim-common, lzo, less, cifs-utils,
     libvpx, tcl, rpm-build-libs, libnghttp2, util-linux-user, totem-
     nautilus, libXNVCtrl, exempi, libxkbcommon-x11, libtdb, python3-gpg,
     libXdmcp, perl-Socket, apr-util, libvisual, python3, python2, gpm-
     libs, minicom, xorg-x11-server-Xwayland, perl-DB_File, shared-mime-
     info, httpd-tools, SDL2, libsigsegv, boost-thread, caribou-
     gtk2-module, grilo-plugins, shadow-utils, boost-random, libcgroup,
     cheese, netcf-libs, libgdata, pulseaudio-module-x11, dmidecode,
     python3-libcomps, libjpeg-turbo, spice-gtk3, libmount, spice-vdagent,
     xorg-x11-drv-fbdev, libqb, libavc1394, lldpad, libtiff,
     python3-libsemanage, sg3_utils-libs, ima-evm-utils, mate-polkit,
     tracker, ed, libmx, python2-gobject-base, grub2-tools-extra,
     transmission-common, openssh-server, mutter, taglib, libXext,
     libblockdev-utils, ModemManager-glib, dracut, ostree, device-mapper-
     event-libs, initscripts, cdparanoia-libs, libieee1284, wxGTK3, libndp,
     usbutils, bzip2, elfutils-libelf, nss-softokn-freebl, open-vm-tools,
     evolution-ews, libtool-ltdl, readline, eog, yelp, xorg-x11-drv-intel,
     eom, abrt-java-connector, passwdqc-lib, parole), /usr/lib/.build-id/65
     (openssh-clients, libvirt-daemon-driver-storage-logical, colord,
     gstreamer1-plugins-bad-free, ImageMagick-libs, evince-libs, rsyslog,
     libmspack, NetworkManager-vpnc-gnome, openssl-libs, glibc,
     python2-cryptography, shadow-utils, gstreamer1-plugins-base, frei0r-
     plugins, python2-libs, gvfs, pam, smartmontools, perl-Data-Dumper,
     libreoffice-calc, ibus-m17n, samba-client-libs, mythes, libtheora,
     evolution, evolution-data-server, libabw, device-mapper-event-libs,
     device-mapper-multipath-libs, python3-rpm, libselinux-utils)
[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.
[x]: 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]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 20480 bytes in 2 files.
[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: There are rpmlint messages (see attachment).
[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]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[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]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[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]: Packages must not store files under /srv, /opt or /usr/local

Ocaml:
[x]: This should never happen

===== 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 ocaml-
     cmdliner-devel , ocaml-cmdliner-debuginfo , ocaml-cmdliner-debugsource
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[?]: Package should compile and build into binary rpms on all supported
     architectures.
[?]: %check is present and all tests pass.
[?]: 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]: Uses parallel make %{?_smp_mflags} macro.
[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 debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: ocaml-cmdliner-1.0.2-4.fc28.x86_64.rpm
          ocaml-cmdliner-devel-1.0.2-4.fc28.x86_64.rpm
          ocaml-cmdliner-debuginfo-1.0.2-4.fc28.x86_64.rpm
          ocaml-cmdliner-debugsource-1.0.2-4.fc28.x86_64.rpm
          ocaml-cmdliner-1.0.2-4.fc28.src.rpm
ocaml-cmdliner.x86_64: W: spelling-error %description -l en_US compositional -> com positional, com-positional, composition
ocaml-cmdliner-devel.x86_64: W: no-documentation
ocaml-cmdliner-debugsource.x86_64: W: no-documentation
ocaml-cmdliner.src: W: spelling-error %description -l en_US compositional -> com positional, com-positional, composition
5 packages and 0 specfiles checked; 0 errors, 4 warnings.




Rpmlint (debuginfo)
-------------------
Checking: ocaml-cmdliner-debuginfo-1.0.2-4.fc28.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
sh: /usr/bin/python: No such file or directory
ocaml-cmdliner-devel.x86_64: W: invalid-url URL: https://github.com/dbuenzli/cmdliner/ <urlopen error [Errno -2] Name or service not known>
ocaml-cmdliner-devel.x86_64: W: no-documentation
ocaml-cmdliner.x86_64: W: spelling-error %description -l en_US compositional -> com positional, com-positional, composition
ocaml-cmdliner.x86_64: W: invalid-url URL: https://github.com/dbuenzli/cmdliner/ <urlopen error [Errno -2] Name or service not known>
ocaml-cmdliner-debugsource.x86_64: W: invalid-url URL: https://github.com/dbuenzli/cmdliner/ <urlopen error [Errno -2] Name or service not known>
ocaml-cmdliner-debugsource.x86_64: W: no-documentation
ocaml-cmdliner-debuginfo.x86_64: W: invalid-url URL: https://github.com/dbuenzli/cmdliner/ <urlopen error [Errno -2] Name or service not known>
4 packages and 0 specfiles checked; 0 errors, 7 warnings.



Requires
--------
ocaml-cmdliner-devel (rpmlib, GLIBC filtered):
    ocaml-cmdliner

ocaml-cmdliner (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    ocaml(Array)
    ocaml(Buffer)
    ocaml(Bytes)
    ocaml(CamlinternalFormatBasics)
    ocaml(CamlinternalLazy)
    ocaml(Char)
    ocaml(Filename)
    ocaml(Format)
    ocaml(Int32)
    ocaml(Int64)
    ocaml(Lazy)
    ocaml(List)
    ocaml(Map)
    ocaml(Nativeint)
    ocaml(Pervasives)
    ocaml(Printexc)
    ocaml(Printf)
    ocaml(Result)
    ocaml(Set)
    ocaml(String)
    ocaml(Sys)
    ocaml(runtime)
    rtld(GNU_HASH)

ocaml-cmdliner-debugsource (rpmlib, GLIBC filtered):

ocaml-cmdliner-debuginfo (rpmlib, GLIBC filtered):



Provides
--------
ocaml-cmdliner-devel:
    ocaml-cmdliner-devel
    ocaml-cmdliner-devel(x86-64)

ocaml-cmdliner:
    ocaml(Cmdliner)
    ocaml(Cmdliner_arg)
    ocaml(Cmdliner_base)
    ocaml(Cmdliner_cline)
    ocaml(Cmdliner_docgen)
    ocaml(Cmdliner_info)
    ocaml(Cmdliner_manpage)
    ocaml(Cmdliner_msg)
    ocaml(Cmdliner_suggest)
    ocaml(Cmdliner_term)
    ocaml(Cmdliner_trie)
    ocaml-cmdliner
    ocaml-cmdliner(x86-64)

ocaml-cmdliner-debugsource:
    ocaml-cmdliner-debugsource
    ocaml-cmdliner-debugsource(x86-64)

ocaml-cmdliner-debuginfo:
    debuginfo(build-id)
    ocaml-cmdliner-debuginfo
    ocaml-cmdliner-debuginfo(x86-64)



Source checksums
----------------
https://github.com/dbuenzli/cmdliner/archive/v1.0.2/ocaml-cmdliner-1.0.2.tar.gz :
  CHECKSUM(SHA256) this package     : 1854ba41a8a402b3f3a9127aa08fea05445e1021da8267d4f587d7c26bd5c0eb
  CHECKSUM(SHA256) upstream package : 1854ba41a8a402b3f3a9127aa08fea05445e1021da8267d4f587d7c26bd5c0eb


Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
Command line :/usr/bin/fedora-review -b 1477363 -m fedora-rawhide-x86_64
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, Shell-api, Ocaml, C/C++
Disabled plugins: Java, Python, SugarActivity, fonts, Haskell, Perl, R, PHP
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 20 Ben Rosser 2017-11-25 18:46:51 UTC
Spec URL: https://tc01.fedorapeople.org/ocaml/opam/ocaml-cmdliner.spec
SRPM URL: https://tc01.fedorapeople.org/ocaml/opam/ocaml-cmdliner-1.0.2-5.fc26.src.rpm

- Added archful dependency (isa) on main package to devel package.
- Added documentation line to devel package.

Comment 21 Andy Li 2017-11-27 01:39:35 UTC
Package is accepted.

Comment 22 Gwyn Ciesla 2017-11-27 16:09:45 UTC
(fedrepo-req-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/ocaml-cmdliner

Comment 23 Ben Rosser 2017-11-27 16:35:07 UTC
Thanks for the review!

Comment 24 Fedora Update System 2017-11-27 16:54:21 UTC
ocaml-cmdliner-1.0.2-5.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2017-2565327532

Comment 25 Andy Li 2017-11-28 01:47:08 UTC
I will review the opam package once cmdliner arrive to rawhide.

In the mean time, would you review https://bugzilla.redhat.com/show_bug.cgi?id=1517584 for me?

Comment 26 Fedora Update System 2017-11-28 06:46:25 UTC
ocaml-cmdliner-1.0.2-5.fc27 has been pushed to the Fedora 27 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-2565327532

Comment 27 Fedora Update System 2017-12-12 11:18:09 UTC
ocaml-cmdliner-1.0.2-5.fc27 has been pushed to the Fedora 27 stable repository. If problems still persist, please make note of it in this bug report.