Bug 1249368 - Review Request: python-pyqtgraph - Scientific Graphics and GUI Library for Python
Summary: Review Request: python-pyqtgraph - Scientific Graphics and GUI Library for Py...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jonathan Underwood
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 1248735
TreeView+ depends on / blocked
 
Reported: 2015-08-02 03:17 UTC by Scott Talbert
Modified: 2015-11-04 22:51 UTC (History)
5 users (show)

Fixed In Version: 0.9.10-4.fc22
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-11-04 22:51:26 UTC
Type: ---
Embargoed:
jonathan.underwood: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Scott Talbert 2015-08-02 03:17:42 UTC
Spec URL: http://www.techie.net/~talbert/python-pyqtgraph.spec
SRPM URL: http://www.techie.net/~talbert/python-pyqtgraph-0.9.10-1.fc22.src.rpm
Description: PyQtGraph is a pure-python graphics and GUI library built on PyQt4 / PySide and numpy. It is intended for use in mathematics / scientific / engineering
applications. Despite being written entirely in python, the library is very
fast due to its heavy leverage of numpy for number crunching and Qt's
GraphicsView framework for fast display.
Fedora Account System Username: swt2c

Comment 1 Eduardo Mayorga 2015-08-02 03:48:17 UTC
- Add BuildArch: noarch

- Use for the python3- subpackage:
%{?python_provide:%python_provide python3-%{srcname}}
  See: https://fedoraproject.org/wiki/Packaging:Python#Provides
  See: https://fedoraproject.org/wiki/Packaging:Python#Example_common_spec_file

- Consider to use %py3_build and %py3_install macros.

Comment 2 Jonathan Underwood 2015-08-02 13:14:17 UTC
Note the packaging guidelines are currently going through a cleanup and revision, so although they're not yet finalized, it's worth complying with them where possible:

https://lists.fedoraproject.org/pipermail/packaging/2015-July/010888.html

https://fedoraproject.org/wiki/User:Tibbs/PythonCleanup2

Comment 3 Jonathan Underwood 2015-08-02 13:16:47 UTC
As it currently stands you don't build install or package anything for python 2, despite the main package being a python2 package...

