Bug 980934 - Review Request: gstreamer-omx - GStreamer OpenMAX IL wrapper plugin
Summary: Review Request: gstreamer-omx - GStreamer OpenMAX IL wrapper plugin
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Nicolas Chauvet (kwizart)
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 879881 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-07-03 15:14 UTC by Peter Robinson
Modified: 2019-05-24 11:30 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-05-24 10:40:49 UTC
Type: Bug
Embargoed:
kwizart: fedora-review?


Attachments (Terms of Use)

Description Peter Robinson 2013-07-03 15:14:32 UTC
SPEC: http://pbrobinson.fedorapeople.org/gstreamer-omx.spec
SRPM: http://pbrobinson.fedorapeople.org/gstreamer-omx-1.0.0-1.fc19.src.rpm

Description:
This plugin wraps available OpenMAX IL components and makes
them available as standard GStreamer elements.

koji: http://koji.fedoraproject.org/koji/taskinfo?taskID=5569649

Comment 1 Peter Robinson 2013-07-03 15:15:34 UTC
*** Bug 879881 has been marked as a duplicate of this bug. ***

Comment 2 Michael Schwendt 2013-07-04 10:43:23 UTC
* People are sponsored, packages are not. ;)


* This request is not really a dupe of bug 879881, because this one packages the plug-in for GStreamer 1.x whereas the other ticket has been for the GStreamer 0.10.x code.


* Just pointing out: the other packages for GStreamer 1.x use the "gstreamer1-" prefix. Depending on interest in still packaging the 0.10.x plug-in, this one could keep its src.rpm %name, but build both gstreamer1-omx and gstreamer-omx binary rpms. Currently it blocks the gstreamer-omx name. Of course, if the 0.10.x plugin ever were to be built, it could be packaged separately as gstreamer0-omx or such. I just feel it's necessary to mention the inconsistency.


> License:       LGPLv2+

Rather "LGPLv2".

The preamble of all the source files does not contain the "or (at your option) any later version" phrase, but just the LGPL v2.1.

Only scripts/files [generated ones, too] from the build framework refer to "any later version" (grep "at your option" * -R) -- and most of them are GPL'ed.

Comment 3 Peter Robinson 2013-07-04 10:55:10 UTC
 
> * This request is not really a dupe of bug 879881, because this one packages
> the plug-in for GStreamer 1.x whereas the other ticket has been for the
> GStreamer 0.10.x code.

gst 0.10 is EOL upstream and I don't believe it's worth packaging up given that moving forward there's active movement to deprecate and remove gst 0.10 and hence likely not worth the effort.

> > License:       LGPLv2+
> 
> Rather "LGPLv2".

Will fix.

Comment 4 Nicolas Chauvet (kwizart) 2013-07-17 16:53:17 UTC
I think it should be nice to add the default configuration files for:
config/{bellagio,rpi}/gstomx.conf into %%doc

I can probably fix the OMX_Types.h to restore the OMX_VERSION defines, which is why the build fails with bellagio-devel.


Right now I can only do runtime test on bellagio, RPI or eventually on tegra2, so:

The Hack for the RPI would need to be tweaked because our PI remix will not install the library in this path. See omx/gstomx.c +71
That should be trivial to fix/test
There is another hook in omx/gstomxvideoenc.c for the PI, I don't know if we could still build/use a generic version there. (I will do for runtime testing).

Comment 5 Nicolas Chauvet (kwizart) 2013-09-12 17:08:05 UTC
Package Review
==============

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

C/C++:
[X]: Package does not contain kernel modules.
[X]: Package contains no static executables.
[X]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.
[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.
[X]: %build honors applicable compiler flags or justifies otherwise.
[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
[!]: Package requires other packages for directories it uses.
[X]: Package uses nothing in %doc for runtime.
[X]: Package is not known to require ExcludeArch.
[X]: Package complies to the Packaging Guidelines
[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "MIT/X11 (BSD like)", "LGPL", "GPL (v2 or later)", "Unknown or
     generated". 6 files have unknown license. Detailed output of licensecheck
     in /srv/mockbuilder/review-gstreamer-omx/licensecheck.txt
[X]: Package consistently uses macro is (instead of hard-coded directory
     names).
[-]: 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]: Package must own all directories that it creates.
[X]: Package does not own files or directories owned by other packages.
[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]: Useful -debuginfo package or justification otherwise.
[-]: Large documentation must go in a -doc subpackage.
     Note: Documentation size is 143360 bytes in 5 files.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Each %files section contains %defattr if rpm < 4.4
[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]: Fully versioned dependency in subpackages, if present.
[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 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
[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: No rpmlint messages.

===== 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.
[!]: Final provides and requires are sane (see attachments).
[?]: Package functions as described.
[X]: Latest version is packaged.
[X]: 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.
[X]: 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]: 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.
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Uses parallel make.
[x]: SourceX tarball generation or download is documented.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define.

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

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


Rpmlint
-------
Checking: gstreamer-omx-1.0.0-1.fc18.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.



NEEDFIX:
* Current gstreamer-plugins-good use this to enforce the runtime version is at least >= to the buildtime version:
%define         _gst            0.10.36
...
Requires:       %{gstreamer} >= %{_gst}
That been said, that was dropped from gstreamer1-plugins-good.
But this fall under the Must generic item.

* License need fix (as stated previously) others licences are from Khronox provided headers (MIT) or tools used during the compilation.(GPLv2+). As we don't compute the license between the dependencies I don't take them into account for the gsteamer-openmax package. So this is LGPLv2


NOTES:
* I have not made runtime tests with this package yet. I just expect the raspberry pi version will need aditionals patches to fix some paths, and the --with raspberry-pi option will make this build incompatible. But that's because the raspberry-pi is unconformant to the openmax specification as it shouldn't call bcm_host during init IIRC.

* You should be able to use OMX headers provided by bellagio . I've checked the upstream header and it has the version checks, so I've restored it from the bellagio package.

Comment 6 Nicolas Chauvet (kwizart) 2013-09-12 17:09:56 UTC
NOTES:
* And I renew my suggestion to either have the config in place or at least, have it packaged in %doc

Comment 7 Nicolas Chauvet (kwizart) 2019-05-24 10:40:49 UTC
I don't think omxil is still relevant for Linux, the main users would be rpi but it will use mmal 
Others devices with rev-eng hardware are starting to implement v4l2-requests api, (or vdpau for tegra once migrated to v4l2-requests) so that's the way forward.

Let's close this as EOL

Comment 8 Peter Robinson 2019-05-24 11:30:27 UTC
Agreed, and the best implementation of openmax is now different, I meant to close this a while back.


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