Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1060920 - Review Request: openni2 - OpenNI libraries for 3D-sensing
Summary: Review Request: openni2 - OpenNI libraries for 3D-sensing
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Rich Mattes
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1094787
Blocks: 1225692
TreeView+ depends on / blocked
 
Reported: 2014-02-03 22:31 UTC by Scott K Logan
Modified: 2020-06-05 22:39 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-06-05 22:39:02 UTC
Type: ---
Embargoed:
ppisar: fedora-review?


Attachments (Terms of Use)

Description Scott K Logan 2014-02-03 22:31:30 UTC
Spec URL: http://csc.mcs.sdsmt.edu/openni2/openni2.spec
SRPM URL: http://csc.mcs.sdsmt.edu/openni2/openni2-2.2.0.33-1.fc19.src.rpm
Description: Driver and libraries for OpenNI: The standard framework for 3D sensing
Fedora Account System Username: cottsay

Koji scratch builds:
F19: http://koji.fedoraproject.org/koji/taskinfo?taskID=6487506
F20: http://koji.fedoraproject.org/koji/taskinfo?taskID=6487509

rpmlint output:
openni2.src: W: spelling-error %description -l en_US middleware -> middle ware, middle-ware, middleweight
openni2.src: W: spelling-error %description -l en_US lifecycle -> life cycle, life-cycle, Wycliffe
openni2-doc.noarch: W: no-documentation
openni2-java.noarch: W: only-non-binary-in-usr-lib
openni2-java.noarch: W: no-documentation
openni2.x86_64: W: spelling-error %description -l en_US middleware -> middle ware, middle-ware, middleweight
openni2.x86_64: W: spelling-error %description -l en_US lifecycle -> life cycle, life-cycle, Wycliffe
openni2.x86_64: W: no-soname /usr/lib64/libOpenNI2.so
openni2.x86_64: W: no-soname /usr/lib64/libOpenNI2.jni.so
openni2.x86_64: W: no-manual-page-for-binary NiViewer
openni2.x86_64: W: no-manual-page-for-binary PSLinkConsole
openni2.x86_64: W: no-manual-page-for-binary PS1080Console
openni2-devel.x86_64: W: no-documentation
openni2-examples.x86_64: W: no-documentation
openni2-examples.x86_64: W: no-manual-page-for-binary MWClosestPointApp
openni2-examples.x86_64: W: no-manual-page-for-binary SimpleViewer
openni2-examples.x86_64: W: no-manual-page-for-binary MultiDepthViewer
openni2-examples.x86_64: W: no-manual-page-for-binary ClosestPointViewer
openni2-examples.x86_64: W: no-manual-page-for-binary MultipleStreamRead
openni2-examples.x86_64: W: no-manual-page-for-binary EventBasedRead
openni2-examples.x86_64: W: no-manual-page-for-binary SimpleRead
openni2-java.x86_64: W: only-non-binary-in-usr-lib
openni2-java.x86_64: W: no-documentation
8 packages and 1 specfiles checked; 0 errors, 23 warnings.

Notes:
* This is the next generation of the openni drivers and is different from the openni package currently in Fedora.
* This package cannot be built on ppc, but does build on Arm.
* Most of the "ThirdParty" bundled software is removed before building, and Fedora versions are used. However, XnLib and glh are not Fedora packages, and are left untouched. The same is true in the openni package that is currently in Fedora.

This is my first Fedora package, and I will be needing a sponsor.

Comment 1 Christopher Meng 2014-02-04 00:24:28 UTC
Have you get in touch with the current openni maintainer?

Comment 2 Scott K Logan 2014-02-04 01:43:33 UTC
I have not been in touch with them. I do have a bug active against the openni package, though, as well as another package which they maintain. Neither have any response from the maintainer as of today (I'm not trying to call them out on it or anything; it hasn't been all that long).

I should mention, though, that OpenNI2 has been around for about a year now. As soon as I needed it, I made a package assuming that Fedora would have an official one soon, but this is obviously not the case.

I'd be happy to pull him into the conversation, though.

