Bug 720411 (OpenImageIO)

Summary: Review Request: OpenImageIO - Library for reading and writing images
Product: [Fedora] Fedora Reporter: Richard Shaw <hobbes1069>
Component: Package ReviewAssignee: Ankur Sinha (FranciscoD) <sanjay.ankur>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: notting, package-review, sanjay.ankur
Target Milestone: ---Flags: sanjay.ankur: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: OpenImageIO-0.10.0-2.fc14 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-08-09 01:27:55 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: 720040    
Bug Blocks:    

Description Richard Shaw 2011-07-11 15:11:56 UTC
Spec URL: http://hobbes1069.fedorapeople.org/OpenImageIO/OpenImageIO.spec
SRPM URL: http://hobbes1069.fedorapeople.org/OpenImageIO/OpenImageIO-0.10.0-1.fc14.src.rpm
Description:
OpenImageIO is a library for reading and writing images, and a bunch of related
classes, utilities, and applications. Main features include:
- Extremely simple but powerful ImageInput and ImageOutput APIs for reading and
  writing 2D images that is format agnostic.
- Format plugins for TIFF, JPEG/JFIF, OpenEXR, PNG, HDR/RGBE, Targa, JPEG-2000,
  DPX, Cineon, FITS, BMP, ICO, RMan Zfile, Softimage PIC, DDS, SGI,
  PNM/PPM/PGM/PBM, Field3d.
- An ImageCache class that transparently manages a cache so that it can access
  truly vast amounts of image data.
- A really nice image viewer, iv, also based on OpenImageIO classes (and so 
  will work with any formats for which plugins are available).

Comment 1 Richard Shaw 2011-07-11 15:16:38 UTC
Rpmlint output: (comments inline)

$ rpmlint OpenImageIO-*.rpm
OpenImageIO.src: W: spelling-error %description -l en_US plugins -> plug ins, plug-ins, plugging
OpenImageIO.src: W: invalid-url Source0: https://download.github.com/OpenImageIO-oiio-Release-0.10.0-12-g8055b0f.tar.gz HTTP Error 404: Not Found

I have not been able to find a permanent download link for github as it appears to generate the archives on the fly and then the link expires sometime later (<1 hr).


OpenImageIO.x86_64: W: spelling-error %description -l en_US plugins -> plug ins, plug-ins, plugging
OpenImageIO.x86_64: W: private-shared-object-provides /usr/lib64/python2.7/site-packages/OpenImageIO.so OpenImageIO.so()(64bit)

I looked at filtering this but it didn't seem to fit the guideline requirements.


4 packages and 0 specfiles checked; 0 errors, 4 warnings.

Comment 2 Richard Shaw 2011-07-11 15:18:30 UTC
OpenImageIO bundles pugixml which has been removed from the SRPM and review request 720040 submitted to correct this.

Comment 3 Ankur Sinha (FranciscoD) 2011-07-13 18:00:46 UTC
I'm taking this one too :)

Comment 4 Ankur Sinha (FranciscoD) 2011-07-18 15:11:14 UTC
+ OK
- NA
? Issue

+ Package meets naming and packaging guidelines
+ Spec file matches base package name.
+ Spec has consistant macro usage.
+ Meets Packaging Guidelines.
+ License
? License field in spec matches

^^^
[ankur@ankur OpenImageIO-oiio-8055b0f]$ find . -type f -execdir licensecheck '{}' \; | sed '/UNKNOWN/d' | sed -r 's/.\/.*://' | sort -d | uniq -c
     26  BSD (2 clause)
    188  BSD (3 clause)
     20  GENERATED FILE
     23  GPL (v2)
      1  LGPL (v2 or later) (with incorrect FSF address)
     24  MIT/X11 (BSD like)
    212  *No copyright* GENERATED FILE

So, there are quite a few Licenses in this package ;)
To see what files use what, please remove the last three commands in the command chain above.

? License file included in package

^^^
Only the BSD license is included

+ Spec in American English
+ Spec is legible.
+ Sources match upstream md5sum:
The SOURCE0 URL gives a 404. Probably because it generates a tar on the fly when you click download. 

