Bug 1575452

Summary: Review Request: R-chron - Chronological Objects which can Handle Dates and Times
Product: [Fedora] Fedora Reporter: Elliott Sales de Andrade <quantum.analyst>
Component: Package ReviewAssignee: Robert-André Mauchin 🐧 <zebob.m>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: package-review, stolowski, zebob.m
Target Milestone: ---Flags: zebob.m: fedora-review+
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-05-17 13:23:12 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Elliott Sales de Andrade 2018-05-07 01:02:38 UTC
Spec URL: https://qulogic.fedorapeople.org//R-chron.spec
SRPM URL: https://qulogic.fedorapeople.org//R-chron-2.3.52-1.fc27.src.rpm

Description:
Provides chronological objects which can handle dates and times.

Comment 1 Elliott Sales de Andrade 2018-05-07 01:03:39 UTC
koji scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=26825372

Comment 2 Pawel Stolowski 2018-05-07 15:31:25 UTC
Hi, this is an unofficial and preliminary review that I do as part of getting sponsorship for my own submission, and also my first review for Fedora Project.

I've built your package with fedora-review and two minor issues were reported about doc element and missing requirement of R-Core (R-packaging guideline https://fedoraproject.org/wiki/Packaging:R says that for arch-specific packages RPM will automatically add an appropriate dependency but this doesn't seem to be the case?). I did most of the checks but not all.

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

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


Issues:
=======
- Package have the default element marked as %%doc :DESCRIPTION, CITATION
- Package requires R-core.


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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.
[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]: 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]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated". 33 files have unknown license. Detailed
     output of licensecheck in /home/vagrant/R-chron/licensecheck.txt
[?]: License file installed when any subpackage combination is installed.
[x]: Package does not own files or directories owned by other packages.
[x]: %build honors applicable compiler flags or justifies otherwise.
[?]: 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.
[-]: Development files must be in a -devel package
[?]: 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.
[!]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[?]: Useful -debuginfo package or justification otherwise.
[-]: Package is not known to require an ExcludeArch tag.
[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]: 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]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 0 bytes in 0 files.
[x]: Packages must not store files under /srv, /opt or /usr/local
R:
[x]: Package contains the mandatory BuildRequires.
[x]: The package has the standard %install section.

===== 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.
[?]: Final provides and requires are sane (see attachments).
[-]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in R-chron-
     debuginfo , R-chron-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]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

R:
[x]: The %check macro is present
[x]: Latest version is packaged.
     Note: Latest upstream version is 2.3.52, packaged version is 2.3.52

===== 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.
Rpmlint
-------
Checking: R-chron-2.3.52-1.fc28.x86_64.rpm
          R-chron-debuginfo-2.3.52-1.fc28.x86_64.rpm
          R-chron-debugsource-2.3.52-1.fc28.x86_64.rpm
          R-chron-2.3.52-1.fc28.src.rpm
R-chron-debugsource.x86_64: W: no-documentation
4 packages and 0 specfiles checked; 0 errors, 1 warnings.




Rpmlint (debuginfo)
-------------------
Checking: R-chron-debuginfo-2.3.52-1.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
R-chron-debuginfo.x86_64: W: invalid-url URL: https://cran.r-project.org/web/packages/chron/index.html <urlopen error [Errno -2] Name or service not known>
R-chron.x86_64: W: invalid-url URL: https://cran.r-project.org/web/packages/chron/index.html <urlopen error [Errno -2] Name or service not known>
R-chron-debugsource.x86_64: W: invalid-url URL: https://cran.r-project.org/web/packages/chron/index.html <urlopen error [Errno -2] Name or service not known>
3 packages and 0 specfiles checked; 0 errors, 3 warnings.



Requires
--------
R-chron-debuginfo (rpmlib, GLIBC filtered):

R-chron (rpmlib, GLIBC filtered):
    R-graphics
    R-stats
    libR.so()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libm.so.6()(64bit)
    libstdc++.so.6()(64bit)
    rtld(GNU_HASH)

R-chron-debugsource (rpmlib, GLIBC filtered):

Provides
--------
R-chron-debuginfo:
    R-chron-debuginfo
    R-chron-debuginfo(x86-64)
    debuginfo(build-id)

R-chron:
    R-chron
    R-chron(x86-64)

R-chron-debugsource:
    R-chron-debugsource
    R-chron-debugsource(x86-64)



Unversioned so-files
--------------------
R-chron: /usr/lib64/R/library/chron/libs/chron.so

