Bug 1758007

Summary: Review Request: octave-jnifti - Fast NIfTI-1/2 reader and NIfTI-to-JNIfTI converter for MATLAB/Octave
Product: [Fedora] Fedora Reporter: Qianqian Fang <fangqq>
Component: Package ReviewAssignee: Robert-André Mauchin 🐧 <eclipseo>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: eclipseo, morgan.hough, neuro-sig, package-review, sanjay.ankur
Target Milestone: ---Flags: eclipseo: 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: 2019-10-08 21:03:40 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:    
Bug Blocks: 1276941    

Description Qianqian Fang 2019-10-02 23:47:28 UTC
Spec URL: https://raw.githubusercontent.com/fangq/fedorapkg/jnifti/octave-jnifti.spec
SRPM URL: https://kwafoo.coe.neu.edu/~fangq/share/temp/octave-jnifti-0.5-1.fc30.src.rpm

Description: 
This is a fully functional NIfTI-1/2 reader/writer that supports both
MATLAB and GNU Octave, and is capable of reading/writing both non-compressed
and compressed NIfTI files (.nii, .nii.gz) as well as two-part Analyze7.5/NIfTI
files (.hdr/.img and .hdr.gz/.img.gz).  More importantly, this is a toolbox 
that converts NIfTI data to its JSON-based replacement, JNIfTI (.jnii for 
text-based and .bnii for binary-based), defined by the JNIfTI specification 
(http://github.com/fangq/jnifti). JNIfTI is a much more flexible, human-readable 
and extensible file format compared to the more rigid and opaque NIfTI format, 
making the data much easier to manipulate and share.

Fedora Account System Username: fangq

Comment 1 Qianqian Fang 2019-10-04 16:31:19 UTC
rpmlint output for srpm:
------------------------------------------------------------------------------
fangq@localhost:~/rpmbuild/SRPMS$ rpmlint octave-jnifti-0.5-1.fc30.src.rpm
octave-jnifti.src: W: spelling-error %description -l en_US nii -> ii, iii, nit
octave-jnifti.src: W: spelling-error %description -l en_US gz -> g, z, gs
octave-jnifti.src: W: spelling-error %description -l en_US hdr -> hr, her, HDD
octave-jnifti.src: W: spelling-error %description -l en_US img -> mg, imp, i mg
octave-jnifti.src: W: spelling-error %description -l en_US jnii -> genii
octave-jnifti.src: W: spelling-error %description -l en_US bnii -> bani
1 packages and 0 specfiles checked; 0 errors, 6 warnings.
------------------------------------------------------------------------------


rpmlint output for rpm:
------------------------------------------------------------------------------
fangq@localhost:~/rpmbuild/RPMS/noarch$ rpmlint octave-jnifti-0.5-1.fc30.noarch.rpm
octave-jnifti.noarch: W: spelling-error %description -l en_US nii -> ii, iii, nit
octave-jnifti.noarch: W: spelling-error %description -l en_US gz -> g, z, gs
octave-jnifti.noarch: W: spelling-error %description -l en_US hdr -> hr, her, HDD
octave-jnifti.noarch: W: spelling-error %description -l en_US img -> mg, imp, i mg
octave-jnifti.noarch: W: spelling-error %description -l en_US jnii -> genii
octave-jnifti.noarch: W: spelling-error %description -l en_US bnii -> bani
octave-jnifti.noarch: W: file-not-utf8 /usr/share/doc/octave-jnifti/samples/nifti2/avg152T1_LR_nifti2.nii.gz
octave-jnifti.noarch: W: dangerous-command-in-%preun mv
1 packages and 0 specfiles checked; 0 errors, 8 warnings.
------------------------------------------------------------------------------

Comment 2 Robert-André Mauchin 🐧 2019-10-07 16:06:49 UTC
 - Missing BR to octave-devel

BuildRequires:  octave-devel

 - Do not repeat JNIfTI in the Summary:

 - Use a better name for your archive:

Source0:        https://github.com/fangq/%{octpkg}/archive/v%{version}/%{name}-%{version}.tar.gz

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

Make a separate doc noarch subpackage.


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

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


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


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

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: "GPL (v3 or later)", "Unknown or generated", "*No copyright*
     Apache License (v2.0)", "Apache License (v2.0)". 32 files have unknown
     license. Detailed output of licensecheck in
     /home/bob/packaging/review/octave-jnifti/review-octave-
     jnifti/licensecheck.txt
[x]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
[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.
[-]: 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]: 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 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]: 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

===== 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).
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: 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.
[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]: 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 all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: octave-jnifti-0.5-1.fc32.noarch.rpm
          octave-jnifti-0.5-1.fc32.src.rpm