[ankur@ankur SPECS]$ spectool  -g OpenImageIO.spec
Getting https://download.github.com/OpenImageIO-oiio-Release-0.10.0-12-g8055b0f.tar.gz to ./OpenImageIO-oiio-Release-0.10.0-12-g8055b0f.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:10 --:--:--     0
curl: (22) The requested URL returned error: 404

The md5sums are okay though.
[ankur@ankur SPECS]$ md5sum ~/dump/OpenImageIO-oiio-Release-0.10.0-12-g8055b0f.tar.gz ../SOURCES/OpenImageIO-oiio-Release-0.10.0-12-g8055b0f.tar.gz 
29097c71383ba39a4d50bd3de1b6322d  /home/ankur/dump/OpenImageIO-oiio-Release-0.10.0-12-g8055b0f.tar.gz
29097c71383ba39a4d50bd3de1b6322d  ../SOURCES/OpenImageIO-oiio-Release-0.10.0-12-g8055b0f.tar.gz

- Package needs ExcludeArch
+ BuildRequires correct
- Spec handles locales/find_lang
- Package is relocatable and has a reason to be.

^^^
%defattr, buildroot, clean section not required anymore

+ Package is code or permissible content.
- Doc subpackage needed/used.
+ Packages %doc files don't affect runtime.

+ Headers/static libs in -devel subpackage.
+ Spec has needed ldconfig in post and postun
- .pc files in -devel subpackage/requires pkgconfig
+ .so files in -devel subpackage.
+ -devel package Requires: %{name} = %{version}-%{release}
- .la files are removed.

- Package is a GUI app and has a .desktop file

