Bug 769487

Summary: Review Request: python-glumpy - Small python library for rapid visualization of numpy arrays
Product: [Fedora] Fedora Reporter: Thibault North <thibault.north>
Component: Package ReviewAssignee: Nicolas Chauvet (kwizart) <kwizart>
Status: CLOSED EOL QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: cstratak, kwizart, package-review, quantum.analyst, samtygier, thibault.north, tomspur, volker27
Target Milestone: ---Flags: kwizart: fedora-review?
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-05-24 10:07:23 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 Thibault North 2011-12-21 00:56:11 UTC
Spec URL: http://tnorth.fedorapeople.org/python-glumpy.spec
SRPM URL: http://tnorth.fedorapeople.org/python-glumpy-0.2.1-1.fc15.src.rpm
Description: 
glumpy is a small python library for the rapid visualization of numpy arrays, (mainly two dimensional) that has been designed with efficiency in mind. If you want to draw nice figures for inclusion in a scientific article, you’d better
use matplotlib. If you want to have a sense of what’s going on in your simulation while it is running, then maybe glumpy can help you.

Comment 1 Thomas Spura 2011-12-22 10:21:13 UTC
Nice program :)

Also run into the same problem like you:
http://code.google.com/p/glumpy/issues/detail?id=13

Comment 2 Volker Fröhlich 2012-01-09 13:54:06 UTC
The spec looks pretty good. A few comments:

- Usually Name comes before Summary
- Is "Development/Languages" really the correct group?
- You could shorten that for-loop by using sed -i there as well.
- Did you consider to Require ipython?

Comment 3 Thibault North 2012-01-09 14:22:30 UTC
Thanks.
- Name position: fixed
- Indeed, that's not the good group. I forgot to change that one. What about Development/Libraries ? (same as matplotlib)
- The for loop was used to keep the original timestamps. Does it matter?
- Included ipython

Spec URL: http://tnorth.fedorapeople.org/python-glumpy.spec
SRPM URL: http://tnorth.fedorapeople.org/python-glumpy-0.2.1-2.fc15.src.rpm

Comment 4 Volker Fröhlich 2012-01-09 15:20:29 UTC
No, I don't think it matters.