Comment 3 Christopher Meng 2014-02-04 02:12:11 UTC
My opinion is that the openni in the repo should be upgraded to 2.x instead. This package shouldn't be introduced. 

We should avoid packages with versioned name in Fedora unless the old version is really useful for backwards compatibility.

Anyway, please pull in the openni maintainer first. 

Thanks!

Comment 4 Scott K Logan 2014-02-04 03:13:23 UTC
This sounds fine; I'll add him to this thread.

However, I don't believe that upgrading the current package is the correct course of action.

The OpenNI documentation states that the new iteration is completely different from the old API and is not reverse compatible in any way. The entire structure is different (see [1]).

Also, the two different versions are both being maintained (see [2]). The libraries are named such that they can coexist on the system.

A program can update its code to work with OpenNI2, but can't work with both. I can't see everyone simultaneously switching to OpenNI2, so a cold upgrade (even one that happens on a new release of Fedora) would be rather harsh.

On a different note, I just found a file conflict with the NiViewer between the two versions that I will need to resolve. Expect an update to the spec file and SRPMs.

Thanks!

--scott

[1] http://www.openni.org/openni-migration-guide/
[2] https://github.com/OpenNI

Comment 5 Scott K Logan 2014-02-04 03:59:36 UTC
Updated, renamed NiViewer to resolve the file name conflict (I checked for others, there were none).

Also generated more documentation for the openni2-doc package.

Side note - my rpmlint output in the initial post contained a stray package. The one here is correct.

Spec URL: http://csc.mcs.sdsmt.edu/openni2/openni2.spec
SRPM URL: http://csc.mcs.sdsmt.edu/openni2/openni2-2.2.0.33-3.fc19.src.rpm

Koji scratch builds:
F19: http://koji.fedoraproject.org/koji/taskinfo?taskID=6488049
F20: http://koji.fedoraproject.org/koji/taskinfo?taskID=6488052

rpmlint output:
openni2.src: W: spelling-error %description -l en_US middleware -> middle ware, middle-ware, middleweight
openni2.src: W: spelling-error %description -l en_US lifecycle -> life cycle, life-cycle, Wycliffe
openni2-doc.noarch: W: no-documentation
openni2.x86_64: W: spelling-error %description -l en_US middleware -> middle ware, middle-ware, middleweight
openni2.x86_64: W: spelling-error %description -l en_US lifecycle -> life cycle, life-cycle, Wycliffe
openni2.x86_64: W: no-soname /usr/lib64/libOpenNI2.so
openni2.x86_64: W: no-soname /usr/lib64/libOpenNI2.jni.so
openni2.x86_64: W: no-manual-page-for-binary Ni2Viewer
openni2.x86_64: W: no-manual-page-for-binary PSLinkConsole
openni2.x86_64: W: no-manual-page-for-binary PS1080Console
openni2-devel.x86_64: W: no-documentation
openni2-examples.x86_64: W: no-documentation
openni2-examples.x86_64: W: no-manual-page-for-binary MWClosestPointApp
openni2-examples.x86_64: W: no-manual-page-for-binary SimpleViewer
openni2-examples.x86_64: W: no-manual-page-for-binary MultiDepthViewer
openni2-examples.x86_64: W: no-manual-page-for-binary ClosestPointViewer
openni2-examples.x86_64: W: no-manual-page-for-binary MultipleStreamRead
openni2-examples.x86_64: W: no-manual-page-for-binary EventBasedRead
openni2-examples.x86_64: W: no-manual-page-for-binary SimpleRead
openni2-java.x86_64: W: only-non-binary-in-usr-lib
openni2-java.x86_64: W: no-documentation
7 packages and 1 specfiles checked; 0 errors, 21 warnings.

Thanks,

--scott

Comment 6 Christopher Meng 2014-02-04 04:29:36 UTC
Ok. 

Then you need to rename this with proper name.

OpenNI2

Comment 7 Scott K Logan 2014-02-04 04:40:25 UTC
Christopher -

Are you saying that the package should be renamed to OpenNI2?
So:

OpenNI2
OpenNI2-devel
OpenNI2-doc
OpenNI2-examples
OpenNI2-java