+ Package compiles and builds on at least one arch.
+ Package has no duplicate files in %files.
+ Package doesn't own any directories other packages own.
+ Package owns all the directories it creates.
? No rpmlint output.
[ankur@ankur SRPMS]$ rpmlint /var/lib/mock/fedora-rawhide-i386/result/*.rpm ../SPECS/OpenImageIO.spec OpenImageIO-0.10.0-1.fc14.src.rpm 
OpenImageIO.i686: W: private-shared-object-provides /usr/lib/python2.7/site-packages/OpenImageIO.so OpenImageIO.so
OpenImageIO.src: W: invalid-url Source0: https://download.github.com/OpenImageIO-oiio-Release-0.10.0-12-g8055b0f.tar.gz HTTP Error 404: Not Found
../SPECS/OpenImageIO.spec: W: invalid-url Source0: https://download.github.com/OpenImageIO-oiio-Release-0.10.0-12-g8055b0f.tar.gz HTTP Error 404: Not Found
OpenImageIO.src: W: invalid-url Source0: https://download.github.com/OpenImageIO-oiio-Release-0.10.0-12-g8055b0f.tar.gz HTTP Error 404: Not Found
5 packages and 1 specfiles checked; 0 errors, 4 warnings.
[ankur@ankur SRPMS]$ 

Please do look at the warning.

+ final provides and requires are sane:
== OpenImageIO-0.10.0-1.fc16.i686.rpm ==
Provides:
OpenImageIO.so  
libOpenImageIO.so.0.10  
OpenImageIO = 0.10.0-1.fc16
OpenImageIO(x86-32) = 0.10.0-1.fc16

Requires:
/sbin/ldconfig  
/sbin/ldconfig  
libGL.so.1  
libGLEW.so.1.6  
libGLU.so.1  
libHalf.so.6  
libICE.so.6  
libIex.so.6  
libIlmImf.so.6  
libIlmThread.so.6  
libImath.so.6  
libOpenImageIO.so.0.10  
libQtCore.so.4  
libQtGui.so.4  
libQtOpenGL.so.4  
libSM.so.6  
libX11.so.6  
libXext.so.6  
libboost_filesystem-mt.so.1.46.1  
libboost_program_options-mt.so.1.46.1  
libboost_python-mt.so.1.46.1  
libboost_regex-mt.so.1.46.1  
libboost_system-mt.so.1.46.1  
libboost_thread-mt.so.1.46.1  
libc.so.6  
libc.so.6(GLIBC_2.0)  
libc.so.6(GLIBC_2.1)  
libc.so.6(GLIBC_2.1.3)  
libc.so.6(GLIBC_2.11)  
libc.so.6(GLIBC_2.2)  
libc.so.6(GLIBC_2.3.2)  
libc.so.6(GLIBC_2.3.4)  
libc.so.6(GLIBC_2.4)  
libc.so.6(GLIBC_2.7)  
libc.so.6(GLIBC_2.8)  
libdl.so.2  
libgcc_s.so.1  
libgcc_s.so.1(GCC_3.0)  
libgcc_s.so.1(GLIBC_2.0)  
libjasper.so.1  
libjpeg.so.62  
libjpeg.so.62(LIBJPEG_6.2)  
libm.so.6  
libm.so.6(GLIBC_2.0)  
libm.so.6(GLIBC_2.1)  
libpng12.so.0  
libpng12.so.0(PNG12_0)  
libpthread.so.0  
libpthread.so.0(GLIBC_2.0)  
libpthread.so.0(GLIBC_2.2)  
libpthread.so.0(GLIBC_2.3.2)  
libpugixml.so.1.0  
libpython2.7.so.1.0  
libstdc++.so.6  
libstdc++.so.6(CXXABI_1.3)  
libstdc++.so.6(GLIBCXX_3.4)  
libstdc++.so.6(GLIBCXX_3.4.11)  
libstdc++.so.6(GLIBCXX_3.4.15)  
libstdc++.so.6(GLIBCXX_3.4.5)  
libstdc++.so.6(GLIBCXX_3.4.9)  
libtiff.so.3  
libz.so.1  
python(abi) = 2.7
rtld(GNU_HASH)  

== OpenImageIO-0.10.0-1.fc16.src.rpm ==
Provides:

Requires:
boost-devel  
glew-devel  
qt-devel  
OpenEXR-devel  
ilmbase-devel  
python2-devel  
txt2man  
libpng  
libtiff-devel  
zlib-devel  
jasper-devel  
pugixml-devel  

== OpenImageIO-debuginfo-0.10.0-1.fc16.i686.rpm ==
Provides:
OpenImageIO-debuginfo = 0.10.0-1.fc16
OpenImageIO-debuginfo(x86-32) = 0.10.0-1.fc16

Requires:

== OpenImageIO-devel-0.10.0-1.fc16.i686.rpm ==
Provides:
OpenImageIO-devel = 0.10.0-1.fc16
OpenImageIO-devel(x86-32) = 0.10.0-1.fc16

Requires:
OpenImageIO(x86-32) = 0.10.0-1.fc16
libOpenImageIO.so.0.10  



SHOULD Items:

+ Should build in mock.
+ Should build on all supported archs
- Should function as described.
+ Should have sane scriptlets.
+ Should have subpackages require base package with fully versioned depend.
+ Should have dist tag
+ Should package latest version
- check for outstanding bugs on package. (For core merge reviews)

Issues:

1. Please check the licensing
2. Please check the rpmlint warning. 

The rest looks okay :)

Comment 5 Richard Shaw 2011-07-18 15:39:01 UTC
(In reply to comment #4)
> [ankur@ankur OpenImageIO-oiio-8055b0f]$ find . -type f -execdir licensecheck
> '{}' \; | sed '/UNKNOWN/d' | sed -r 's/.\/.*://' | sort -d | uniq -c
>      26  BSD (2 clause)
>     188  BSD (3 clause)
>      20  GENERATED FILE
>      23  GPL (v2)
>       1  LGPL (v2 or later) (with incorrect FSF address)
>      24  MIT/X11 (BSD like)
>     212  *No copyright* GENERATED FILE

Neat trick! I didn't know about this one. The good news, the LGPL is part of the documentation that I'm not including in the package (it's out of date). The bad news is I didn't realize that TBB was a bundled library (all the other GPL hits). I've downloaded the source... we'll see how easy it will be to package.


> The SOURCE0 URL gives a 404. Probably because it generates a tar on the fly
> when you click download. 

Yup.


> %defattr, buildroot, clean section not required anymore

Thought I had already got rid of most of that... 


> ? No rpmlint output.
> [ankur@ankur SRPMS]$ rpmlint /var/lib/mock/fedora-rawhide-i386/result/*.rpm
> ../SPECS/OpenImageIO.spec OpenImageIO-0.10.0-1.fc14.src.rpm 
> OpenImageIO.i686: W: private-shared-object-provides
> /usr/lib/python2.7/site-packages/OpenImageIO.so OpenImageIO.so
> OpenImageIO.src: W: invalid-url Source0:
> https://download.github.com/OpenImageIO-oiio-Release-0.10.0-12-g8055b0f.tar.gz
> HTTP Error 404: Not Found
> ../SPECS/OpenImageIO.spec: W: invalid-url Source0:
> https://download.github.com/OpenImageIO-oiio-Release-0.10.0-12-g8055b0f.tar.gz
> HTTP Error 404: Not Found
> OpenImageIO.src: W: invalid-url Source0:
> https://download.github.com/OpenImageIO-oiio-Release-0.10.0-12-g8055b0f.tar.gz
> HTTP Error 404: Not Found
> 5 packages and 1 specfiles checked; 0 errors, 4 warnings.
> [ankur@ankur SRPMS]$ 
> 
> Please do look at the warning.

Yup, but not much I can do about it. Basically it's a C++ python library but it doesn't meet the requirements for manual filtering. I don't think it will hurt anything.

I'm taking a look at TBB, I'll post a new package when I have something.

Thanks!

Richard

Comment 6 Richard Shaw 2011-07-18 21:41:48 UTC
Ok! I talked with upstream and they said just don't use TBB since it's not needed for *nix.

This takes care of the GPL issue.

I also moved the headers in the -devel package to /usr/include/OpenImageIO because some of the names were too generic to leave in /usr/include.

SPEC:
http://hobbes1069.fedorapeople.org/OpenImageIO/OpenImageIO.spec

SRPM:
http://hobbes1069.fedorapeople.org/OpenImageIO/OpenImageIO-0.10.0-2.fc14.src.rpm

Comment 7 Ankur Sinha (FranciscoD) 2011-07-27 19:40:31 UTC
Hello!

Issues have been fixed.

Confirmed that TBB is not being used:
from build.log->  165 -- TBB will not be used

rpmlint warning is ignorable. 

XXX APPROVED XXX

Comment 8 Richard Shaw 2011-07-28 00:08:22 UTC
New Package SCM Request
=======================
Package Name: OpenImageIO
Short Description: Library for reading and writing images
Owners: hobbes1069
Branches: f14 f15
InitialCC:

Comment 9 Gwyn Ciesla 2011-07-28 00:33:12 UTC
Git done (by process-git-requests).

Comment 10 Fedora Update System 2011-07-28 02:14:54 UTC
OpenImageIO-0.10.0-2.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/OpenImageIO-0.10.0-2.fc14

Comment 11 Fedora Update System 2011-07-28 02:15:01 UTC
OpenImageIO-0.10.0-2.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/OpenImageIO-0.10.0-2.fc15

Comment 12 Fedora Update System 2011-07-31 03:51:53 UTC
OpenImageIO-0.10.0-2.fc15 has been pushed to the Fedora 15 testing repository.

Comment 13 Fedora Update System 2011-08-09 01:27:50 UTC
OpenImageIO-0.10.0-2.fc15 has been pushed to the Fedora 15 stable repository.

Comment 14 Fedora Update System 2011-08-09 01:30:49 UTC
OpenImageIO-0.10.0-2.fc14 has been pushed to the Fedora 14 stable repository.

Comment 15 Richard Shaw 2011-08-12 19:33:35 UTC
Package Change Request
======================
Package Name: OpenImageIO
New Branches: f16
Owners: hobbes1069
InitialCC: 

Looks like I missed the branching for F16 somehow.

Comment 16 Gwyn Ciesla 2011-08-16 12:21:53 UTC
Git done (by process-git-requests).

Comment 17 Richard Shaw 2012-04-25 14:52:04 UTC
Package Change Request
======================
Package Name: OpenImageIO
New Branches: el6
Owners: hobbes1069
InitialCC:

Comment 18 Gwyn Ciesla 2012-04-25 15:03:57 UTC
Git done (by process-git-requests).

Comment 19 Richard Shaw 2014-05-20 16:43:24 UTC
Package Change Request
======================
Package Name: OpenImageIO
New Branches: epel7
Owners: hobbes1069
InitialCC:

Comment 20 Gwyn Ciesla 2014-05-20 18:31:34 UTC
Git done (by process-git-requests).