Bug 1070946 - Review Request: python-SimpleCV - Open source framework for building computer vision applications
Summary: Review Request: python-SimpleCV - Open source framework for building computer...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Luis Bazan
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1070941 1081782 1089002 1089041 1137018 1137021 1138321 1138330 1138338 1142422 1142430 1142437 1142445
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-02-27 19:23 UTC by Julien Enselme
Modified: 2014-11-01 16:25 UTC (History)
6 users (show)

Fixed In Version: python-SimpleCV-1.3-3.fc21
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-10-29 11:01:51 UTC
Type: ---
Embargoed:
bazanluis20: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Julien Enselme 2014-02-27 19:23:39 UTC
Spec URL: http://jenselme.perso.centrale-marseille.fr/visible/SPECS/python-SimpleCV.spec
SRPM URL: http://jenselme.perso.centrale-marseille.fr/visible/SRPMS/python-SimpleCV-1.3-1.fc20.src.rpm
Description: SimpleCV is a framework for Open Source Machine Vision, using OpenCV and the Python programming language.
Fedora Account System Username: jujens

It depends on python-svgwrite which is not yet in the repository, so I can't provide a koji task link.

Comment 1 Luis Bazan 2014-03-10 17:44:10 UTC
rpmlint:

Checking: python-SimpleCV-1.3-1.fc20.noarch.rpm
          python-SimpleCV-1.3-1.fc20.src.rpm
python-SimpleCV.noarch: W: no-manual-page-for-binary simplecv
2 packages and 0 specfiles checked; 0 errors, 1 warnings.

This is a review *template*. Besides handling the [ ]-marked tests you are
also supposed to fix the template before pasting into bugzilla:
- Add issues you find to the list of issues on top. If there isn't such
  a list, create one.
- Add your own remarks to the template checks.
- Add new lines marked [!] or [?] when you discover new things not
  listed by fedora-review.
- Change or remove any text in the template which is plain wrong. In this
  case you could also file a bug against fedora-review
- Remove the "[ ] Manual check required", you will not have any such lines
  in what you paste.
- Remove attachments which you deem not really useful (the rpmlint
  ones are mandatory, though)
- Remove this text



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

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


Issues:
=======
- Package installs properly.
  Note: Installation errors (see attachment)
  See: https://fedoraproject.org/wiki/Packaging:Guidelines
- Package contains BR: python2-devel or python3-devel


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

Generic:
[ ]: 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:
     "Unknown or generated". 114 files have unknown license. Detailed output
     of licensecheck in /home/lbazan/rpmbuild/SPECS/1070946-python-
     SimpleCV/licensecheck.txt
