Bug 2022554 - Review Request: plotmm - GTKmm plot widget for scientific applications
Summary: Review Request: plotmm - GTKmm plot widget for scientific applications
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Ben Beasley
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 2022555
TreeView+ depends on / blocked
 
Reported: 2021-11-12 00:11 UTC by Nils Philippsen
Modified: 2022-06-07 09:22 UTC (History)
3 users (show)

Fixed In Version: plotmm-0.1.2-45.fc37
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-06-07 09:22:02 UTC
Type: ---
Embargoed:
code: fedora-review+


Attachments (Terms of Use)

Description Nils Philippsen 2021-11-12 00:11:46 UTC
Spec URL: https://nphilipp.fedorapeople.org/review/plotmm/plotmm.spec
SRPM URL: https://nphilipp.fedorapeople.org/review/plotmm/plotmm-0.1.2-2.fc36.src.rpm
Description: This package provides an extension to the gtkmm library.
It contains widgets which are primarily useful
for technical and scientifical purposes.
Fedora Account System Username: nphilipp

Comment 1 Nils Philippsen 2021-11-12 12:04:57 UTC
This is a prerequisite to lv2-eq10q, here's the corresponding review: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=2022555

Comment 2 Ben Beasley 2021-11-12 18:41:49 UTC
A couple of questions up front:

- This was previously packaged and was retired after it was orphaned. Are you following
  https://docs.fedoraproject.org/en-US/package-maintainers/Package_Retirement_Process/#claiming?

- Are you trying to support EPEL8 and/or EPEL7 from this spec file? The answer will
  determine what feedback a reviewer should give regarding obsolete macros.

