Bug 784145 - Review Request: libomxil-bellagio - OpenMAX Integration Layer
Review Request: libomxil-bellagio - OpenMAX Integration Layer
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Niels de Vos
Fedora Extras Quality Assurance
https://sourceforge.net/tracker/?func...
: Patch
Depends On:
Blocks: ARMTracker
  Show dependency treegraph
 
Reported: 2012-01-23 18:24 EST by Nicolas Chauvet (kwizart)
Modified: 2012-09-08 14:36 EDT (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-09-08 14:36:48 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
ndevos: fedora‑review+
limburgher: fedora‑cvs+


Attachments (Terms of Use)
Patch to fix comile errors with -Werror (6.92 KB, patch)
2012-04-22 13:49 EDT, Niels de Vos
no flags Details | Diff
Additional patch to fix the build with -Werror on Fedora 17 (1.54 KB, text/plain)
2012-07-26 03:45 EDT, Niels de Vos
no flags Details

  None (edit)
Description Nicolas Chauvet (kwizart) 2012-01-23 18:24:17 EST
Spec URL:
http://kwizart.fedorapeople.org/review/libomxil-bellagio.spec
SRPM URL:
http://kwizart.fedorapeople.org/review/libomxil-bellagio-0.9.3-1.fc14.src.rpm
Description: OpenMAX Integration Layer
Comment 1 Niels de Vos 2012-04-22 13:49:12 EDT
Created attachment 579325 [details]
Patch to fix comile errors with -Werror

Here is the review, please correct any deficiencies and post an updated spec and src.rpm:

 +:ok, =:needs attention, -:needs fixing

MUST Items:
[-] MUST: rpmlint must be run on every package.
$ rpmlint /var/lib/mock/fedora-16-x86_64/result/*.rpm libomxil-bellagio.spec 
libomxil-bellagio.src: W: spelling-error %description -l en_US codecs -> code cs, code-cs, codex
libomxil-bellagio.src: W: spelling-error %description -l en_US functionalities -> functionalists, functionality, functionalist
libomxil-bellagio.src: W: spelling-error %description -l en_US alsa -> Alas, alas, Alisa
libomxil-bellagio.src: W: spelling-error %description -l en_US aac -> AC, Ac, ac
libomxil-bellagio.src: W: spelling-error %description -l en_US ogg -> Gog, egg, org
libomxil-bellagio.src: W: invalid-url Source0: http://ignum.dl.sourceforge.net/project/omxil/omxil/Bellagio%200.9.3/libomxil-bellagio-0.9.3.tar.gz <urlopen error [Errno 104] Connection reset by peer>
libomxil-bellagio.x86_64: W: spelling-error %description -l en_US codecs -> code cs, code-cs, codex
libomxil-bellagio.x86_64: W: spelling-error %description -l en_US functionalities -> functionalists, functionality, functionalist
libomxil-bellagio.x86_64: W: spelling-error %description -l en_US alsa -> Alas, alas, Alisa
libomxil-bellagio.x86_64: W: spelling-error %description -l en_US aac -> AC, Ac, ac
libomxil-bellagio.x86_64: W: spelling-error %description -l en_US ogg -> Gog, egg, org
libomxil-bellagio.x86_64: W: devel-file-in-non-devel-package /usr/lib64/bellagio/libomxclocksrc.so
libomxil-bellagio.x86_64: W: devel-file-in-non-devel-package /usr/lib64/bellagio/libomxaudio_effects.so
libomxil-bellagio.x86_64: W: devel-file-in-non-devel-package /usr/lib64/omxloaders/libomxdynamicloader.so
libomxil-bellagio.x86_64: W: devel-file-in-non-devel-package /usr/lib64/bellagio/libomxvideosched.so
libomxil-bellagio-devel.x86_64: W: no-documentation
libomxil-bellagio.spec: W: invalid-url Source0: http://ignum.dl.sourceforge.net/project/omxil/omxil/Bellagio%200.9.3/libomxil-bellagio-0.9.3.tar.gz <urlopen error [Errno 104] Connection reset by peer>
4 packages and 1 specfiles checked; 0 errors, 17 warnings.

The "spelling-error" can be ignored, looks fine to me (although I'm not a native English speaker).

The "devel-file-in-non-devel-package" seem to be caused by the .so symlink. I do not know if that symlink is required for correct functioning. If not, please remove those symlinks, if they are required, you may ignore the warning (the .so are in their own directory).

"invalid-url" needs to be fixed, see below.

"no-documentation" in the -devel package seems fine as well, there is no developers documentation available in the sources either. The OpenMAX specification seems to be documented at http://www.khronos.org/openmax.

[+] MUST: The package must be named according to the Package Naming Guidelines.
[+] MUST: The spec file name must match the base package %{name}
[+] MUST: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines.
[+] MUST: The License field in the package spec file must match the actual license.
[+] MUST: 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 must be included in %doc.
[+] MUST: The spec file must be written in American English.
[+] MUST: The spec file for the package MUST be legible.
[-] MUST: The sources used to build the package must match the upstream source, as provided in the spec URL.
Please use a URL as described here: https://fedoraproject.org/wiki/Packaging:SourceURL#Sourceforge.net

$ sha1sum libomxil-bellagio-0.9.3.tar.gz SOURCES/libomxil-bellagio-0.9.3.tar.gz 
04afd1bde078afa5a03190b6c6865406e2bd01d8  libomxil-bellagio-0.9.3.tar.gz
cff7692238a860f22a67ca6f0efcbdc63922f426  SOURCES/libomxil-bellagio-0.9.3.tar.gz

To download, use this to keep the time of the archive:
$ wget -m -nd \
http://downloads.sourceforge.net/project/omxil/omxil/Bellagio%200.9.3/libomxil-bellagio-0.9.3.tar.gz

[+] MUST: The package must successfully compile and build into binary rpms on at least one supported architecture.
Locally built with mock on x86_64 and on Fedora ARM (as this is blocking the ARMTracker Bug):
http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=752390
Attaching a patch that makes it possible to build with -Werror, it would make it possible to remove the first sed-expression. Maybe you can provide this patch upstream (I tried but am not able to attach patches there).

[+] MUST: If the package does not successfully compile, build or work on an architecture, then those architectures should be listed in the spec in ExcludeArch.
[+] MUST: All build dependencies must be listed in BuildRequires
[+] MUST: Every binary RPM package which stores shared library files (not just symlinks) in any of the dynamic linker's default paths, must call ldconfig in %post and %postun.
[+] MUST: A package must own all directories that it creates. If it does not create a directory that it uses, then it should require a package which does create that directory.
[+] MUST: A package must not contain any duplicate files in the %files listing.
[+] MUST: Permissions on files must be set properly. Executables should be set with executable permissions, for example. Every %files section must include a %defattr(...) line.
[+] MUST: Each package must consistently use macros, as described in the macros section of Packaging Guidelines.
[+] MUST: The package must contain code, or permissible content. This is described in detail in the code vs. content section of Packaging Guidelines.
[+] MUST: If a package includes something as %doc, it must not affect the runtime of the application.
[+] MUST: Header files must be in a -devel package.
[+] MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig' (for directory ownership and usability).
the 
[+] MUST: If a package contains library files with a suffix (e.g. libfoo.so.1.1), then library files that end in .so (without suffix) must go in a -devel package.
[+] MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name} = %{version}-%{release} 
[+] MUST: Packages must NOT contain any .la libtool archives, these should be removed in the spec.
[+] MUST: Packages must not own files or directories already owned by other packages.
[+] MUST: All filenames in rpm packages must be valid UTF-8.

SHOULD Items:
[+] SHOULD: The reviewer should test that the package builds in mock.
[+] SHOULD: The package should compile and build into binary rpms on all supported architectures.
[=] SHOULD: The reviewer should test that the package functions as described.
It would be appreciated if you can build the provided test-programs and package them in a -tests sub-package. You can build the test-programs like this:

make check "LDFLAGS=-L$PWD/src/.libs" \
    "CFLAGS=-I$RPM_BUILD_ROOT/%{_includedir}"

If you can think of a way (I could not) to include automated tests with %check, that would be a great alternative.

[+] SHOULD: The placement of pkgconfig(.pc) files depends on their usecase, and this is usually for development purposes, so should be placed in a -devel pkg. A reasonable exception is that the main pkg itself is a devel tool not installed in a user runtime, e.g. gcc or gdb.
Comment 2 Nicolas Chauvet (kwizart) 2012-07-22 09:03:19 EDT
Spec URL:
http://kwizart.fedorapeople.org/review/libomxil-bellagio.spec
SRPM URL:
http://kwizart.fedorapeople.org/review/libomxil-bellagio-0.9.3-2.fc18.src.rpm
Description: OpenMAX Integration Layer

Changelog:
- Fix build with -Werror - patch from Niels de Vos
- Convert nodoc fix to a patch
- Add BR doxygen
- Enable make check and create a -test subpackage

Sorry for the lack of answer
Comment 3 Niels de Vos 2012-07-24 08:00:55 EDT
Hi Nicolas,

I'm not sure how you are testing the building of your packages, but you should either use mock or koji/fedpkg.

On Fedora 17 I hit the following error when building your new src.rpm with mock:
make[3]: Entering directory `/builddir/build/BUILD/libomxil-bellagio-0.9.3/src'
gcc -DHAVE_CONFIG_H -I. -I..    -DOMXILCOMPONENTSPATH=\"/usr/lib64/bellagio/\" -I../include -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4  -m64 -mtune=generic -Wall -Werror -DCONFIG_DEBUG_LEVEL=0 -c -o omxregister_bellagio-omxregister.o `test -f 'omxregister.c' || echo './'`omxregister.c
omxregister.c: In function 'buildComponentsList':
omxregister.c:249:13: error: ignoring return value of 'fwrite', declared with attribute warn_unused_result [-Werror=unused-result]
omxregister.c:250:13: error: ignoring return value of 'fwrite', declared with attribute warn_unused_result [-Werror=unused-result]
omxregister.c:325:14: error: ignoring return value of 'fwrite', declared with attribute warn_unused_result [-Werror=unused-result]
cc1: all warnings being treated as errors
make[3]: *** [omxregister_bellagio-omxregister.o] Error 1

On Fedora Rawhide in mock:
make[3]: Entering directory `/builddir/build/BUILD/libomxil-bellagio-0.9.3/test/components/audio_effects'
make  omxvolcontroltest omxaudiomixertest
make[4]: Entering directory `/builddir/build/BUILD/libomxil-bellagio-0.9.3/test/components/audio_effects'
gcc -DHAVE_CONFIG_H -I. -I../../..    -I../../../test/components/common -I/usr/include -I/builddir/build/BUILDROOT/libomxil-bellagio-0.9.3-2.fc18.x86_64//usr/include -c -o omxvolcontroltest-omxvolcontroltest.o `test -f 'omxvolcontroltest.c' || echo './'`omxvolcontroltest.c
In file included from omxvolcontroltest.c:27:0:
omxvolcontroltest.h:38:22: fatal error: OMX_Core.h: No such file or directory
compilation terminated.

I don't thinks 'make check' in %check does anything useful, it is probably sufficient to include the test-binaries in the -test subpackage and remove the %check completely.
Comment 4 Nicolas Chauvet (kwizart) 2012-07-24 10:44:46 EDT
Got it, seems like using autoreconf -vif only worked in F-16. I've tested it in mock, but seems like only on F-16.

This time a scratch build suceeded:
http://koji.fedoraproject.org/koji/taskinfo?taskID=4325736

Spec URL:
http://kwizart.fedorapeople.org/review/libomxil-bellagio.spec
SRPM URL:
http://kwizart.fedorapeople.org/review/libomxil-bellagio-0.9.3-3.fc18.src.rpm
Description: OpenMAX Integration Layer

Changelog:
- Avoid running autoreconf
- Avoid running make check
- Fix manual building of test binaries
Comment 5 Niels de Vos 2012-07-25 07:03:32 EDT
Nice, thanks for all the corrections.

I've tested this on arm-koji as well:
$ arm-koji build --scratch f18 /tmp/libomxil-bellagio-0.9.3-3.fc18.src.rpm
...
Task info: http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=997354
...
997354 build (f18, libomxil-bellagio-0.9.3-3.fc18.src.rpm) completed successfully

Building on fedora-17 seems still to fail though. But if you are not interested in getting the package in F17, I don't see it as a problem.

I'll set fedora_review+, signalling that this package is APPROVED.

Now you can file an SCM request as directed here:
- http://fedoraproject.org/wiki/Package_SCM_admin_requests
Comment 6 Nicolas Chauvet (kwizart) 2012-07-25 08:18:37 EDT
(In reply to comment #5)
...
> Building on fedora-17 seems still to fail though. But if you are not
Works for me with mock fedora-17 on x86_64, it has failed on arm or x86 ?
Comment 7 Nicolas Chauvet (kwizart) 2012-07-25 08:20:41 EDT
New Package SCM Request
=======================
Package Name: libomxil-bellagio
Short Description: OpenMAX Integration Layer
Owners: kwizart
Branches: f16 f17 el6
InitialCC:
Comment 8 Jon Ciesla 2012-07-25 08:51:12 EDT
Git done (by process-git-requests).

Niels, please take ownership of review BZs.  Thanks!
Comment 9 Niels de Vos 2012-07-25 09:21:22 EDT
Jon, uhm, right, sure. I assumed it was assigned to me already :-/

Nicolas, I've built 0.9.3-3 in mock (f17, x86_64) and now also in koji where it failed:
- http://koji.fedoraproject.org/koji/taskinfo?taskID=4328662

From the build.log:
omxregister.c:249:13: error: ignoring return value of 'fwrite', declared with attribute warn_unused_result [-Werror=unused-result]
omxregister.c:250:13: error: ignoring return value of 'fwrite', declared with attribute warn_unused_result [-Werror=unused-result]
omxregister.c:325:14: error: ignoring return value of 'fwrite', declared with attribute warn_unused_result [-Werror=unused-result]
cc1: all warnings being treated as errors
make[3]: *** [omxregister_bellagio-omxregister.o] Error 1
Comment 10 Niels de Vos 2012-07-26 03:45:54 EDT
Created attachment 600451 [details]
Additional patch to fix the build with -Werror on Fedora 17

Only tested with local compiling, and needs to be pushed upstream. The 'continue' may not be correct, it may be better to return an error and completely abort.
Comment 11 Nicolas Chauvet (kwizart) 2012-09-08 14:36:48 EDT
Finally got the patch reworked (fix 32bit) and build.
Thx for the review and patches.

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