[ ]: Package contains no bundled libraries without FPC exception.
[ ]: Changelog in prescribed format.
[ ]: 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).
[ ]: Package is named according to the Package Naming Guidelines.
[ ]: Package does not generate any conflict.
[ ]: 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.
[ ]: Spec file is legible and written in American English.
[ ]: Package contains systemd file(s) if in need.
[ ]: Package is not known to require an ExcludeArch tag.
[ ]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 256000 bytes in 25 files.
[ ]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[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 %doc.
[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]: 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 do not use a name that already exist
[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:
[ ]: Python eggs must not download any dependencies during the build process.
[ ]: 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:
[ ]: 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).
[ ]: Package functions as described.
[ ]: Latest version is packaged.
[ ]: 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]: 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]: Dist tag is present (not strictly required in GL).
[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:
[!]: Rpmlint is run on all installed packages.
     Note: Mock build failed
     See: http://fedoraproject.org/wiki/Packaging/Guidelines#rpmlint
[!]: Spec file according to URL is the same as in SRPM.
     Note: Spec file as given by url is not the same as in SRPM (see attached
     diff).
     See: (this test has no URL)


Installation errors
-------------------
INFO: mock.py version 1.1.35 starting...
Start: init plugins
INFO: selinux enabled
Finish: init plugins
Start: run
Mock Version: 1.1.35
INFO: Mock Version: 1.1.35
Start: lock buildroot
INFO: installing package(s): /home/lbazan/rpmbuild/SPECS/1070946-python-SimpleCV/results/python-SimpleCV-1.3-1.fc20.noarch.rpm
ERROR: Command failed: 
 # ['/usr/bin/yum', '--installroot', '/var/lib/mock/fedora-20-i386/root/', 'install', '/home/lbazan/rpmbuild/SPECS/1070946-python-SimpleCV/results/python-SimpleCV-1.3-1.fc20.noarch.rpm', '--setopt=tsflags=nocontexts']
Error: Paquete: python-SimpleCV-1.3-1.fc20.noarch (/python-SimpleCV-1.3-1.fc20.noarch)
           Necesita: python-svgwrite
 Podría intentar utilizar el comando --skip-broken para sortear el problema
Podría intentar ejecutar: rpm- Va --nofiles --nodigest



Rpmlint
-------
Checking: python-SimpleCV-1.3-1.fc20.noarch.rpm
          python-SimpleCV-1.3-1.fc20.src.rpm
python-SimpleCV.noarch: W: no-manual-page-for-binary simplecv
2 packages and 0 specfiles checked; 0 errors, 1 warnings.




Diff spec file in url and in SRPM
---------------------------------
--- /home/lbazan/rpmbuild/SPECS/1070946-python-SimpleCV/srpm/python-SimpleCV.spec	2014-03-10 11:30:00.775301971 -0500
+++ /home/lbazan/rpmbuild/SPECS/1070946-python-SimpleCV/srpm-unpacked/python-SimpleCV.spec	2014-02-27 05:45:03.000000000 -0500
@@ -23,12 +23,12 @@
 
 %build
-%{__python2} setup.py build
+%{__python} setup.py build
 
 
 %install
-%{__python2} setup.py install -O1 --skip-build --root $RPM_BUILD_ROOT
+%{__python} setup.py install -O1 --skip-build --root $RPM_BUILD_ROOT
 
 # Remove shebang
-for lib in $RPM_BUILD_ROOT%{python2_sitelib}/SimpleCV/{,*/,*/*}/*.py; do
+for lib in %{buildroot}%{python_sitelib}/SimpleCV/{,*/,*/*}/*.py; do
  sed '1{\@^#!/usr/bin/env python@d}' $lib > $lib.new &&
  touch -r $lib $lib.new &&
@@ -36,5 +36,5 @@
 done
 
-for lib in $RPM_BUILD_ROOT%{python2_sitelib}/SimpleCV/{,*/,*/*}/*.py; do
+for lib in %{buildroot}%{python_sitelib}/SimpleCV/{,*/,*/*}/*.py; do
  sed '1{\@^#!/usr/bin/python@d}' $lib > $lib.new &&
  touch -r $lib $lib.new &&
@@ -46,9 +46,9 @@
 %doc CHANGELOG.txt LICENSE README.markdown requirements.txt doc/*
 %{_bindir}/simplecv
-%{python2_sitelib}/SimpleCV-%{version}-py%{python2_version}.egg-info/
-%{python2_sitelib}/SimpleCV/
+%{python_sitelib}/SimpleCV-1.3-py2.7.egg-info/
+%{python_sitelib}/SimpleCV/
 
 
 %changelog
-* Sun Feb 09 2014 Julien Enselme <jujens> - 1.3-1
+* Sun Feb 09 2014 Julien Enselme <jenselme> - 1.3-1
 - Initial packaging


Requires
--------
python-SimpleCV (rpmlib, GLIBC filtered):
    /usr/bin/python
    numpy
    opencv-python
    pygame
    python(abi)
    python-ipython
    python-pip
    python-setuptools
    python-svgwrite
    scipy



Provides
--------
python-SimpleCV:
    python-SimpleCV



Source checksums
----------------
http://sourceforge.net/projects/simplecv/files/1.3/SimpleCV-1.3.tar.gz :
  CHECKSUM(SHA256) this package     : 7a0aaf61f357a78429ff4409f75d4ac67b9924f06013245706a3ccfcff8c92b0
  CHECKSUM(SHA256) upstream package : 7a0aaf61f357a78429ff4409f75d4ac67b9924f06013245706a3ccfcff8c92b0


Generated by fedora-review 0.5.1 (bb9bf27) last change: 2013-12-13
Command line :/usr/bin/fedora-review -b 1070946
Buildroot used: fedora-20-i386
Active plugins: Python, Generic, Shell-api
Disabled plugins: Java, C/C++, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby
Disabled flags: EXARCH, EPEL5, BATCH, DISTTAG

Comment 2 Julien Enselme 2014-03-11 23:13:27 UTC
I have just re-uploaded the spec and the srpm. Now the two specs are the same.

Comment 3 Julien Enselme 2014-03-17 17:01:14 UTC
SimpleCV provides tests. I tried to add a %check macro.

But some tests are performed on non-free functionalities of OpenCV that are not packaged in Fedora. So the tests are compelled to fail. So I won't add the %check macro.

Comment 4 Luis Bazan 2014-03-19 21:51:14 UTC
Hi,

I've checked and all seems to be ok by what I give my approval. 

Best Regards.

Comment 5 Matthias Runge 2014-03-24 12:39:09 UTC
Luis, you're supposed to do a manual review on all the form fields intentionally left blank in #c1 !

Esp. if you had done it, you had catched the bundled lib!

E.g.
https://github.com/sightmachine/SimpleCV/blob/master/SimpleCV/MachineLearning/query_imgs/flickrapi2.py

# Copyright 2005 Brian "Beej Jorgensen" Hall <beej>
#
# This work is licensed under the Creative Commons
# Attribution License. To view a copy of this license,
# visit http://creativecommons.org/licenses/by/2.5/ or send
# a letter to Creative Commons, 543 Howard Street, 5th
# Floor, San Francisco, California, 94105, USA.
#
# This license says that I must be credited for any derivative works.
# You do not need to credit me to simply use the FlickrAPI classes in
# your Python scripts--you only need to credit me if you're taking this
# FlickrAPI class and modifying it or redistributing it.

So, copyright is wrong, too.

And I didn't spoke about fonts yet.

https://github.com/sightmachine/SimpleCV/tree/master/SimpleCV/fonts

Comment 6 Luis Bazan 2014-03-24 13:19:31 UTC
Please remove the bundled lib, thanks Matthias by this correction of my mistake.

Regards!

Comment 8 Julien Enselme 2014-03-24 23:58:10 UTC
I removed the bundled lib. I reuploaded the spec: http://jenselme.perso.centrale-marseille.fr/visible/SPECS/python-SimpleCV.spec and SRPMS: http://jenselme.perso.centrale-marseille.fr/visible/SRPMS/python-SimpleCV-1.3-2.fc20.src.rpm

I have some questions regarding the packaging of the fonts. I also checked the license and I confirm that they meet the licensing guideline. I read the font guidelines pages. If I understand them correctly, I will have to make a package per fonts.

However, I search for fonts on my system with locate .ttf. I found out that matplotlib also have fonts but they all are in a python-matplotlib-data-fonts package. The fonts themselves are in /usr/share/matplotlib/mpl-data/fonts instead of /usr/share/fonts. Should I do something like this that instead?

Regards,

Comment 9 Matthias Runge 2014-03-25 15:20:20 UTC
Julien, 

no matter what matplotlib does, please follow the fonts policy.

https://fedoraproject.org/wiki/Packaging:FontsPolicy


As a side note: that package seems to need some love:
https://admin.fedoraproject.org/pkgdb/acls/bugs/python-matplotlib
and esp. that font issue is https://bugzilla.redhat.com/show_bug.cgi?id=477445
The issue is now more than 5 years old.

Comment 10 Julien Enselme 2014-03-25 22:54:03 UTC
OK, thanks Matthias for your answer. I will fellow the fonts policy.

Before that, I have a question: Where am I supposed to fetch the fonts? I wanted to package astloch. According to the Font.py file, they (all the fonts) were downloaded from http://www.google.com/webfonts but it doesn't seem to provide a download link that is easy to use. I search the web and there are lots of ways to get it but I was unable to find an "official" website where I could download the font and use this url as Source for the RPM. Should I just pick one? I didn't find any particular recommendation in the guidelines.

Regards,

Comment 11 Matthias Runge 2014-03-26 20:10:18 UTC
(In reply to Julien Enselme from comment #10)
> OK, thanks Matthias for your answer. I will fellow the fonts policy.
> 
> Before that, I have a question: Where am I supposed to fetch the fonts? I
> wanted to package astloch. According to the Font.py file, they (all the
> fonts) were downloaded from http://www.google.com/webfonts but it doesn't
> seem to provide a download link that is easy to use. I search the web and
> there are lots of ways to get it but I was unable to find an "official"
> website where I could download the font and use this url as Source for the
> RPM. Should I just pick one? I didn't find any particular recommendation in
> the guidelines.

Sadly, this is a quite regular situation. In that case, I'm trying to find the most *official* or *stable* URL (whatever that means)

Currently, the URL is used for trying to provide more information about your package. It's parsed by a human. 

Does http://code.google.com/p/googlefontdirectory/ help you a bit? It seems you could get the fonts from the checkout.

Comment 12 Matthias Runge 2014-03-26 20:16:17 UTC
If in doubt, please ask upstream, where they got the font from. It should be scary to distribute something, where the copyright et. is not 100% clear.

Comment 13 Julien Enselme 2014-03-27 22:24:52 UTC
(In reply to Matthias Runge from comment #11)
> (In reply to Julien Enselme from comment #10)
> > OK, thanks Matthias for your answer. I will fellow the fonts policy.
> > 
> > Before that, I have a question: Where am I supposed to fetch the fonts? I
> > wanted to package astloch. According to the Font.py file, they (all the
> > fonts) were downloaded from http://www.google.com/webfonts but it doesn't
> > seem to provide a download link that is easy to use. I search the web and
> > there are lots of ways to get it but I was unable to find an "official"
> > website where I could download the font and use this url as Source for the
> > RPM. Should I just pick one? I didn't find any particular recommendation in
> > the guidelines.
> 
> Sadly, this is a quite regular situation. In that case, I'm trying to find
> the most *official* or *stable* URL (whatever that means)
> 
> Currently, the URL is used for trying to provide more information about your
> package. It's parsed by a human. 
> 
> Does http://code.google.com/p/googlefontdirectory/ help you a bit? It seems
> you could get the fonts from the checkout.

It does help, thanks for your answer. I am starting to package the fonts.

Comment 14 Matthias Runge 2014-09-17 20:18:17 UTC
Julien,

looking at the requirements: (on github)

numpy
scipy
PIL
ipython
svgwrite
pygame==1.9.1release

I can not find pil in your spec file, but instead pip. I suspect a typo?

Comment 15 Christopher Meng 2014-09-18 00:50:55 UTC
It depends on Ubuntu fonts?

Ooops, you may need to wait for years... It's considered as non-free in Fedora.

Comment 16 Julien Enselme 2014-09-18 15:03:15 UTC
> I can not find pil in your spec file, but instead pip. I suspect a typo?

I think yes. I should correct it to python-pillow.

> It depends on Ubuntu fonts?

The ubuntu fonts are bundled but if we are lucky the package can work correctly without, you just won't be able to use them. I will have to do some tests on that.

Comment 17 Luis Bazan 2014-09-23 14:51:12 UTC
Hi

We could create a patch to not include the font? While we wait for that ticket #961642 is resolved?

Regards!

Comment 18 Julien Enselme 2014-10-03 13:41:38 UTC
I have just updated the SPEC file:
- I corrected the wrong dependency (python-pip -> python-pillow)
- I removed the bundled fonts and added them as dependencies
- I added the %check directive and some patches
  - to remove tests that rely on unfree algorithms of OpenCV and on an actual camera (cannot pass on mock)
  - to correct some path of test images
  - to remove all reference the font ubuntu in Font.py and be sure that the packaged fonts are correctly used.

All the tests pass without the ubuntu fonts and I manually checked that the packaged fonts are correctly used.

I think we can remove the dependence to the ubuntu-fonts package (I am in the CCs of the bug, if/when the package gets approved I will add it to the dependency list).

I guess the package is good now.

SRPM: http://jenselme.perso.centrale-marseille.fr/visible/SRPMS/python-SimpleCV-1.3-3.fc20.src.rpm
SPECS: http://jenselme.perso.centrale-marseille.fr/visible/SPECS/python-SimpleCV.spec

Comment 19 Luis Bazan 2014-10-18 15:02:19 UTC
Hi Julien

Install and works properly without the ubuntu fonts. I think this package is ready!

Approved!

Note:
When ubuntu-fonts ready add as dependency not meanwhile.
https://bugzilla.redhat.com/show_bug.cgi?id=961642

Best Regards!

Comment 20 Julien Enselme 2014-10-20 08:35:05 UTC
New Package SCM Request
=======================
Package Name: python-SimpleCV
Short Description: Open source framework for building computer vision applications
Upstream URL: http://simplecv.org/
Owners: jujens
Branches: f20 f21

Comment 21 Gwyn Ciesla 2014-10-20 11:55:41 UTC
Git done (by process-git-requests).

Comment 22 Fedora Update System 2014-10-20 15:06:00 UTC
python-SimpleCV-1.3-3.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/python-SimpleCV-1.3-3.fc21

Comment 23 Fedora Update System 2014-10-20 15:06:08 UTC
python-SimpleCV-1.3-3.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/python-SimpleCV-1.3-3.fc20

Comment 24 Fedora Update System 2014-10-21 10:28:44 UTC
python-SimpleCV-1.3-3.fc20 has been pushed to the Fedora 20 testing repository.

Comment 25 Fedora Update System 2014-10-29 11:01:51 UTC
python-SimpleCV-1.3-3.fc20 has been pushed to the Fedora 20 stable repository.

Comment 26 Fedora Update System 2014-11-01 16:25:29 UTC
python-SimpleCV-1.3-3.fc21 has been pushed to the Fedora 21 stable repository.


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