Comment 4 Scott Talbert 2015-08-02 14:11:07 UTC
(In reply to Jonathan Underwood from comment #3)
> As it currently stands you don't build install or package anything for
> python 2, despite the main package being a python2 package...

Yes, so my thinking was...I wanted to build it as a python3-only package for now, but have the ability to add python2 support later if someone needed it.  Thus, I didn't want to name the main package python3-pyqtgraph and have to rename it later.  Is there a better way to do this, or should I just not bother and build both python2 and python3 now?

Comment 5 Scott Talbert 2015-08-02 14:12:27 UTC
(In reply to Jonathan Underwood from comment #2)
> Note the packaging guidelines are currently going through a cleanup and
> revision, so although they're not yet finalized, it's worth complying with
> them where possible:
> 
> https://lists.fedoraproject.org/pipermail/packaging/2015-July/010888.html
> 
> https://fedoraproject.org/wiki/User:Tibbs/PythonCleanup2

I thought I had seen those changes somewhere, but the Python packaging page seemed like it hadn't been updated.  Thanks.

Comment 6 Jonathan Underwood 2015-08-02 14:34:11 UTC
(In reply to Scott Talbert from comment #4)
> (In reply to Jonathan Underwood from comment #3)
> > As it currently stands you don't build install or package anything for
> > python 2, despite the main package being a python2 package...
> 
> Yes, so my thinking was...I wanted to build it as a python3-only package for
> now, but have the ability to add python2 support later if someone needed it.
> Thus, I didn't want to name the main package python3-pyqtgraph and have to
> rename it later.  Is there a better way to do this, or should I just not
> bother and build both python2 and python3 now?

Honestly, it's very little extra work to build it for py2 now, that I think you should just do that.

Comment 7 Jonathan Underwood 2015-08-02 14:34:46 UTC
(In reply to Scott Talbert from comment #5)
> (In reply to Jonathan Underwood from comment #2)
> > Note the packaging guidelines are currently going through a cleanup and
> > revision, so although they're not yet finalized, it's worth complying with
> > them where possible:
> > 
> > https://lists.fedoraproject.org/pipermail/packaging/2015-July/010888.html
> > 
> > https://fedoraproject.org/wiki/User:Tibbs/PythonCleanup2
> 
> I thought I had seen those changes somewhere, but the Python packaging page
> seemed like it hadn't been updated.  Thanks.

Yes, they're still a work in progress, but nearly finalized, I believe.

Comment 8 Scott Talbert 2015-08-02 23:53:52 UTC
Thanks Eduardo and Jonathan for the comments so far.  I think I've addressed them all.

Updated spec: http://www.techie.net/~talbert/python-pyqtgraph.spec
Updated SRPM: http://www.techie.net/~talbert/python-pyqtgraph-0.9.10-2.fc22.src.rpm

Comment 9 Jonathan Underwood 2015-08-03 13:40:22 UTC
Hi Scott,

OK, a few things:

1) Currently the examples directory is installed in the python site packages directory. This stuff would probably be better installed as documentation, unless there's a good reason why that would hinder use somehow.

2) There's some tests under pyqtgraph/tests which should be run during %check if possible.

3) There's a doc directory with a Makefile for building documentation. I think at the least html and pdf docs should be made (you'll need a BR for sphinx) and packaged as documentation.

4) rpmlint is currently giving these errors dire to the examples having shebangs at the top, but being installed under /usr/lib. Packaging the examples as docs rather than installing them would silence these, of course.

python2-pyqtgraph.noarch: E: non-executable-script /usr/lib/python2.7/site-packa
ges/pyqtgraph/examples/ROItypes.py 644 /usr/bin/python
python2-pyqtgraph.noarch: E: non-executable-script /usr/lib/python2.7/site-packa
ges/pyqtgraph/examples/MultiPlotWidget.py 644 /usr/bin/python
python2-pyqtgraph.noarch: E: non-executable-script /usr/lib/python2.7/site-packa
ges/pyqtgraph/examples/ScatterPlotSpeedTest.py 644 /usr/bin/python
python2-pyqtgraph.noarch: E: non-executable-script /usr/lib/python2.7/site-packa
ges/pyqtgraph/examples/PlotSpeedTest.py 644 /usr/bin/python
python2-pyqtgraph.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/pyqtgraph/examples/MultiPlotSpeedTest.py 644 /usr/bin/python
python2-pyqtgraph.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/pyqtgraph/examples/ViewBox.py 644 /usr/bin/python

python3-pyqtgraph.noarch: E: non-executable-script /usr/lib/python3.4/site-packages/pyqtgraph/examples/MultiPlotWidget.py 644 /usr/bin/python
python3-pyqtgraph.noarch: E: non-executable-script /usr/lib/python3.4/site-packages/pyqtgraph/examples/ScatterPlotSpeedTest.py 644 /usr/bin/python
python3-pyqtgraph.noarch: E: non-executable-script /usr/lib/python3.4/site-packages/pyqtgraph/examples/MultiPlotSpeedTest.py 644 /usr/bin/python
python3-pyqtgraph.noarch: E: non-executable-script /usr/lib/python3.4/site-packages/pyqtgraph/examples/PlotSpeedTest.py 644 /usr/bin/python
python3-pyqtgraph.noarch: E: non-executable-script /usr/lib/python3.4/site-packages/pyqtgraph/examples/ViewBox.py 644 /usr/bin/python
python3-pyqtgraph.noarch: E: non-executable-script /usr/lib/python3.4/site-packages/pyqtgraph/examples/ROItypes.py 644 /usr/bin/python

Comment 10 Scott Talbert 2015-08-06 03:51:43 UTC
(In reply to Jonathan Underwood from comment #9)
> Hi Scott,
> 
> OK, a few things:
> 
> 1) Currently the examples directory is installed in the python site packages
> directory. This stuff would probably be better installed as documentation,
> unless there's a good reason why that would hinder use somehow.
> 
> 2) There's some tests under pyqtgraph/tests which should be run during
> %check if possible.
> 
> 3) There's a doc directory with a Makefile for building documentation. I
> think at the least html and pdf docs should be made (you'll need a BR for
> sphinx) and packaged as documentation.
> 
> 4) rpmlint is currently giving these errors dire to the examples having
> shebangs at the top, but being installed under /usr/lib. Packaging the
> examples as docs rather than installing them would silence these, of course.