Comment 5 Thomas Spura 2012-01-10 09:48:46 UTC
(In reply to comment #3)
> - Included ipython

Why? I don't see a "import IPython" in the sources...

Maybe because of this: (???)
"""
You will also need IPython (http://ipython.scipy.org/) for running interactive sessions where you can interact with glumpy.
""" (from http://code.google.com/p/glumpy/)

When you want any interactive sessions, you need the proper python interpreter or ipython, but that shouldn't be a reason to R ipython...

Comment 6 Thibault North 2012-01-31 02:05:59 UTC
That is right, thank you.

Some fixes regarding the requires have been made.
Spec URL: http://tnorth.fedorapeople.org/python-glumpy.spec
SRPM URL: http://tnorth.fedorapeople.org/python-glumpy-0.2.1-3.fc15.src.rpm

Comment 7 Nicolas Chauvet (kwizart) 2013-03-13 17:45:15 UTC
Sorry for such long review.

The last time I tried to runtime test this, I've experienced a very bad crash.
I can test it with nvidia and intel hardware.  Is there any spec update ? (this seems the last upstream version).

Comment 8 Thibault North 2013-04-08 21:11:05 UTC
Hmm no spec update, because no new release was prepared upstream. 
Do the last upstream commits fix your crash problem ?

Comment 9 Charalampos Stratakis 2016-09-26 15:23:16 UTC
Project seems active on github now. Any movements on the package?

Comment 10 Thibault North 2016-09-29 07:47:34 UTC
Nope, haven't had time to look into it yet. Any help appreciated!

Comment 11 Charalampos Stratakis 2016-09-29 11:51:42 UTC
Current version is 1.0.6 now and project is hosted on [0] and pypi[1]

Nicholas is it possible to continue with the review or should someone else take it?

[0]https://github.com/glumpy/glumpy
[1]https://pypi.python.org/pypi/glumpy

Comment 12 Nicolas Chauvet (kwizart) 2016-09-29 12:05:34 UTC
Thx for the reminder. I was very busy these time with a certain 3rd part repository migration. But I should be more responsible now.

I will provide a formal review from the current state of the spec in a few.

Comment 13 Nicolas Chauvet (kwizart) 2016-09-29 12:56:43 UTC
Package Review
==============

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


Issues:
=======
- Package contains BR: python2-devel or python3-devel
- 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.
  Note: License file COPYING.txt is not marked as %license
  See:
  http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#License_Text
- Changelog: Fix missing space indent with "initial spec file"
- You might need to package for both python2/3 stacks
- Probably a missing requires when importing scipy.weave
- Update the requires to the current package name (python2-pyopengl, etc).


===== 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.
[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "BSD (3 clause)", "BSD (2 clause)", "CeCILL", "BSL (v1)",
     "Unknown or generated". 19 files have unknown license. Detailed output
     of licensecheck in /home/builder/769487-python-glumpy/licensecheck.txt
[x]: Package contains no bundled libraries without FPC exception.
[!]: Changelog in prescribed format.
[!]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf %{buildroot} present but not required
[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.
[!]: 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.
[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 839680 bytes in 32 files.
[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]: Package does not own files or directories owned by other packages.
[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]: 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

Python:
[x]: Python eggs must not download any dependencies during the build
     process.
[x]: A package which is used by another package via an egg interface should
     provide egg info.
[!]: Package meets the Packaging Guidelines::Python
[x]: Binary eggs must be removed in %prep

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

Generic:
[!]: Sources can be downloaded from URI in Source: tag
     Note: Could not download Source0:
     http://glumpy.googlecode.com/files/glumpy-0.2.1.tar.gz
     See: http://fedoraproject.org/wiki/Packaging:Guidelines#Tags
[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).
[?]: Package functions as described.
[!]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: SourceX tarball generation or download is documented.
     Note: Package contains tarball without URL, check comments
[x]: 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.
[-]: 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]: 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: python-glumpy-0.2.1-3.fc26.noarch.rpm
          python-glumpy-0.2.1-3.fc26.src.rpm
python-glumpy.noarch: W: spelling-error %description -l en_US matplotlib -> diplomatic
python-glumpy.src: W: spelling-error %description -l en_US matplotlib -> diplomatic
2 packages and 0 specfiles checked; 0 errors, 2 warnings.




Rpmlint (installed packages)
----------------------------
python-glumpy.noarch: W: spelling-error %description -l en_US matplotlib -> diplomatic
1 packages and 0 specfiles checked; 0 errors, 1 warn

Comment 14 Thibault North 2016-10-01 09:44:43 UTC
Hi Nicolas,
Thanks for the review. 
The package was indeed really outdated, here is an updated version with py2 and py3 support:

http://tnorth.fedorapeople.org/python-glumpy-1.0.6-1.fc24.src.rpm

There is also a scratch build here:
http://koji.fedoraproject.org/koji/taskinfo?taskID=15889442

This needs yet another review :-)

Thanks,

Comment 15 Thibault North 2016-10-01 09:51:52 UTC
Hu, there is a missing dependency to triangle that I didn't spot:
http://dzhelil.info/triangle/index.html

Looks like python-triangle needs to be packaged first (as well as the underlining C library?)

Comment 16 Nicolas Chauvet (kwizart) 2016-11-17 16:35:18 UTC
Hi,
And sorry again for the long reply:
rpmlint ins't clean:

python3-glumpy.x86_64: W: spelling-error Summary(en_US) blosc -> blocs, bloc, blossom
python3-glumpy.x86_64: W: spelling-error %description -l en_US blosc -> blocs, bloc, blossom
python3-glumpy.x86_64: W: devel-file-in-non-devel-package /usr/lib64/python3.5/site-packages/glumpy/ext/sdf/sdf.h
1 packages and 0 specfiles checked; 0 errors, 3 warnings.
rpmlint python2-glumpy
python2-glumpy.x86_64: W: devel-file-in-non-devel-package /usr/lib64/python2.7/site-packages/glumpy/ext/sdf/sdf.h
1 packages and 0 specfiles checked; 0 errors, 1 warnings.


The python3 description is not accurate.

Is there work for packaging python-triangle ?
I also found that you might be able to use ImageMagick and ffmpeg, but the latter cannot be used as Recommands

Comment 17 Nicolas Chauvet (kwizart) 2017-01-17 16:34:16 UTC
Okay going forward with this.
I still cannot import glumpy , missing triangle:

https://pypi.python.org/pypi/triangle

Comment 18 Elliott Sales de Andrade 2018-01-01 21:38:34 UTC
I'm pretty sure the (C code) triangle license effectively means this will never be packaged as it stands:

>  This program may be freely redistributed under the condition that the
>    copyright notices (including this entire header and the copyright
>    notice printed when the `-h' switch is selected) are not removed, and
>    no compensation is received.  Private, research, and institutional
>    use is free.  You may distribute modified versions of this code UNDER
>    THE CONDITION THAT THIS CODE AND ANY MODIFICATIONS MADE TO IT IN THE
>    SAME FILE REMAIN UNDER COPYRIGHT OF THE ORIGINAL AUTHOR, BOTH SOURCE
>    AND OBJECT CODE ARE MADE FREELY AVAILABLE WITHOUT CHARGE, AND CLEAR
>    NOTICE IS GIVEN OF THE MODIFICATIONS.  Distribution of this code as
>    part of a commercial system is permissible ONLY BY DIRECT ARRANGEMENT
>    WITH THE AUTHOR.  (If you are not directly supplying this code to a
>    customer, and you are instead telling them how they can obtain it for
>    free, then you are not required to make any arrangement with me.)

Stuff like "no compensation is received", "part of a commercial system", etc. sound rather non-Free to me and I doubt they'd get by legal.

See also https://github.com/glumpy/glumpy/issues/118

Comment 19 Nicolas Chauvet (kwizart) 2019-05-24 10:07:23 UTC
Trying to figure out what's on my side for this ticket I except there is not much improvements.

The missing dependency is still here and if there is indeed an issue to have it, it could eventually be made into RPM Fusion nonfree section (provided that it's considered as redistributable).
Once the requested dependency is here, glumpy would need to be reviewed in the same nonfree section (unless triangle can be made optional in glumpy).

Please re-open only if the spec/src.rpm are in a working state.