Source checksums
----------------
https://cran.r-project.org/src/contrib/chron_2.3-52.tar.gz :
  CHECKSUM(SHA256) this package     : c47fcf4abb635babe6337604c876d4853d8a24639a98b71523746c56ce75b4a0
  CHECKSUM(SHA256) upstream package : c47fcf4abb635babe6337604c876d4853d8a24639a98b71523746c56ce75b4a0


Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
Command line :/usr/bin/fedora-review --mock-config fedora-rawhide-x86_64 --rpm-spec -n R-chron-2.3.52-1.fc27.src.rpm
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, R, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, PHP
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 3 Robert-André Mauchin 🐧 2018-05-07 16:07:28 UTC
(In reply to Pawel Stolowski from comment #2)
> Hi, this is an unofficial and preliminary review that I do as part of
> getting sponsorship for my own submission, and also my first review for
> Fedora Project.
> 
> I've built your package with fedora-review and two minor issues were
> reported about doc element and missing requirement of R-Core (R-packaging
> guideline https://fedoyraproject.org/wiki/Packaging:R says that for
> arch-specific packages RPM will automatically add an appropriate dependency
> but this doesn't seem to be the case?). I did most of the checks but not all.
> 
> Package Review
> ==============
> 
> Legend:
> [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
> [ ] = Manual review needed
> 
> 
> Issues:
> =======
> - Package have the default element marked as %%doc :DESCRIPTION, CITATION
> - Package requires R-core.
> 

R-core is only needed for noarch subpackages, this is not one. You can see the list of Requires automatically added at the end of the Review:

R-chron (rpmlib, GLIBC filtered):
    R-graphics
    R-stats
    libR.so()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libm.so.6()(64bit)
    libstdc++.so.6()(64bit)
    rtld(GNU_HASH)

They are correct.

> 
> ===== MUST items =====
> 
> C/C++:
> [x]: Package does not contain kernel modules.
> [x]: Package contains no static executables.
> [x]: Development (unversioned) .so files in -devel subpackage, if present.
>      Note: Unversioned so-files in private %_libdir subdirectory (see
>      attachment). Verify they are not in ld path.
> [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]: 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]: License field in the package spec file matches the actual license.
>      Note: Checking patched sources after %prep for licenses. Licenses
>      found: "Unknown or generated". 33 files have unknown license. Detailed
>      output of licensecheck in /home/vagrant/R-chron/licensecheck.txt
> [?]: License file installed when any subpackage combination is installed.

A Licence file should be included in the package. There isn't one here, so you should advise the Reporter to ask upstream for one.

> [x]: Package does not own files or directories owned by other packages.
> [x]: %build honors applicable compiler flags or justifies otherwise.
> [?]: Package contains no bundled libraries without FPC exception.

There is no bundled library in this package so it's ok.

> [x]: Changelog in prescribed format.
> [x]: Sources contain only permissible code or content.
> [-]: Package contains desktop file if it is a GUI application.
> [-]: Development files must be in a -devel package
> [?]: Package uses nothing in %doc for runtime.

Does the package use file from %doc to run? Generally the answer is no. 

> [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.
> [!]: Requires correct, justified where necessary.

Requires are correct, see above.

> [x]: Spec file is legible and written in American English.
> [-]: Package contains systemd file(s) if in need.
> [?]: Useful -debuginfo package or justification otherwise.

Check in the review/results/ directory after you built the package with fedora-review. You should see if debugsource and debuginfo package have been built.

> [-]: Package is not known to require an ExcludeArch tag.
> [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]: 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]: Large documentation must go in a -doc subpackage. Large could be size
>      (~1MB) or number of files.
>      Note: Documentation size is 0 bytes in 0 files.
> [x]: Packages must not store files under /srv, /opt or /usr/local
> R:
> [x]: Package contains the mandatory BuildRequires.
> [x]: The package has the standard %install section.
> 
> ===== 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.

You should have marked it with !. There is no License file included: you should  ask the packager to query upstream for one.

> [?]: Final provides and requires are sane (see attachments).

The Requires and Provides are at the end of the Review. Is there any Requires missing to install the package? Is the Provides complete? (some Language have special provides like python3dist(package) for example that should be included.
Everythong is okay here.

> [-]: Fully versioned dependency in subpackages if applicable.
>      Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in R-chron-
>      debuginfo , R-chron-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.

In order to check that the package is built in all arch, you may launch a scratch build: fedpkg --release f29 scratch-build --srpm
Elliott already did it in comment #2 so you can see all arch are building ok.


> [?]: %check is present and all tests pass.

There's a %check section in the SPEC and the build is successful, so all tests indeed passed.

> [?]: Packages should try to preserve timestamps of original installed
>      files.

Generally here you check that the install script uses "install -p" and not simply "install" to keep the files timestamps.

> [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]: Sources can be downloaded from URI in Source: tag
> [x]: SourceX is a working URL.
> [x]: Spec use %global instead of %define unless justified.
> 
> R:
> [x]: The %check macro is present
> [x]: Latest version is packaged.
>      Note: Latest upstream version is 2.3.52, packaged version is 2.3.52
> 
> ===== 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.
> Rpmlint
> -------
> Checking: R-chron-2.3.52-1.fc28.x86_64.rpm
>           R-chron-debuginfo-2.3.52-1.fc28.x86_64.rpm
>           R-chron-debugsource-2.3.52-1.fc28.x86_64.rpm
>           R-chron-2.3.52-1.fc28.src.rpm
> R-chron-debugsource.x86_64: W: no-documentation
> 4 packages and 0 specfiles checked; 0 errors, 1 warnings.
> 
> 
> 
> 
> Rpmlint (debuginfo)
> -------------------
> Checking: R-chron-debuginfo-2.3.52-1.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
> R-chron-debuginfo.x86_64: W: invalid-url URL:
> https://cran.r-project.org/web/packages/chron/index.html <urlopen error
> [Errno -2] Name or service not known>
> R-chron.x86_64: W: invalid-url URL:
> https://cran.r-project.org/web/packages/chron/index.html <urlopen error
> [Errno -2] Name or service not known>
> R-chron-debugsource.x86_64: W: invalid-url URL:
> https://cran.r-project.org/web/packages/chron/index.html <urlopen error
> [Errno -2] Name or service not known>
> 3 packages and 0 specfiles checked; 0 errors, 3 warnings.
> 
> 
> 
> Requires
> --------
> R-chron-debuginfo (rpmlib, GLIBC filtered):
> 
> R-chron (rpmlib, GLIBC filtered):
>     R-graphics
>     R-stats
>     libR.so()(64bit)
>     libc.so.6()(64bit)
>     libgcc_s.so.1()(64bit)
>     libm.so.6()(64bit)
>     libstdc++.so.6()(64bit)
>     rtld(GNU_HASH)
> 
> R-chron-debugsource (rpmlib, GLIBC filtered):
> 
> Provides
> --------
> R-chron-debuginfo:
>     R-chron-debuginfo
>     R-chron-debuginfo(x86-64)
>     debuginfo(build-id)
> 
> R-chron:
>     R-chron
>     R-chron(x86-64)
> 
> R-chron-debugsource:
>     R-chron-debugsource
>     R-chron-debugsource(x86-64)
> 
> 
> 
> Unversioned so-files
> --------------------
> R-chron: /usr/lib64/R/library/chron/libs/chron.so
> 
> Source checksums
> ----------------
> https://cran.r-project.org/src/contrib/chron_2.3-52.tar.gz :
>   CHECKSUM(SHA256) this package     :
> c47fcf4abb635babe6337604c876d4853d8a24639a98b71523746c56ce75b4a0
>   CHECKSUM(SHA256) upstream package :
> c47fcf4abb635babe6337604c876d4853d8a24639a98b71523746c56ce75b4a0
> 
> 
> Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
> Command line :/usr/bin/fedora-review --mock-config fedora-rawhide-x86_64
> --rpm-spec -n R-chron-2.3.52-1.fc27.src.rpm
> Buildroot used: fedora-rawhide-x86_64
> Active plugins: Generic, R, Shell-api, C/C++
> Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell,
> PHP
> Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 4 Robert-André Mauchin 🐧 2018-05-07 16:55:48 UTC
Package approved.

Comment 5 Gwyn Ciesla 2018-05-08 12:48:23 UTC
(fedrepo-req-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/R-chron

Comment 6 Fedora Update System 2018-05-08 21:22:22 UTC
R-chron-2.3.52-1.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-2e61af081d

Comment 7 Fedora Update System 2018-05-08 21:22:50 UTC
R-chron-2.3.52-1.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2018-03f01b0357

Comment 8 Fedora Update System 2018-05-09 23:31:07 UTC
R-chron-2.3.52-1.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-2018-03f01b0357

Comment 9 Fedora Update System 2018-05-10 01:30:24 UTC
R-chron-2.3.52-1.fc28 has been pushed to the Fedora 28 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-2018-2e61af081d

Comment 10 Fedora Update System 2018-05-17 13:23:12 UTC
R-chron-2.3.52-1.fc27 has been pushed to the Fedora 27 stable repository. If problems still persist, please make note of it in this bug report.

Comment 11 Fedora Update System 2018-05-19 02:00:50 UTC
R-chron-2.3.52-1.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report.