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 Review | Assignee: | Andy Li <andy> |
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | rawhide | CC: | 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
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 Sorry, I meant to take this earlier ... > %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 ... 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. 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. 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. (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 > %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. > 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. 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. 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!) Sorry to nag, but it's been a while... are you still planning to finish the review? 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. 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. 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. 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. 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. 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 :) 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 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. Package is accepted. (fedrepo-req-admin): The Pagure repository was created at https://src.fedoraproject.org/rpms/ocaml-cmdliner Thanks for the review! ocaml-cmdliner-1.0.2-5.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2017-2565327532 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? 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 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. |