OK, I believe this is all done now.

Examples are moved to docs.

Tests are now being run.  This added a bit of bloat to the build-deps as an X server is required, but I guess that's OK.  Some of the tests had to be disabled, but they are disabled in upstream master also.

It turns out that the API documentation was already pre-built by upstream, it just needed to be included.

Rpmlint errors are gone.

Spec: http://www.techie.net/~talbert/python-pyqtgraph.spec
SRPM: http://www.techie.net/~talbert/python-pyqtgraph-0.9.10-3.fc22.src.rpm

Comment 11 Jonathan Underwood 2015-08-07 20:26:35 UTC
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 6000640 bytes in 742 files.
  See:
  http://fedoraproject.org/wiki/Packaging/Guidelines#PackageDocumentation

---> Splitting out the docs into a sub-package seems called for in
     this case. And would remove the duplication of the examples in
     the two packages. Be careful to ensure the doc subpackage doesn't requires either of the python packages.


===== 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: "Unknown or generated". 25 files have unknown license. Detailed
     output of licensecheck in /home/jgu/Fedora/1249368-python-
     pyqtgraph/licensecheck.txt

Many files don't have a copyright header. For the MIT license this
isn't required, but it's still nice to have a header per file to avoid
any doubt. You could raise this with upstream, but it's not obligatory.

[x]: License file installed when any subpackage combination is installed.
[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]: 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]: All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

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.
[x]: Package meets the Packaging Guidelines::Python
[x]: Package contains BR: python2-devel or python3-devel
[x]: Binary eggs must be removed in %prep

===== 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
     python2-pyqtgraph , python3-pyqtgraph
[x]: 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.
[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.
[x]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[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]: 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: python2-pyqtgraph-0.9.10-3.fc22.noarch.rpm
          python3-pyqtgraph-0.9.10-3.fc22.noarch.rpm
          python-pyqtgraph-0.9.10-3.fc22.src.rpm
python3-pyqtgraph.noarch: W: spelling-error %description -l en_US numpy -> bumpy, lumpy, dumpy
3 packages and 0 specfiles checked; 0 errors, 1 warnings.




Rpmlint (installed packages)
----------------------------
python3-pyqtgraph.noarch: W: spelling-error %description -l en_US numpy -> bumpy, lumpy, dumpy
2 packages and 0 specfiles checked; 0 errors, 1 warnings.

Requires
--------
python2-pyqtgraph (rpmlib, GLIBC filtered):
    PyOpenGL
    PyQt4
    numpy
    python(abi)

python3-pyqtgraph (rpmlib, GLIBC filtered):
    python(abi)
    python3-PyOpenGL
    python3-PyQt4
    python3-numpy



Provides
--------
python2-pyqtgraph:
    python-pyqtgraph
    python2-pyqtgraph

python3-pyqtgraph:
    python3-pyqtgraph

Source checksums
----------------
http://www.pyqtgraph.org/downloads/pyqtgraph-0.9.10.tar.gz :
  CHECKSUM(SHA256) this package     : 4c0589774e3c8b0c374931397cf6356b9cc99a790215d1917bb7f015c6f0729a
  CHECKSUM(SHA256) upstream package : 4c0589774e3c8b0c374931397cf6356b9cc99a790215d1917bb7f015c6f0729a


Generated by fedora-review 0.6.0 (3c5c9d7) last change: 2015-05-20
Command line :/usr/bin/fedora-review -b 1249368
Buildroot used: fedora-22-x86_64
Active plugins: Python, Generic, Shell-api
Disabled plugins: Java, C/C++, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 13 Christopher Meng 2015-08-08 01:15:39 UTC
Thanks for packaging this, I packaged this 2 years ago and one of my package needs this as well.

Comment 14 Jonathan Underwood 2015-08-08 08:22:35 UTC
OK, APPROVED. Thanks for this contribution to Fedora, much appreciated.

Comment 15 Scott Talbert 2015-08-08 13:42:42 UTC
My pleasure, and thanks also to you for your time doing the review.  I always learn something when I do one of these.  :-)