Comment 3 Nils Philippsen 2021-11-13 01:18:43 UTC
(In reply to Ben Beasley from comment #2)
> A couple of questions up front:
> 
> - This was previously packaged and was retired after it was orphaned. Are
> you following
>  
> https://docs.fedoraproject.org/en-US/package-maintainers/
> Package_Retirement_Process/#claiming?

Hah I'm trying to, but I missed #2 -- announcing this on devel. To my excuse, it was late. 😂

> - Are you trying to support EPEL8 and/or EPEL7 from this spec file? The
> answer will
>   determine what feedback a reviewer should give regarding obsolete macros.

No, I don't target either EPEL7/8.

Comment 4 Nils Philippsen 2021-11-13 01:31:42 UTC
Just sent out the announcement.

Comment 5 Ben Beasley 2021-11-13 15:31:19 UTC
Package Review
==============

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


Issues:
=======
- Dist tag is present.

  OK; fedora-review does not understand rpmautospec.

- This is the first time I have seen rpmautospec combined with package
  unretirement. It makes sense to do. Just make sure that you end up with a
  release number higher than the last build (-34) to avoid unintended
  downgrades, using the -b option to %autorelease if needed.

- Package does not use a name that already exists.
  Note: A package with this name already exists. Please check
  https://src.fedoraproject.org/rpms/plotmm
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/Naming/#_conflicting_package_names

  OK; this is a review for unretirement.

- Large documentation must go in a -doc subpackage. Large could be size
  (~1MB) or number of files.
  Note: Documentation size is 1075200 bytes in 174 files.
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_documentation

  You should make a new -doc subpackage. I suggest something like:

    %package doc
    Summary:        Documentation for plotmm
    BuildArch:      noarch

    %description doc
    %{summary}.

    %files doc
    %license COPYING
    %doc doc/html

  (and remove the HTML documentation from the -devel package). You can keep
  AUTHORS, ChangeLog, and README in the base package or move them to -doc at
  your discretion.

- Be warned that modern Doxygen-generated HTML documentation is not suitable
  for packaging, as it has relatively intractable issues with bundled and
  minified JavaScript. See https://bugzilla.redhat.com/show_bug.cgi?id=2006555
  for details. However, the ancient pre-generated documentation here is OK: it
  lacks JavaScript, and the CSS is not minified.

  If you ever re-build the documentation in the RPM build, which is possible to
  do, then you will need to deal with this. The best solution is probably to
  build a PDF instead of HTML. See
  https://src.fedoraproject.org/rpms/cairomm/blob/rawhide/f/cairomm.spec for an
  example of doing this. (The example also builds the HTML with the JavaScript
  stripped out, but that is only so that DevHelp documentation—which plotmm
  does not provide—keeps working.)

- The option “--enable-docs” to the configure script is not doing anything and
  should be removed.

- Since the dependency on gtkmm is via pkgconfig, please change

    BuildRequires:  gtkmm24-devel >= 2.4.0

  to

    BuildRequires:  pkgconfig(gtkmm-2.4)

  and 

    Requires:       gtkmm24-devel

  to

    Requires:       pkgconfig(gtkmm-2.4)

  See
  https://docs.fedoraproject.org/en-US/packaging-guidelines/PkgConfigBuildRequires/,
  and also
  https://docs.fedoraproject.org/en-US/packaging-guidelines/#_package_dependencies
  regarding versioned dependencies.

- While the URL only works with plain HTTP, the Source0 URL still works with
  HTTPS. Please adjust it to HTTPS.

- This project is thoroughly dead upstream. It’s okay to keep packaging it, but
  you will have a higher burden as maintainer should any issues arise.

- You should not glob the shared library in a way that would miss an soversion
  bump. See
  https://docs.fedoraproject.org/en-US/packaging-guidelines/#_listing_shared_library_files.

  Plus, it’s best not to use extremely broad globs under shared directories.
  There are some arguments for not doing so in
  https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_explicit_lists.

  At least change:

    %{_libdir}/*.so.*

  to:

    %{_libdir}/*.so.0*

  but preferably:

    %{_libdir}/libplotmm.so.0*

  or:

    %{_libdir}/libplotmm.so.0
    %{_libdir}/libplotmm.so.0.*

- This is obsolete in all current Fedora releases and should be removed:

    %ldconfig_scriptlets

- While the make invocations are acceptable, it would be even better to write

    make %{?_smp_mflags}

  as

    %make_build

  and

    make DESTDIR=%{buildroot} install

  as

    %make_install

- This is a nit-pick, but

    find %{buildroot} -type f -name "*.la" -exec rm -f {} ';'

  could be more simply written as

    find '%{buildroot}' -type f -name '*.la' -delete

- The spec file contains mixed spaces and tabs. You can fix it with:

    sed -r -i 's/\t/        /g' plotmm.spec

  See rpmlint diagnostics:

    plotmm.spec:44: W: mixed-use-of-spaces-and-tabs (spaces: line 10, tab: line 44)
    plotmm.spec:44: W: mixed-use-of-spaces-and-tabs (spaces: line 10, tab: line 44)

- I think all of these rpmlint messages are spurious and require no action:

    plotmm.src: W: strange-permission plotmm.spec 600
    plotmm.x86_64: E: shlib-policy-name-error 0
    plotmm-examples.x86_64: W: no-documentation
    plotmm-devel.x86_64: W: missing-dependency-on plotmm*/plotmm-libs/libplotmm* = 0.1.2
    plotmm.x86_64: E: invalid-ldconfig-symlink /usr/lib64/libplotmm.so.0.0.0 libplotmm.so.0.0.0

    plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_error_curve__inherit__graph.dot /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_error_curve__coll__graph.dot
    plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_error_curve__inherit__graph.map /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_error_curve__coll__graph.map
    plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_error_curve__inherit__graph.md5 /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_error_curve__coll__graph.md5
    plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_error_curve__inherit__graph.png /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_error_curve__coll__graph.png
    plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale__coll__graph.map /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale__coll__graph.map
    plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale__inherit__graph.map /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale__inherit__graph.map
    plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale_labels__inherit__graph.dot /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale_labels__coll__graph.dot
    plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale_labels__inherit__graph.map /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale_labels__coll__graph.map:/usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale_labels__inherit__graph.map:/usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale_labels__coll__graph.map
    plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale_labels__inherit__graph.md5 /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale_labels__coll__graph.md5
    plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale_labels__inherit__graph.png /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale_labels__coll__graph.png
    plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale_labels__inherit__graph.dot /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale_labels__coll__graph.dot
    plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale_labels__inherit__graph.md5 /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale_labels__coll__graph.md5
    plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale_labels__inherit__graph.png /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale_labels__coll__graph.png

- Simple man pages explaining what the examples do would be nice, but are not
  required. See rpmlint diagnostics:

    plotmm-examples.x86_64: W: no-manual-page-for-binary plotmm-curves
    plotmm-examples.x86_64: W: no-manual-page-for-binary plotmm-simple

  and also
  https://docs.fedoraproject.org/en-US/packaging-guidelines/#_manpages.

- This should be reported upstream, although given plotmm seems to be
  abandoned, I wouldn’t expect doing so to accomplish anything.

    plotmm.x86_64: E: incorrect-fsf-address /usr/share/licenses/plotmm/COPYING

  You are required to report this, but you must not patch the file yourself; see
  https://fedoraproject.org/wiki/Common_Rpmlint_issues#incorrect-fsf-address.

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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig not called in %post and %postun for Fedora 28 and later.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.
[x]: Development (unversioned) .so files in -devel subpackage, if present.

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: "Unknown or generated", "GNU Library General Public License,
     Version 2.0", "FSF Unlimited License (with License Retention)", "GNU
     General Public License v2.0 or later [generated file]", "FSF Unlimited
     License [generated file]", "GNU General Public License v2.0 or later",
     "X11 License [generated file]", "GNU Lesser General Public License".
     189 files have unknown license. Detailed output of licensecheck in
     /home/reviewer/2022554-plotmm/licensecheck.txt

     All files with licenses other than LGPLv2 belong to the build system and
     do not contribute to the License of the binary RPMs.

[x]: License file installed when any subpackage combination is installed.
[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.
[-]: 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]: Package complies to the Packaging Guidelines

     (except as mentioned)

[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]: Package does not own files or directories owned by other packages.
[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]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[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

===== 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).
[x]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in plotmm-
     devel , plotmm-examples
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[-]: %check is present and all tests pass.

     Upstream provides no tests.

[x]: 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]: The placement of pkgconfig(.pc) files are correct.
[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:
[-]: Spec file according to URL is the same as in SRPM.
     Note: Spec file as given by url is not the same as in SRPM (see
     attached diff).
     See: (this test has no URL)

     OK: fedora-review does not understand rpmautospec

[!]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 1198080 bytes in /usr/share

     Documentation should be moved to a noarch -doc subpackage.

[x]: Rpmlint is run on debuginfo package(s).
     Note: There are rpmlint messages (see attachment).
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).


Rpmlint
-------
Cannot parse rpmlint output:


Rpmlint (debuginfo)
-------------------
Cannot parse rpmlint output:



Rpmlint (installed packages)
----------------------------
Cannot parse rpmlint output:


Source checksums
----------------
http://download.sourceforge.net/plotmm/plotmm-0.1.2.tar.gz :
  CHECKSUM(SHA256) this package     : 896bb729eb9cad5f3188d72304789dd7a86fdae66020ac0632fe3bc66abe9653
  CHECKSUM(SHA256) upstream package : 896bb729eb9cad5f3188d72304789dd7a86fdae66020ac0632fe3bc66abe9653


