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
- 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.
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
As it currently stands you don't build install or package anything for python 2, despite the main package being a python2 package...
(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?
(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.
(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.
(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.
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
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
(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
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
Moved docs to subpackage. Spec: http://www.techie.net/~talbert/python-pyqtgraph.spec SRPM: http://www.techie.net/~talbert/python-pyqtgraph-0.9.10-4.fc22.src.rpm
Thanks for packaging this, I packaged this 2 years ago and one of my package needs this as well.
OK, APPROVED. Thanks for this contribution to Fedora, much appreciated.
My pleasure, and thanks also to you for your time doing the review. I always learn something when I do one of these. :-)
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:
Git done (by process-git-requests).
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
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
python-pyqtgraph-0.9.10-4.fc22 has been pushed to the Fedora 22 testing repository.
python-pyqtgraph-0.9.10-4.fc23 has been pushed to the Fedora 23 stable repository.
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.
Please do you plan to build also for FC21 please?
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
OK, I will build for 21 also.
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
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
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.