...would be the package names. If this is what you'd like to see, is there a reason that the openni package isn't named similarly? Do you think it would cause confusion if they were named differently like this?

Thanks,

--scott

Comment 8 Christopher Meng 2014-02-04 04:48:43 UTC
Sorry.

Ignore my last comment, somehow I submitted a wrong comment. 

Busy now.... :)

Comment 9 Scott K Logan 2014-02-05 06:55:42 UTC
I updated some paths and got the JNI working per Fedora's packaging spec. Also added a javadoc subpackage (per Fedora's packaging spec).

Spec URL: http://csc.mcs.sdsmt.edu/openni2/openni2.spec
SRPM URL: http://csc.mcs.sdsmt.edu/openni2/openni2-2.2.0.33-4.fc19.src.rpm

Koji scratch builds:
F19: http://koji.fedoraproject.org/koji/taskinfo?taskID=6493248
F20: http://koji.fedoraproject.org/koji/taskinfo?taskID=6493249

rpmlint output:
openni2.src: W: spelling-error %description -l en_US middleware -> middle ware, middle-ware, middleweight
openni2.src: W: spelling-error %description -l en_US lifecycle -> life cycle, life-cycle, Wycliffe
openni2-doc.noarch: W: no-documentation
openni2-javadoc.noarch: W: spelling-error Summary(en_US) Javadocs -> Java docs, Java-docs, Avocados
openni2-javadoc.noarch: W: spelling-error %description -l en_US documentatation -> documentation, instrumentation, argumentation
openni2.x86_64: W: spelling-error %description -l en_US middleware -> middle ware, middle-ware, middleweight
openni2.x86_64: W: spelling-error %description -l en_US lifecycle -> life cycle, life-cycle, Wycliffe
openni2.x86_64: W: no-soname /usr/lib64/libOpenNI2.so
openni2.x86_64: W: no-manual-page-for-binary Ni2Viewer
openni2.x86_64: W: no-manual-page-for-binary PSLinkConsole
openni2.x86_64: W: no-manual-page-for-binary PS1080Console
openni2-devel.x86_64: W: no-documentation
openni2-examples.x86_64: W: no-documentation
openni2-examples.x86_64: W: no-manual-page-for-binary MWClosestPointApp
openni2-examples.x86_64: W: no-manual-page-for-binary SimpleViewer
openni2-examples.x86_64: W: no-manual-page-for-binary MultiDepthViewer
openni2-examples.x86_64: W: no-manual-page-for-binary ClosestPointViewer
openni2-examples.x86_64: W: no-manual-page-for-binary MultipleStreamRead
openni2-examples.x86_64: W: no-manual-page-for-binary EventBasedRead
openni2-examples.x86_64: W: no-manual-page-for-binary SimpleRead
openni2-java.x86_64: W: no-documentation
8 packages and 1 specfiles checked; 0 errors, 21 warnings.

Thanks,

--scott

Comment 10 Scott K Logan 2014-02-19 19:10:54 UTC
I was sponsored into the packaging group as a co-maintainer about a week ago, so this bug no longer blocks FE-NEEDSPONSOR.

Now awaiting approval.

Comment 11 Christopher Meng 2014-03-01 18:44:24 UTC
I removed myself from CC, hope you can find some people to finish the review soon.

Comment 12 Scott K Logan 2014-03-04 01:59:35 UTC
I just consolidated some of the patches and cleaned up the naming. I also changed the pkgconfig to install to datadir instead of libdir, which seems more the norm among Fedora packages.

Since the package seems to be pretty close to complete, I reset the release number to 1 so that the initial release to Fedora is at 1.

I am also now a co-maintainer for the sister-package, openni.

Now only awaiting approval.

Spec URL: http://cottsay.fedorapeople.org/openni2/openni2.spec
SRPM URL: http://cottsay.fedorapeople.org/openni2/openni2-2.2.0.33-1.fc20.src.rpm

Koji scratch builds:
F19: http://koji.fedoraproject.org/koji/taskinfo?taskID=6593263
F20: http://koji.fedoraproject.org/koji/taskinfo?taskID=6593269