Requires
--------
plotmm (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libm.so.6()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    rtld(GNU_HASH)

plotmm-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    gtkmm24-devel
    libplotmm.so.0()(64bit)
    pkgconfig(gtkmm-2.4)
    plotmm(x86-64)

plotmm-examples (rpmlib, GLIBC filtered):
    libatkmm-1.6.so.1()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libgdkmm-2.4.so.1()(64bit)
    libglibmm-2.4.so.1()(64bit)
    libgtkmm-2.4.so.1()(64bit)
    libm.so.6()(64bit)
    libplotmm.so.0()(64bit)
    libsigc-2.0.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    plotmm(x86-64)
    rtld(GNU_HASH)

plotmm-debuginfo (rpmlib, GLIBC filtered):

plotmm-debugsource (rpmlib, GLIBC filtered):



Provides
--------
plotmm:
    libplotmm.so.0()(64bit)
    plotmm
    plotmm(x86-64)

plotmm-devel:
    pkgconfig(plotmm)
    plotmm-devel
    plotmm-devel(x86-64)

plotmm-examples:
    plotmm-examples
    plotmm-examples(x86-64)

plotmm-debuginfo:
    debuginfo(build-id)
    libplotmm.so.0.0.0-0.1.2-2.fc36.x86_64.debug()(64bit)
    plotmm-debuginfo
    plotmm-debuginfo(x86-64)

plotmm-debugsource:
    plotmm-debugsource
    plotmm-debugsource(x86-64)



Diff spec file in url and in SRPM
---------------------------------
--- /home/reviewer/2022554-plotmm/srpm/plotmm.spec	2021-11-13 08:49:05.052705243 -0500
+++ /home/reviewer/2022554-plotmm/srpm-unpacked/plotmm.spec	2021-11-11 19:10:50.000000000 -0500
@@ -1,2 +1,11 @@
+## START: Set by rpmautospec
+## (rpmautospec version 0.2.5)
+%define autorelease(e:s:pb:) %{?-p:0.}%{lua:
+    release_number = 2;
+    base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
+    print(release_number + base_release_number - 1);
+}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{?dist}
+## END: Set by rpmautospec
+
 Name:           plotmm
 Version:        0.1.2
@@ -80,3 +89,7 @@
 
 %changelog
-%autochangelog
+* Fri Nov 12 2021 Nils Philippsen <nils> 0.1.2-2
+- Uncommitted changes
+
+* Thu Nov 11 2021 Nils Philippsen <nils> 0.1.2-1
+- Revert "Orphaned for 6+ weeks"


Generated by fedora-review 0.7.6 (b083f91) last change: 2020-11-10
Command line :/usr/bin/fedora-review -b 2022554
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, C/C++, Shell-api
Disabled plugins: PHP, Ocaml, Perl, Haskell, SugarActivity, R, Python, fonts, Java
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH
============================ rpmlint session starts ============================
rpmlint: 2.1.0
configuration:
    /usr/lib/python3.10/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/licenses.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 31, packages: 5

plotmm.src: W: strange-permission plotmm.spec 600
plotmm.x86_64: E: shlib-policy-name-error 0
plotmm-examples.x86_64: W: no-manual-page-for-binary plotmm-curves
plotmm-examples.x86_64: W: no-manual-page-for-binary plotmm-simple
plotmm-examples.x86_64: W: no-documentation
plotmm.spec:44: W: mixed-use-of-spaces-and-tabs (spaces: line 10, tab: line 44)
plotmm.spec:44: W: mixed-use-of-spaces-and-tabs (spaces: line 10, tab: line 44)
plotmm-devel.x86_64: W: missing-dependency-on plotmm*/plotmm-libs/libplotmm* = 0.1.2
plotmm.x86_64: E: invalid-ldconfig-symlink /usr/lib64/libplotmm.so.0.0.0 libplotmm.so.0.0.0
plotmm.x86_64: E: incorrect-fsf-address /usr/share/licenses/plotmm/COPYING
plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_error_curve__inherit__graph.dot /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_error_curve__coll__graph.dot
plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_error_curve__inherit__graph.map /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_error_curve__coll__graph.map
plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_error_curve__inherit__graph.md5 /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_error_curve__coll__graph.md5
plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_error_curve__inherit__graph.png /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_error_curve__coll__graph.png
plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale__coll__graph.map /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale__coll__graph.map
plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale__inherit__graph.map /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale__inherit__graph.map
plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale_labels__inherit__graph.dot /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale_labels__coll__graph.dot
plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale_labels__inherit__graph.map /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale_labels__coll__graph.map:/usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale_labels__inherit__graph.map:/usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale_labels__coll__graph.map
plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale_labels__inherit__graph.md5 /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale_labels__coll__graph.md5
plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale_labels__inherit__graph.png /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_h_scale_labels__coll__graph.png
plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale_labels__inherit__graph.dot /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale_labels__coll__graph.dot
plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale_labels__inherit__graph.md5 /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale_labels__coll__graph.md5
plotmm-devel.x86_64: W: files-duplicate /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale_labels__inherit__graph.png /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_v_scale_labels__coll__graph.png
 4 packages and 1 specfiles checked; 3 errors, 20 warnings, 3 badness; has taken 0.8 s

Comment 6 Nils Philippsen 2021-11-14 12:16:26 UTC
Hey Ben, thanks for reviewing this!

(In reply to Ben Beasley from comment #5)
> Package Review
> ==============
> 
> Legend:
> [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
> 
> 
> Issues:
> =======
> - Dist tag is present.
> 
>   OK; fedora-review does not understand rpmautospec.

I used %autorelease/%autochangelog for this one in part to identify the warts with reviewing an rpmautospec-enabled package. Sorry for making you a guinea pig. 🤷😉

https://pagure.io/fedora-infra/rpmautospec/issue/238

> - This is the first time I have seen rpmautospec combined with package
>   unretirement. It makes sense to do. Just make sure that you end up with a
>   release number higher than the last build (-34) to avoid unintended
>   downgrades, using the -b option to %autorelease if needed.

Oh, Koji just wouldn't allow me to build a package of the same N-V-R again (we have plotmm in F34, so this wouldn't have gone unnoticed). I didn't consider unretirement when cooking up the release counting algorithm, but adding -b to compensate shouldn't be necessary:

https://pagure.io/fedora-infra/rpmautospec/issue/237

> - Large documentation must go in a -doc subpackage. Large could be size
>   (~1MB) or number of files.
>   Note: Documentation size is 1075200 bytes in 174 files.
>   See: https://docs.fedoraproject.org/en-US/packaging-
>   guidelines/#_documentation

A -doc subpackage is for end user documentation, so it probably should be -devel-doc. Anyway, while it's not mandatory to have large documentation in a subpackage – you just should consider it… 😏 – it makes sense to do so, -devel would only account for ~84k without the docs and that should make builds quicker.

> - Be warned that modern Doxygen-generated HTML documentation is not suitable
>   for packaging, as it has relatively intractable issues with bundled and
>   minified JavaScript. See
> https://bugzilla.redhat.com/show_bug.cgi?id=2006555
>   for details. However, the ancient pre-generated documentation here is OK:
> it
>   lacks JavaScript, and the CSS is not minified.
> 
>   If you ever re-build the documentation in the RPM build, which is possible
> to
>   do, then you will need to deal with this. The best solution is probably to
>   build a PDF instead of HTML. See
>   https://src.fedoraproject.org/rpms/cairomm/blob/rawhide/f/cairomm.spec for
> an
>   example of doing this. (The example also builds the HTML with the
> JavaScript
>   stripped out, but that is only so that DevHelp documentation—which plotmm
>   does not provide—keeps working.)

Wow, I wasn't aware of that issue and it's a shame it didn't reach a better conclusion. This really should be spelled out in the packaging guidelines. Dodged a bullet there… 😬

> - The option “--enable-docs” to the configure script is not doing anything
> and
>   should be removed.

Done.

> - Since the dependency on gtkmm is via pkgconfig, please change
> 
>     BuildRequires:  gtkmm24-devel >= 2.4.0
> 
>   to
> 
>     BuildRequires:  pkgconfig(gtkmm-2.4)
> 
>   and 
> 
>     Requires:       gtkmm24-devel
> 
>   to
> 
>     Requires:       pkgconfig(gtkmm-2.4)
> 
>   See
>  
> https://docs.fedoraproject.org/en-US/packaging-guidelines/
> PkgConfigBuildRequires/,
>   and also
>  
> https://docs.fedoraproject.org/en-US/packaging-guidelines/
> #_package_dependencies
>   regarding versioned dependencies.

Done.

> - While the URL only works with plain HTTP, the Source0 URL still works with
>   HTTPS. Please adjust it to HTTPS.

Done.

> - This project is thoroughly dead upstream. It’s okay to keep packaging it,
> but
>   you will have a higher burden as maintainer should any issues arise.

Thanks, I'm aware of it. 🙂
 
> - You should not glob the shared library in a way that would miss an
> soversion
>   bump. See
>  
> https://docs.fedoraproject.org/en-US/packaging-guidelines/
> #_listing_shared_library_files.
> 
>   Plus, it’s best not to use extremely broad globs under shared directories.
>   There are some arguments for not doing so in
>  
> https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/
> #_explicit_lists.
> 
>   At least change:
> 
>     %{_libdir}/*.so.*
> 
>   to:
> 
>     %{_libdir}/*.so.0*
> 
>   but preferably:
> 
>     %{_libdir}/libplotmm.so.0*
> 
>   or:
> 
>     %{_libdir}/libplotmm.so.0
>     %{_libdir}/libplotmm.so.0.*

Done, even if I don't expect it to change its SONAME anytime soon (or anytime at all).

> - This is obsolete in all current Fedora releases and should be removed:
> 
>     %ldconfig_scriptlets

Done.

> - While the make invocations are acceptable, it would be even better to write
> 
>     make %{?_smp_mflags}
> 
>   as
> 
>     %make_build
> 
>   and
> 
>     make DESTDIR=%{buildroot} install
> 
>   as
> 
>     %make_install

Done.

> - This is a nit-pick, but
> 
>     find %{buildroot} -type f -name "*.la" -exec rm -f {} ';'
> 
>   could be more simply written as
> 
>     find '%{buildroot}' -type f -name '*.la' -delete

Yes it can 😀, and done.
 
> - The spec file contains mixed spaces and tabs. You can fix it with:
> 
>     sed -r -i 's/\t/        /g' plotmm.spec
> 
>   See rpmlint diagnostics:
> 
>     plotmm.spec:44: W: mixed-use-of-spaces-and-tabs (spaces: line 10, tab:
> line 44)
>     plotmm.spec:44: W: mixed-use-of-spaces-and-tabs (spaces: line 10, tab:
> line 44)

Done.
 
> - I think all of these rpmlint messages are spurious and require no action:
> 
>     plotmm.src: W: strange-permission plotmm.spec 600

That looks like `fedpkg srpm` created it that way. Will have to investigate this at some point.

>     plotmm.x86_64: E: shlib-policy-name-error 0
>     plotmm-examples.x86_64: W: no-documentation
>     plotmm-devel.x86_64: W: missing-dependency-on
> plotmm*/plotmm-libs/libplotmm* = 0.1.2

Yeah, the %{?_isa}-ified Requires: is there.

>     plotmm.x86_64: E: invalid-ldconfig-symlink /usr/lib64/libplotmm.so.0.0.0
> libplotmm.so.0.0.0

🤔 Maybe it's weirded out because the package is called `plotmm` instead of `libplotmm`?

>     plotmm-devel.x86_64: W: files-duplicate
> /usr/share/doc/plotmm-devel/html/
> class_plot_m_m_1_1_error_curve__inherit__graph.dot
> /usr/share/doc/plotmm-devel/html/class_plot_m_m_1_1_error_curve__coll__graph.
> dot
> …

I'll run hardlink to deduplicate the installed files.

> - Simple man pages explaining what the examples do would be nice, but are not
>   required. See rpmlint diagnostics:
> 
>     plotmm-examples.x86_64: W: no-manual-page-for-binary plotmm-curves
>     plotmm-examples.x86_64: W: no-manual-page-for-binary plotmm-simple
> 
>   and also
>   https://docs.fedoraproject.org/en-US/packaging-guidelines/#_manpages.

To be honest, I'm not sure if anyone even needs these. At this point it's mere inertia to drag the example programs along. 😉

> - This should be reported upstream, although given plotmm seems to be
>   abandoned, I wouldn’t expect doing so to accomplish anything.
> 
>     plotmm.x86_64: E: incorrect-fsf-address
> /usr/share/licenses/plotmm/COPYING
> 
>   You are required to report this, but you must not patch the file yourself;
> see
>   https://fedoraproject.org/wiki/Common_Rpmlint_issues#incorrect-fsf-address.

Filed here: https://sourceforge.net/p/plotmm/bugs/5/

Because there is no (new) git history, the release number didn't change. You can therefore find the updated files in the same places, I've moved the old versions into a subdirectory (…/old/1):

Spec URL: https://nphilipp.fedorapeople.org/review/plotmm/plotmm.spec
SRPM URL: https://nphilipp.fedorapeople.org/review/plotmm/plotmm-0.1.2-2.fc36.src.rpm

Comment 7 Ben Beasley 2021-11-14 15:10:05 UTC
Thanks! It sounds like you’ve taken care of everything. I’ll re-review as soon as I get a chance.

Regarding the rpmlint warnings I pointed out as probably spurious, many of these show up on nearly every package. I think rpmlint 2.x was brought into Fedora 35 without a lot of testing on actual Fedora packages. It’s definitely useful to try to get these fixed in rpmlint, but so far I haven’t spent any time on doing so.

Comment 8 Ben Beasley 2021-11-20 01:06:35 UTC
I skipped copying out the full review template for this iteration. I see just two issues with the latest submission:

- Package installs properly.
  Note: Installation errors (see attachment)
  See: https://docs.fedoraproject.org/en-US/packaging-guidelines/

  I think this will be OK in practice. My local mock build is release 2.fc36,
  so the -devel-doc subpackage Obsoletes the -devel package, and the -devel
  package Obsoletes itself. As long as the release number is correct, there
  shouldn’t be a problem.

  I am not sure it is useful for the -devel package to explicitly Obsolete
  older versions of itself, although as far as I know it is not prohibited.

  It does produce an rpmlint warning:

    plotmm-devel.aarch64: W: self-obsoletion plotmm-devel < 0.1.2-35 obsoletes plotmm-devel = 0.1.2-2.fc36

- The HTML documentation is not actually installed; you only create an “html”
  directory, but do not copy any documentation into it.

I also noted:

- You could, if you like, omit “%license COPYING” in the devel-doc subpackage,
  since it on the base package indirectly via the devel subpackage.

Comment 9 Nils Philippsen 2021-11-25 23:06:18 UTC
(In reply to Ben Beasley from comment #8)
> I skipped copying out the full review template for this iteration. I see
> just two issues with the latest submission:
> 
> - Package installs properly.
>   Note: Installation errors (see attachment)
>   See: https://docs.fedoraproject.org/en-US/packaging-guidelines/
> 
>   I think this will be OK in practice. My local mock build is release 2.fc36,
>   so the -devel-doc subpackage Obsoletes the -devel package, and the -devel
>   package Obsoletes itself. As long as the release number is correct, there
>   shouldn’t be a problem.
> 
>   I am not sure it is useful for the -devel package to explicitly Obsolete
>   older versions of itself, although as far as I know it is not prohibited.

This is a technique so that if a user had the -devel package installed (which included headers and docs), updating would get them both -devel (without docs) and -devel-docs.
 
>   It does produce an rpmlint warning:
> 
>     plotmm-devel.aarch64: W: self-obsoletion plotmm-devel < 0.1.2-35
> obsoletes plotmm-devel = 0.1.2-2.fc36

Yeah, once this is properly resurrected, I need to take care of that it gets a suitably high release.

> - The HTML documentation is not actually installed; you only create an “html”
>   directory, but do not copy any documentation into it.

Oops. Fixed. 😃

> I also noted:
> 
> - You could, if you like, omit “%license COPYING” in the devel-doc
> subpackage,
>   since it on the base package indirectly via the devel subpackage.

👍

The updated files are in the same places, I've moved the old versions out of the way (…/old/2):

Spec URL: https://nphilipp.fedorapeople.org/review/plotmm/plotmm.spec
SRPM URL: https://nphilipp.fedorapeople.org/review/plotmm/plotmm-0.1.2-2.fc36.src.rpm

Comment 10 Ben Beasley 2021-11-26 13:19:44 UTC
The package is APPROVED; however, please see the Issues section below, and make sure you fix the ownership of the %{_pkgdocdir}-devel-doc directory immediately upon unretirement.


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

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


Issues:
=======

- Nothing owns %{_pkgdocdir}-devel-doc. Please change:

    %files devel-doc
    %doc %{_pkgdocdir}-devel-doc/html

  to

    %files devel-doc
    %doc %{_pkgdocdir}-devel-doc

  or otherwise ensure the devel-doc subpackage owns this directory.

- The hardlink invocation did not eliminate the duplicate file warnings from
  rpmlint, because the files in question had duplicate content but not
  duplicate mtimes, so nothing was hardlinked. I think that, for packaging
  purposes, hardlink is in the right here, and it is better to ignore the
  rpmlint warnings (and optionally remove the call to hardlink as useless) than
  to add the “-t” option to hardlink.

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

Notes:
======

- Package installs properly.
  Note: Installation errors (see attachment)
  See: https://docs.fedoraproject.org/en-US/packaging-guidelines/

  (OK as previously discussed)

- Dist tag is present.

  (OK—rpmautospec)

- Package does not use a name that already exists.
  Note: A package with this name already exists. Please check
  https://src.fedoraproject.org/rpms/plotmm
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/Naming/#_conflicting_package_names

  (OK since the review is for unretirement)

- Other rpmlint messages are either bogus (there are a lot of these) or
  previously discussed in this review.

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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig not called in %post and %postun for Fedora 28 and later.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.
[x]: Development (unversioned) .so files in -devel subpackage, if present.

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: "Unknown or generated", "GNU Library General Public License,
     Version 2.0", "FSF Unlimited License (with License Retention)", "GNU
     General Public License v2.0 or later [generated file]", "FSF Unlimited
     License [generated file]", "GNU General Public License v2.0 or later",
     "X11 License [generated file]", "GNU Lesser General Public License".
     189 files have unknown license. Detailed output of licensecheck in
     /home/reviewer/2022554-plotmm/licensecheck.txt

     All files with licenses other than LGPLv2 belong to the build system and
     do not contribute to the License of the binary RPMs.

[x]: License file installed when any subpackage combination is installed.
[x]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/share/doc/plotmm-devel-doc
[!]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/share/doc/plotmm-devel-
     doc
[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.
[-]: 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 10240 bytes in 3 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]: 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 does not own files or directories owned by other packages.
[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]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[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

===== SHOULD items =====

Generic:
[x]: 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).
[x]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in plotmm-
     devel , plotmm-examples
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[.]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: %check is present and all tests pass.
[x]: 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]: The placement of pkgconfig(.pc) files are correct.
[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:
[!]: Rpmlint is run on all installed packages.
     Note: Mock build failed
     See: https://docs.fedoraproject.org/en-US/packaging-
     guidelines/#_use_rpmlint
[!]: Spec file according to URL is the same as in SRPM.
     Note: Spec file as given by url is not the same as in SRPM (see
     attached diff).
     See: (this test has no URL)
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.


Installation errors
-------------------
INFO: mock.py version 2.15 starting (python version = 3.10.0, NVR = mock-2.15-1.fc35)...
Start: init plugins
INFO: selinux enabled
Finish: init plugins
INFO: Signal handler active
Start: run
Start: chroot init
INFO: calling preinit hooks
INFO: enabled root cache
INFO: enabled package manager cache
Start: cleaning package manager metadata
Finish: cleaning package manager metadata
INFO: enabled HW Info plugin
Mock Version: 2.15
INFO: Mock Version: 2.15
Finish: chroot init
INFO: installing package(s): /home/reviewer/2022554-plotmm/results/plotmm-examples-0.1.2-2.fc36.aarch64.rpm /home/reviewer/2022554-plotmm/results/plotmm-devel-0.1.2-2.fc36.aarch64.rpm /home/reviewer/2022554-plotmm/results/plotmm-debugsource-0.1.2-2.fc36.aarch64.rpm /home/reviewer/2022554-plotmm/results/plotmm-0.1.2-2.fc36.aarch64.rpm /home/reviewer/2022554-plotmm/results/plotmm-examples-debuginfo-0.1.2-2.fc36.aarch64.rpm /home/reviewer/2022554-plotmm/results/plotmm-devel-doc-0.1.2-2.fc36.noarch.rpm /home/reviewer/2022554-plotmm/results/plotmm-debuginfo-0.1.2-2.fc36.aarch64.rpm
ERROR: Command failed: 
 # /usr/bin/dnf --installroot /var/lib/mock/fedora-rawhide-aarch64/root/ --releasever 36 --setopt=deltarpm=False --allowerasing --disableplugin=local --disableplugin=spacewalk --disableplugin=versionlock install /home/reviewer/2022554-plotmm/results/plotmm-examples-0.1.2-2.fc36.aarch64.rpm /home/reviewer/2022554-plotmm/results/plotmm-devel-0.1.2-2.fc36.aarch64.rpm /home/reviewer/2022554-plotmm/results/plotmm-debugsource-0.1.2-2.fc36.aarch64.rpm /home/reviewer/2022554-plotmm/results/plotmm-0.1.2-2.fc36.aarch64.rpm /home/reviewer/2022554-plotmm/results/plotmm-examples-debuginfo-0.1.2-2.fc36.aarch64.rpm /home/reviewer/2022554-plotmm/results/plotmm-devel-doc-0.1.2-2.fc36.noarch.rpm /home/reviewer/2022554-plotmm/results/plotmm-debuginfo-0.1.2-2.fc36.aarch64.rpm --setopt=tsflags=nocontexts



Rpmlint
-------
Cannot parse rpmlint output:


Source checksums
----------------
https://download.sourceforge.net/plotmm/plotmm-0.1.2.tar.gz :
  CHECKSUM(SHA256) this package     : 896bb729eb9cad5f3188d72304789dd7a86fdae66020ac0632fe3bc66abe9653
  CHECKSUM(SHA256) upstream package : 896bb729eb9cad5f3188d72304789dd7a86fdae66020ac0632fe3bc66abe9653


Requires
--------
plotmm (rpmlib, GLIBC filtered):
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libm.so.6()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    rtld(GNU_HASH)

plotmm-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    libplotmm.so.0()(64bit)
    pkgconfig(gtkmm-2.4)
    plotmm(aarch-64)

plotmm-devel-doc (rpmlib, GLIBC filtered):
    plotmm-devel

plotmm-examples (rpmlib, GLIBC filtered):
    ld-linux-aarch64.so.1()(64bit)
    libatkmm-1.6.so.1()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libgdkmm-2.4.so.1()(64bit)
    libglibmm-2.4.so.1()(64bit)
    libgtkmm-2.4.so.1()(64bit)
    libm.so.6()(64bit)
    libplotmm.so.0()(64bit)
    libsigc-2.0.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    plotmm(aarch-64)
    rtld(GNU_HASH)

plotmm-debuginfo (rpmlib, GLIBC filtered):

plotmm-debugsource (rpmlib, GLIBC filtered):



Provides
--------
plotmm:
    libplotmm.so.0()(64bit)
    plotmm
    plotmm(aarch-64)

plotmm-devel:
    pkgconfig(plotmm)
    plotmm-devel
    plotmm-devel(aarch-64)

plotmm-devel-doc:
    plotmm-devel-doc

plotmm-examples:
    plotmm-examples
    plotmm-examples(aarch-64)

plotmm-debuginfo:
    debuginfo(build-id)
    libplotmm.so.0.0.0-0.1.2-2.fc36.aarch64.debug()(64bit)
    plotmm-debuginfo
    plotmm-debuginfo(aarch-64)

plotmm-debugsource:
    plotmm-debugsource
    plotmm-debugsource(aarch-64)



Diff spec file in url and in SRPM
---------------------------------
--- /home/reviewer/2022554-plotmm/srpm/plotmm.spec	2021-11-25 22:11:31.396505161 -0500
+++ /home/reviewer/2022554-plotmm/srpm-unpacked/plotmm.spec	2021-11-25 18:01:59.000000000 -0500
@@ -1,2 +1,11 @@
+## START: Set by rpmautospec
+## (rpmautospec version 0.2.5)
+%define autorelease(e:s:pb:) %{?-p:0.}%{lua:
+    release_number = 2;
+    base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
+    print(release_number + base_release_number - 1);
+}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{?dist}
+## END: Set by rpmautospec
+
 Name:           plotmm
 Version:        0.1.2
@@ -97,3 +106,7 @@
 
 %changelog
-%autochangelog
+* Thu Nov 25 2021 Nils Philippsen <nils> 0.1.2-2
+- Uncommitted changes
+
+* Thu Nov 11 2021 Nils Philippsen <nils> 0.1.2-1
+- Revert "Orphaned for 6+ weeks"


Generated by fedora-review 0.7.6 (b083f91) last change: 2020-11-10
Command line :/usr/bin/fedora-review -b 2022554
Buildroot used: fedora-rawhide-aarch64
Active plugins: Shell-api, Generic, C/C++
Disabled plugins: Java, Python, Haskell, R, Ocaml, SugarActivity, Perl, fonts, PHP
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH
============================ rpmlint session starts ============================
rpmlint: 2.1.0
configuration:
    /usr/lib/python3.10/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/licenses.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 31, packages: 8

plotmm-debuginfo.aarch64: W: unstripped-binary-or-object /usr/lib/debug/.dwz/plotmm-0.1.2-2.fc36.aarch64
plotmm-debuginfo.aarch64: W: unstripped-binary-or-object /usr/lib/debug/usr/lib64/libplotmm.so.0.0.0-0.1.2-2.fc36.aarch64.debug
plotmm-examples-debuginfo.aarch64: W: unstripped-binary-or-object /usr/lib/debug/usr/bin/plotmm-curves-0.1.2-2.fc36.aarch64.debug
plotmm-examples-debuginfo.aarch64: W: unstripped-binary-or-object /usr/lib/debug/usr/bin/plotmm-simple-0.1.2-2.fc36.aarch64.debug
plotmm.src: W: strange-permission plotmm.spec 600
plotmm-debuginfo.aarch64: E: statically-linked-binary /usr/lib/debug/.dwz/plotmm-0.1.2-2.fc36.aarch64
plotmm.aarch64: E: shlib-policy-name-error 0
plotmm-debuginfo.aarch64: E: shared-library-without-dependency-information /usr/lib/debug/usr/lib64/libplotmm.so.0.0.0-0.1.2-2.fc36.aarch64.debug
plotmm-examples-debuginfo.aarch64: E: shared-library-without-dependency-information /usr/lib/debug/usr/bin/plotmm-curves-0.1.2-2.fc36.aarch64.debug
plotmm-examples-debuginfo.aarch64: E: shared-library-without-dependency-information /usr/lib/debug/usr/bin/plotmm-simple-0.1.2-2.fc36.aarch64.debug
plotmm-devel.aarch64: W: self-obsoletion plotmm-devel < 0.1.2-35 obsoletes plotmm-devel = 0.1.2-2.fc36
plotmm-devel-doc.noarch: W: obsolete-not-provided plotmm-devel
plotmm-examples.aarch64: W: no-manual-page-for-binary plotmm-curves
plotmm-examples.aarch64: W: no-manual-page-for-binary plotmm-simple
plotmm-debuginfo.aarch64: W: no-documentation
plotmm-debugsource.aarch64: W: no-documentation
plotmm-devel.aarch64: W: no-documentation
plotmm-examples.aarch64: W: no-documentation
plotmm-examples-debuginfo.aarch64: W: no-documentation
plotmm-devel.aarch64: W: missing-dependency-on plotmm*/plotmm-libs/libplotmm* = 0.1.2
plotmm-debuginfo.aarch64: E: missing-PT_GNU_STACK-section /usr/lib/debug/.dwz/plotmm-0.1.2-2.fc36.aarch64
plotmm.aarch64: E: invalid-ldconfig-symlink /usr/lib64/libplotmm.so.0.0.0 libplotmm.so.0.0.0
plotmm.aarch64: E: incorrect-fsf-address /usr/share/licenses/plotmm/COPYING
plotmm-debuginfo.aarch64: W: hidden-file-or-dir /usr/lib/debug/.dwz
plotmm-debuginfo.aarch64: W: hidden-file-or-dir /usr/lib/debug/.dwz
plotmm-devel-doc.noarch: W: files-duplicate /usr/share/doc/plotmm-devel-doc/html/class_plot_m_m_1_1_error_curve__inherit__graph.dot /usr/share/doc/plotmm-devel-doc/html/class_plot_m_m_1_1_error_curve__coll__graph.dot
plotmm-devel-doc.noarch: W: files-duplicate /usr/share/doc/plotmm-devel-doc/html/class_plot_m_m_1_1_error_curve__inherit__graph.md5 /usr/share/doc/plotmm-devel-doc/html/class_plot_m_m_1_1_error_curve__coll__graph.md5
plotmm-devel-doc.noarch: W: files-duplicate /usr/share/doc/plotmm-devel-doc/html/class_plot_m_m_1_1_v_scale__coll__graph.map /usr/share/doc/plotmm-devel-doc/html/class_plot_m_m_1_1_h_scale__coll__graph.map
plotmm-devel-doc.noarch: W: files-duplicate /usr/share/doc/plotmm-devel-doc/html/class_plot_m_m_1_1_v_scale__inherit__graph.map /usr/share/doc/plotmm-devel-doc/html/class_plot_m_m_1_1_h_scale__inherit__graph.map
plotmm-devel-doc.noarch: W: files-duplicate /usr/share/doc/plotmm-devel-doc/html/class_plot_m_m_1_1_h_scale_labels__inherit__graph.dot /usr/share/doc/plotmm-devel-doc/html/class_plot_m_m_1_1_h_scale_labels__coll__graph.dot
plotmm-devel-doc.noarch: W: files-duplicate /usr/share/doc/plotmm-devel-doc/html/class_plot_m_m_1_1_h_scale_labels__inherit__graph.md5 /usr/share/doc/plotmm-devel-doc/html/class_plot_m_m_1_1_h_scale_labels__coll__graph.md5
plotmm-devel-doc.noarch: W: files-duplicate /usr/share/doc/plotmm-devel-doc/html/class_plot_m_m_1_1_v_scale_labels__inherit__graph.dot /usr/share/doc/plotmm-devel-doc/html/class_plot_m_m_1_1_v_scale_labels__coll__graph.dot
plotmm-devel-doc.noarch: W: files-duplicate /usr/share/doc/plotmm-devel-doc/html/class_plot_m_m_1_1_v_scale_labels__inherit__graph.md5 /usr/share/doc/plotmm-devel-doc/html/class_plot_m_m_1_1_v_scale_labels__coll__graph.md5
plotmm-devel-doc.noarch: E: devel-dependency plotmm-devel
plotmm-debuginfo.aarch64: W: dangling-relative-symlink /usr/lib/debug/.build-id/e6/b3aa522142df43ff2657a6d42925d98aa8645f ../../../.build-id/e6/b3aa522142df43ff2657a6d42925d98aa8645f
plotmm-examples-debuginfo.aarch64: W: dangling-relative-symlink /usr/lib/debug/.build-id/30/cfe7a860b9465c52306f95fbe2634b123c8e54 ../../../.build-id/30/cfe7a860b9465c52306f95fbe2634b123c8e54
plotmm-examples-debuginfo.aarch64: W: dangling-relative-symlink /usr/lib/debug/.build-id/7d/201e173d2d062c1525f6b3ad6f0b9be4c16b62 ../../../.build-id/7d/201e173d2d062c1525f6b3ad6f0b9be4c16b62
 8 packages and 0 specfiles checked; 9 errors, 28 warnings, 9 badness; has taken 9.8 s

Comment 11 Nils Philippsen 2021-11-26 20:52:57 UTC
(In reply to Ben Beasley from comment #10)
> The package is APPROVED; however, please see the Issues section below, and
> make sure you fix the ownership of the %{_pkgdocdir}-devel-doc directory
> immediately upon unretirement.

Thanks for the review!

> Issues:
> =======
> 
> - Nothing owns %{_pkgdocdir}-devel-doc. Please change:
> 
>     %files devel-doc
>     %doc %{_pkgdocdir}-devel-doc/html
> 
>   to
> 
>     %files devel-doc
>     %doc %{_pkgdocdir}-devel-doc
> 
>   or otherwise ensure the devel-doc subpackage owns this directory.

Oops. Will do!

> - The hardlink invocation did not eliminate the duplicate file warnings from
>   rpmlint, because the files in question had duplicate content but not
>   duplicate mtimes, so nothing was hardlinked. I think that, for packaging
>   purposes, hardlink is in the right here, and it is better to ignore the
>   rpmlint warnings (and optionally remove the call to hardlink as useless)
> than
>   to add the “-t” option to hardlink.
> 
>   https://docs.fedoraproject.org/en-US/packaging-guidelines/#_timestamps

Makes sense, will do.


Note You need to log in before you can comment on or make changes to this bug.