Comment 16 Scott Talbert 2015-08-08 13:50:24 UTC
New Package SCM Request
=======================
Package Name: python-pyqtgraph
Short Description: Scientific Graphics and GUI Library for Python
Upstream URL: http://www.pyqtgraph.org/
Owners: swt2c
Branches: f21 f22 f23
InitialCC:

Comment 17 Gwyn Ciesla 2015-08-10 16:55:21 UTC
Git done (by process-git-requests).

Comment 18 Fedora Update System 2015-08-11 00:22:33 UTC
python-pyqtgraph-0.9.10-4.fc23 has been submitted as an update for Fedora 23.
https://admin.fedoraproject.org/updates/python-pyqtgraph-0.9.10-4.fc23

Comment 19 Fedora Update System 2015-08-11 00:24:45 UTC
python-pyqtgraph-0.9.10-4.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/python-pyqtgraph-0.9.10-4.fc22

Comment 20 Fedora Update System 2015-08-12 07:00:40 UTC
python-pyqtgraph-0.9.10-4.fc22 has been pushed to the Fedora 22 testing repository.

Comment 21 Fedora Update System 2015-08-18 05:15:06 UTC
python-pyqtgraph-0.9.10-4.fc23 has been pushed to the Fedora 23 stable repository.

Comment 22 Fedora Update System 2015-08-21 03:49:07 UTC
python-pyqtgraph-0.9.10-4.fc22 has been pushed to the Fedora 22 stable repository. If problems still persist, please make note of it in this bug report.

Comment 23 Michal Ambroz 2015-09-09 11:59:15 UTC
Please do you plan to build also for FC21 please?

Comment 24 Michal Ambroz 2015-09-09 12:40:07 UTC
Build for FC21 failing probably just about the python macros missing.
To add the macros on the beginning ofthe file should do the trick :

%if 0%{?rhel} && 0%{?rhel} <= 6
 %{!?__python2:         %global __python2       /usr/bin/python2}
 %{!?python2_sitelib:   %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
 %{!?python2_sitearch:  %global python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
%endif

%if 0%{?fedora} <= 21
 %{!?py2_build:         %global py2_build       %{__python2} setup.py build --executable="%{__python2} -s"}
 %{!?py2_install:       %global py2_install     %{__python2} setup.py install -O1 --skip-build --root %{buildroot}}
 %{!?py3_build:         %global py3_build       %{__python3} setup.py build --executable="%{__python3} -s"}
 %{!?py3_install:       %global py3_install     %{__python3} setup.py install -O1 --skip-build --root %{buildroot}}
%endif

Comment 25 Scott Talbert 2015-09-09 12:50:20 UTC
OK, I will build for 21 also.

Comment 26 Fedora Update System 2015-09-16 01:44:01 UTC
python-pyqtgraph-0.9.10-4.fc21.1 has been submitted as an update to Fedora 21. https://bodhi.fedoraproject.org/updates/FEDORA-2015-15974

Comment 27 Fedora Update System 2015-09-17 01:01:50 UTC
python-pyqtgraph-0.9.10-4.fc21.1 has been pushed to the Fedora 21 testing repository. If problems still persist, please make note of it in this bug report.\nIf you want to test the update, you can install it with \n su -c 'yum --enablerepo=updates-testing update python-pyqtgraph'. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2015-15974

Comment 28 Fedora Update System 2015-11-04 22:51:22 UTC
python-pyqtgraph-0.9.10-4.fc21.1 has been pushed to the Fedora 21 stable repository. If problems still persist, please make note of it in this bug report.


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