rpmlint output:
openni2.src: W: spelling-error %description -l en_US middleware -> middle ware, middle-ware, middleweight
openni2.src: W: spelling-error %description -l en_US lifecycle -> life cycle, life-cycle, Wycliffe
openni2-doc.noarch: W: no-documentation
openni2-javadoc.noarch: W: spelling-error Summary(en_US) Javadocs -> Java docs, Java-docs, Avocados
openni2-javadoc.noarch: W: spelling-error %description -l en_US documentatation -> documentation, instrumentation, argumentation
openni2.x86_64: W: spelling-error %description -l en_US middleware -> middle ware, middle-ware, middleweight
openni2.x86_64: W: spelling-error %description -l en_US lifecycle -> life cycle, life-cycle, Wycliffe
openni2.x86_64: W: no-soname /usr/lib64/libOpenNI2.so
openni2.x86_64: W: no-manual-page-for-binary Ni2Viewer
openni2.x86_64: W: no-manual-page-for-binary PSLinkConsole
openni2.x86_64: W: no-manual-page-for-binary PS1080Console
openni2-devel.x86_64: W: no-documentation
openni2-examples.x86_64: W: no-documentation
openni2-examples.x86_64: W: no-manual-page-for-binary MWClosestPointApp
openni2-examples.x86_64: W: no-manual-page-for-binary SimpleViewer
openni2-examples.x86_64: W: no-manual-page-for-binary MultiDepthViewer
openni2-examples.x86_64: W: no-manual-page-for-binary ClosestPointViewer
openni2-examples.x86_64: W: no-manual-page-for-binary MultipleStreamRead
openni2-examples.x86_64: W: no-manual-page-for-binary EventBasedRead
openni2-examples.x86_64: W: no-manual-page-for-binary SimpleRead
openni2-java.x86_64: W: no-documentation
8 packages and 1 specfiles checked; 0 errors, 21 warnings.

Thanks,

--scott

Comment 13 Christopher Meng 2014-03-04 02:15:11 UTC
Is it a noarch package?

If so you can install pkgconfig file to %_datadir; If not please install to %_libdir.

Comment 14 Scott K Logan 2014-03-04 20:49:52 UTC
So noarch vs arch is how they end up in different directories...I understand now. This makes a lot of sense now that I know.

Thank you, the package has been updated.

Spec URL: http://cottsay.fedorapeople.org/openni2/openni2.spec
SRPM URL: http://cottsay.fedorapeople.org/openni2/openni2-2.2.0.33-1.fc20.src.rpm

Koji scratch builds:
F19: http://koji.fedoraproject.org/koji/taskinfo?taskID=6597089
F20: http://koji.fedoraproject.org/koji/taskinfo?taskID=6597100

rpmlint output:
openni2.src: W: spelling-error %description -l en_US middleware -> middle ware, middle-ware, middleweight
openni2.src: W: spelling-error %description -l en_US lifecycle -> life cycle, life-cycle, Wycliffe
openni2-doc.noarch: W: no-documentation
openni2-javadoc.noarch: W: spelling-error Summary(en_US) Javadocs -> Java docs, Java-docs, Avocados
openni2-javadoc.noarch: W: spelling-error %description -l en_US documentatation -> documentation, instrumentation, argumentation
openni2.x86_64: W: spelling-error %description -l en_US middleware -> middle ware, middle-ware, middleweight
openni2.x86_64: W: spelling-error %description -l en_US lifecycle -> life cycle, life-cycle, Wycliffe
openni2.x86_64: W: no-soname /usr/lib64/libOpenNI2.so
openni2.x86_64: W: no-manual-page-for-binary Ni2Viewer
openni2.x86_64: W: no-manual-page-for-binary PSLinkConsole
openni2.x86_64: W: no-manual-page-for-binary PS1080Console
openni2-devel.x86_64: W: no-documentation
openni2-examples.x86_64: W: no-documentation
openni2-examples.x86_64: W: no-manual-page-for-binary MWClosestPointApp
openni2-examples.x86_64: W: no-manual-page-for-binary SimpleViewer
openni2-examples.x86_64: W: no-manual-page-for-binary MultiDepthViewer
openni2-examples.x86_64: W: no-manual-page-for-binary ClosestPointViewer
openni2-examples.x86_64: W: no-manual-page-for-binary MultipleStreamRead
openni2-examples.x86_64: W: no-manual-page-for-binary EventBasedRead
openni2-examples.x86_64: W: no-manual-page-for-binary SimpleRead
openni2-java.x86_64: W: no-documentation
8 packages and 1 specfiles checked; 0 errors, 21 warnings.