octave-jnifti.noarch: W: spelling-error %description -l en_US nii -> ii, iii, nit
octave-jnifti.noarch: W: spelling-error %description -l en_US gz -> g, z, gs
octave-jnifti.noarch: W: spelling-error %description -l en_US hdr -> hr, her, HDD
octave-jnifti.noarch: W: spelling-error %description -l en_US img -> mg, imp, i mg
octave-jnifti.noarch: W: spelling-error %description -l en_US jnii -> genii
octave-jnifti.noarch: W: spelling-error %description -l en_US bnii -> bani
octave-jnifti.noarch: W: file-not-utf8 /usr/share/doc/octave-jnifti/samples/headct/headct.nii.gz
octave-jnifti.noarch: W: file-not-utf8 /usr/share/doc/octave-jnifti/samples/nifti2/avg152T1_LR_nifti2.nii.gz
octave-jnifti.noarch: W: dangerous-command-in-%preun mv
octave-jnifti.src: W: spelling-error %description -l en_US nii -> ii, iii, nit
octave-jnifti.src: W: spelling-error %description -l en_US gz -> g, z, gs
octave-jnifti.src: W: spelling-error %description -l en_US hdr -> hr, her, HDD
octave-jnifti.src: W: spelling-error %description -l en_US img -> mg, imp, i mg
octave-jnifti.src: W: spelling-error %description -l en_US jnii -> genii
octave-jnifti.src: W: spelling-error %description -l en_US bnii -> bani
2 packages and 0 specfiles checked; 0 errors, 15 warnings.

Comment 3 Qianqian Fang 2019-10-07 16:22:00 UTC
thanks. my spec file is now updated

https://github.com/fangq/fedorapkg/commit/79d761bc34266a207c482719ef4e996c2f052407

about the doc subpackage, do you have a sample octave-based project that has a similar structure - a main package with a doc subpackage? I know I can use %package to make subpackages, but not sure if I should avoid sharing the doc folder by both packages (should I make all %doc files/folders into the -doc package?)

Comment 4 Robert-André Mauchin 🐧 2019-10-07 16:59:58 UTC
> about the doc subpackage, do you have a sample octave-based project that has a similar structure - a main package with a doc subpackage?

 No

> I should avoid sharing the doc folder by both packages (should I make all %doc files/folders into the -doc package?

Just include the %doc sample into a new doc subpackage, and remove it from the main one.

Comment 5 Qianqian Fang 2019-10-08 15:18:19 UTC
to make it easier to manage, I created a sub-package (jnifti-demos) from this spec file

https://github.com/fangq/fedorapkg/commit/becd6b47956128267e30ae839d05e45b8d449a27

the current spec file can be found here

https://github.com/fangq/fedorapkg/blob/jnifti/octave-jnifti.spec

let me know if this is acceptable. it compiles fine on fc30 (this package is script/data only). thanks

Comment 6 Robert-André Mauchin 🐧 2019-10-08 17:49:08 UTC
(In reply to Qianqian Fang from comment #5)
> to make it easier to manage, I created a sub-package (jnifti-demos) from
> this spec file
> 
> https://github.com/fangq/fedorapkg/commit/
> becd6b47956128267e30ae839d05e45b8d449a27
> 
> the current spec file can be found here
> 
> https://github.com/fangq/fedorapkg/blob/jnifti/octave-jnifti.spec
> 
> let me know if this is acceptable. it compiles fine on fc30 (this package is
> script/data only). thanks

Make the subpackage noarch.


Package otherwise approved.

Comment 7 Gwyn Ciesla 2019-10-08 18:45:03 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/octave-jnifti

Comment 8 Fedora Update System 2019-10-08 23:15:39 UTC
FEDORA-2019-7dc70a0156 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2019-7dc70a0156

Comment 9 Fedora Update System 2019-10-08 23:16:23 UTC
FEDORA-2019-7965616639 has been submitted as an update to Fedora 30. https://bodhi.fedoraproject.org/updates/FEDORA-2019-7965616639

Comment 10 Fedora Update System 2019-10-08 23:16:46 UTC
FEDORA-2019-24b37b0c7f has been submitted as an update to Fedora 31. https://bodhi.fedoraproject.org/updates/FEDORA-2019-24b37b0c7f

Comment 11 Fedora Update System 2019-10-09 03:25:48 UTC
octave-jnifti-0.5-1.fc31 has been pushed to the Fedora 31 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-2019-24b37b0c7f

Comment 12 Fedora Update System 2019-10-09 17:40:00 UTC
octave-jnifti-0.5-1.fc30 has been pushed to the Fedora 30 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-2019-7965616639

Comment 13 Fedora Update System 2019-10-09 18:58:13 UTC
octave-jnifti-0.5-1.fc29 has been pushed to the Fedora 29 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-2019-7dc70a0156

Comment 14 Fedora Update System 2019-10-18 00:48:27 UTC
octave-jnifti-0.5-1.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report.

Comment 15 Fedora Update System 2019-10-18 16:53:27 UTC
octave-jnifti-0.5-1.fc30 has been pushed to the Fedora 30 stable repository. If problems still persist, please make note of it in this bug report.

Comment 16 Fedora Update System 2019-10-26 17:23:57 UTC
octave-jnifti-0.5-1.fc31 has been pushed to the Fedora 31 stable repository. If problems still persist, please make note of it in this bug report.