Thanks,

--scott

Comment 15 Volker Fröhlich 2014-05-06 15:54:03 UTC
http://www.openni.org/ seems to be unreachable.

Comment 16 Scott K Logan 2014-05-06 20:17:02 UTC
PrimeSense was bought by Apple and they shut down the website [1]. The article specifically mentions that the code on GitHub will stay there. I'll change the SPEC file to point there instread.

It looks like freenect has a version of the OpenNI2 driver that is supposed to be placed in the %{_libdir}/openni2 directory. Is there such a thing as a directory conflict, or can both packages provide that directory?

[1] http://www.i-programmer.info/news/194-kinect/7004-openni-to-close-.html

Comment 17 Jiri Kastner 2014-05-08 09:40:19 UTC
(In reply to Scott K Logan from comment #16)
> PrimeSense was bought by Apple and they shut down the website [1]. The
> article specifically mentions that the code on GitHub will stay there. I'll
> change the SPEC file to point there instread.
> 
> It looks like freenect has a version of the OpenNI2 driver that is supposed
> to be placed in the %{_libdir}/openni2 directory. Is there such a thing as a
> directory conflict, or can both packages provide that directory?
> 
> [1] http://www.i-programmer.info/news/194-kinect/7004-openni-to-close-.html

for that is bug 1094787, see bz dependency

Comment 18 Jiri Kastner 2014-08-19 20:05:11 UTC
seems development moved here:
http://structure.io/openni
and git is here
https://github.com/occipital/openni2

Comment 19 Rich Mattes 2015-03-24 21:00:12 UTC
I'll take this for review.

Comment 20 Rich Mattes 2015-05-22 17:41:51 UTC
Here's my first pass at the review.  It's in good shape, but there are still issues.  See the "Note" sections under the [!] items for more details.

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

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


Issues:
=======
- Packages have proper BuildRequires/Requires on jpackage-utils
- Development (unversioned) .so files in -devel subpackage, if present.
  Note: Unversioned so-files directly in %_libdir.
  See: http://fedoraproject.org/wiki/Packaging/Guidelines#DevelPackages
- Javadoc subpackages should not have Requires: jpackage-utils
  Note: jpackage-utils requires are automatically generated by the buildsystem
  See: https://fedoraproject.org/wiki/Packaging:Java


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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Header files in -devel subpackage, if present.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

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:
     "Apache (v2.0)", "BSD (2 clause)", "LGPL (v3 or later)", "Apache (v2.0)
     LGPL (v3 or later)", "Unknown or generated". 152 files have unknown
     license. 
     Note: ThirdParty/GL/glh is BSD
[!]: License file installed when any subpackage combination is installed.
     Note: -doc and -javadoc packages do not include license
[x]: Package must own all directories that it creates.
     Note: Directories without known owners: /etc/udev, /etc/udev/rules.d
[x]: Package does not own files or directories owned by other packages.
     Note: Dirs in package are owned also by:
     /usr/lib64/openni2/Drivers(openni2, libfreenect-openni),
     /usr/lib64/openni2(openni2, libfreenect-openni)
[!]: %build honors applicable compiler flags or justifies otherwise.
     Note: The Fedora CFLAGS are not present during build
[!]: Package contains no bundled libraries without FPC exception.
     Note: ThirdParty/ contains GL headers, binaries, and libjpeg
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[x]: 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.
[!]: Requires correct, justified where necessary.
     Note: the %{?_isa} macro is missing from the devel package requirement on the base package
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[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.
[x]: Packages must not store files under /srv, /opt or /usr/local
[!]: Package complies to the Packaging Guidelines
     Note: Use new %license macro
     Note: No sonames on libOpenNI2.so https://fedoraproject.org/wiki/Packaging:Guidelines#Downstream_.so_name_versioning
[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]: 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.

Java:
[x]: Bundled jar/class files should be removed before build
[x]: Javadoc documentation files are generated and included in -javadoc
     subpackage
[x]: Javadocs are placed in %{_javadocdir}/%{name} (no -%{version} symlink)

Maven:
[-]: If package contains pom.xml files install it (including depmaps) even
     when building with ant
[x]: Old add_to_maven_depmap macro is not being used

===== 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.
[x]: Final provides and requires are sane (see attachments).
[!]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in
     openni2-devel , openni2-java , openni2-javadoc , openni2-doc ,
     openni2-examples
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[!]: Patches link to upstream bugs/comments/lists or are otherwise justified.
     Note: no comments around patches
[x]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[-]: %check is present and all tests pass.
[!]: Packages should try to preserve timestamps of original installed files.
     Note: -p flag should be added to "install" commands in spec
[!]: Spec use %global instead of %define unless justified.
     Note: %define requiring justification: %define psarch x86, %define psarch
     x64, %define psarch Arm
[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]: Uses parallel make %{?_smp_mflags} macro.
[x]: The placement of pkgconfig(.pc) files are correct.
[x]: SourceX is a working URL.
[x]: Package should compile and build into binary rpms on all supported
     architectures.

Java:
[x]: Packages are noarch unless they use JNI
     Note: openni2 subpackage is not noarch. Please verify manually
[x]: Package uses upstream build method (ant/maven/etc.)

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on all installed packages.
[-]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.
     Note: Test run failed
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: openni2-2.2.0.33-1.fc21.x86_64.rpm
          openni2-devel-2.2.0.33-1.fc21.x86_64.rpm
          openni2-java-2.2.0.33-1.fc21.x86_64.rpm
          openni2-javadoc-2.2.0.33-1.fc21.noarch.rpm
          openni2-doc-2.2.0.33-1.fc21.noarch.rpm
          openni2-examples-2.2.0.33-1.fc21.x86_64.rpm
          openni2-2.2.0.33-1.fc21.src.rpm
openni2.x86_64: W: spelling-error %description -l en_US middleware -> middle ware, middle-ware, middleweight
openni2.x86_64: W: spelling-error %description -l en_US lifecycle -> life cycle, life-cycle, Wycliffe
openni2.x86_64: W: no-soname /usr/lib64/libOpenNI2.so
openni2.x86_64: W: no-manual-page-for-binary Ni2Viewer
openni2.x86_64: W: no-manual-page-for-binary PSLinkConsole
openni2.x86_64: W: no-manual-page-for-binary PS1080Console
openni2-devel.x86_64: W: only-non-binary-in-usr-lib
openni2-devel.x86_64: W: no-documentation
openni2-java.x86_64: W: no-documentation
openni2-javadoc.noarch: W: spelling-error Summary(en_US) Javadocs -> Java docs, Java-docs, Avocados
openni2-javadoc.noarch: W: spelling-error %description -l en_US documentatation -> documentation, instrumentation, argumentation
openni2-doc.noarch: W: no-documentation
openni2-examples.x86_64: W: no-documentation
openni2-examples.x86_64: W: no-manual-page-for-binary MWClosestPointApp
openni2-examples.x86_64: W: no-manual-page-for-binary SimpleViewer
openni2-examples.x86_64: W: no-manual-page-for-binary MultiDepthViewer
openni2-examples.x86_64: W: no-manual-page-for-binary ClosestPointViewer
openni2-examples.x86_64: W: no-manual-page-for-binary MultipleStreamRead
openni2-examples.x86_64: W: no-manual-page-for-binary EventBasedRead
openni2-examples.x86_64: W: no-manual-page-for-binary SimpleRead
openni2.src: W: spelling-error %description -l en_US middleware -> middle ware, middle-ware, middleweight
openni2.src: W: spelling-error %description -l en_US lifecycle -> life cycle, life-cycle, Wycliffe
7 packages and 0 specfiles checked; 0 errors, 22 warnings.




Requires
--------
openni2-java (rpmlib, GLIBC filtered):
    java
    jpackage-utils
    libOpenNI2.so()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libm.so.6()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    openni2
    rtld(GNU_HASH)

openni2-javadoc (rpmlib, GLIBC filtered):
    jpackage-utils

openni2 (rpmlib, GLIBC filtered):
    config(openni2)
    ld-linux-x86-64.so.2()(64bit)
    libGL.so.1()(64bit)
    libOpenNI2.so()(64bit)
    libc.so.6()(64bit)
    libdl.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libglut.so.3()(64bit)
    libjpeg.so.62()(64bit)
    libjpeg.so.62(LIBJPEG_6.2)(64bit)
    libm.so.6()(64bit)
    libpthread.so.0()(64bit)
    librt.so.1()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libudev.so.1()(64bit)
    libudev.so.1(LIBUDEV_183)(64bit)
    libusb-1.0.so.0()(64bit)
    rtld(GNU_HASH)

openni2-doc (rpmlib, GLIBC filtered):

openni2-examples (rpmlib, GLIBC filtered):
    libGL.so.1()(64bit)
    libMWClosestPoint.so()(64bit)
    libOpenNI2.so()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libglut.so.3()(64bit)
    libm.so.6()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    openni2
    rtld(GNU_HASH)

openni2-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    openni2
    pkgconfig(libusb-1.0)



Provides
--------
openni2-java:
    libOpenNI2.jni.so()(64bit)
    openni2-java
    openni2-java(x86-64)

openni2-javadoc:
    openni2-javadoc

openni2:
    config(openni2)
    libDummyDevice.so()(64bit)
    libOniFile.so()(64bit)
    libOpenNI2.so()(64bit)
    libPS1080.so()(64bit)
    libPSLink.so()(64bit)
    openni2
    openni2(x86-64)

openni2-doc:
    openni2-doc

openni2-examples:
    openni2-examples
    openni2-examples(x86-64)

openni2-devel:
    openni2-devel
    openni2-devel(x86-64)
    pkgconfig(libopenni2)



Unversioned so-files
--------------------
openni2: /usr/lib64/libOpenNI2.so
openni2: /usr/lib64/openni2/Drivers/libDummyDevice.so
openni2: /usr/lib64/openni2/Drivers/libOniFile.so
openni2: /usr/lib64/openni2/Drivers/libPS1080.so
openni2: /usr/lib64/openni2/Drivers/libPSLink.so
openni2-java: /usr/lib64/openni2/libOpenNI2.jni.so

Source checksums
----------------
https://github.com/OpenNI/OpenNI2/archive/7bef8f639e4d64a85a794e85fe3049dbb2acd32e/openni2-2.2.0.33-7bef8f6.tar.gz :
  CHECKSUM(SHA256) this package     : 02809a74d42ccb32fd06ea9f01e4a4e7193d6b133747c212948d8f7f6b9a6d29
  CHECKSUM(SHA256) upstream package : 02809a74d42ccb32fd06ea9f01e4a4e7193d6b133747c212948d8f7f6b9a6d29


Generated by fedora-review 0.5.2 (63c24cb) last change: 2014-07-14
Command line :/usr/bin/fedora-review -b 1060920
Buildroot used: fedora-21-x86_64
Active plugins: Generic, Shell-api, Java, C/C++
Disabled plugins: Python, SugarActivity, fonts, Haskell, Ocaml, Perl, R, PHP, Ruby
Disabled flags: EXARCH, EPEL5, BATCH, DISTTAG

Comment 21 Scott K Logan 2015-07-05 20:57:33 UTC
Thanks for digging into this, Rich. I know it is a pretty big package. This was among the first *real* SPEC files that I wrote, so looking back now, I see a bunch of rookie mistakes. I did my best to "spiffy" it up - I'm sure we'll spot more issues, however.

I should mention that I intend to target EPEL7.

Key changes:
- Update to packaging guidelines regarding %license
- Performed downstream .so versioning (See [1]) for libOpenNI2.so. I gathered from the changelog that API changes could happen with minor version changes, so that is the SONAME version I used. If my understanding is correct, we DON'T need to .so version the libraries in /usr/lib64/openni2/ because they aren't ever linked against...correct?
- Removed Requires: jpackage-utils
- Added %{?_isa} to subpackage Requires where appropriate
- %install phase now preserves timestamps
- Use CFLAGS during build
- Fixes for GCC 5 and special CFLAGS used by Fedora

[1] https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Downstream_.so_name_versioning

Spec URL: http://cottsay.fedorapeople.org/openni2/openni2.spec
SRPM URL: http://cottsay.fedorapeople.org/openni2/openni2-2.2.0.33-2.fc23.src.rpm

Koji scratch builds:
rawhide: http://koji.fedoraproject.org/koji/taskinfo?taskID=10291443

rpmlint output:
openni2.src: W: spelling-error %description -l en_US middleware -> middle ware, middle-ware, middleweight
openni2.src: W: spelling-error %description -l en_US lifecycle -> life cycle, life-cycle, Wycliffe
openni2-doc.noarch: W: no-documentation
openni2-javadoc.noarch: W: spelling-error Summary(en_US) Javadocs -> Java docs, Java-docs, Avocados
openni2.x86_64: W: spelling-error %description -l en_US middleware -> middle ware, middle-ware, middleweight
openni2.x86_64: W: spelling-error %description -l en_US lifecycle -> life cycle, life-cycle, Wycliffe
openni2.x86_64: W: no-manual-page-for-binary Ni2Viewer
openni2.x86_64: W: no-manual-page-for-binary PSLinkConsole
openni2.x86_64: W: no-manual-page-for-binary PS1080Console
openni2-devel.x86_64: W: only-non-binary-in-usr-lib
openni2-devel.x86_64: W: no-documentation
openni2-examples.x86_64: W: no-documentation
openni2-examples.x86_64: W: no-manual-page-for-binary MWClosestPointApp
openni2-examples.x86_64: W: no-manual-page-for-binary SimpleViewer
openni2-examples.x86_64: W: no-manual-page-for-binary MultiDepthViewer
openni2-examples.x86_64: W: no-manual-page-for-binary ClosestPointViewer
openni2-examples.x86_64: W: no-manual-page-for-binary MultipleStreamRead
openni2-examples.x86_64: W: no-manual-page-for-binary EventBasedRead
openni2-examples.x86_64: W: no-manual-page-for-binary SimpleRead
openni2-java.x86_64: W: no-documentation
8 packages and 1 specfiles checked; 0 errors, 20 warnings.

Thanks,

--scott

Comment 22 Jiri Kastner 2015-10-07 12:17:29 UTC
for fedora 22 'dnf copr enable -y jkastner/various'. trying to install openni2-examples, i get this:

"Error: nothing provides libMWClosestPoint.so()(64bit) needed by openni2-examples-2.2.0.33-2.fc22.x86_64"

Comment 24 Jiri Kastner 2015-10-07 12:58:52 UTC
well MWClosestPointApp needs libMWClosestPoint.so in reachable path:
[indy@localhost ~]$ MWClosestPointApp
MWClosestPointApp: error while loading shared libraries: libMWClosestPoint.so: cannot open shared object file: No such file or directory

there are two solutions
1.) add _libdir/openni2 to /etc/ld-config.d, but i think openni2 is folder for openni2 itself
2.) put libMWClosestPoint.so to _libdir itself

Comment 25 Volker Fröhlich 2019-11-15 21:58:54 UTC
Since nothing changed here in 4 years, it's probably safe to close this ticket.

Comment 26 Scott K Logan 2020-06-05 22:39:02 UTC
This packages has largely been abandoned, and I'm not aware of any modern products being released that utilize it. So many patches are needed to get it where it needs to be (debian has 18 for this package), and the spec file isn't very maintainable.

I'm going to abandon this review. If someone is interested in taking it on, please feel free.


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