Bug 1004231

Summary: Review Request: lv2-sorcer - a wave-table synthesizer plugin
Product: [Fedora] Fedora Reporter: Brendan Jones <brendan.jones.it>
Component: Package ReviewAssignee: Nils Philippsen <nphilipp>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: notting, nphilipp, package-review
Target Milestone: ---Flags: nphilipp: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: lv2-sorcer-1.1-1.1.20131104git18e6891.fc20 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-11-10 07:52:40 UTC Type: Bug
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:    
Bug Blocks: 805236    
Attachments:
Description Flags
0.0.1-0.2 build.log none

Description Brendan Jones 2013-09-04 09:04:08 UTC
lv2-sorcer is a polyphonic wavetable synth LV2 plugin. Its sonic fingerprint is 
one of harsh modulated sub-bass driven walls of sound. Two morphing wavetable
oscillators and one sine oscillator provide the generation routines. The LFO
can be mapped to wavetable modulation as well as filter cutoff. An ADSR allows
for shaping the resulting sound, while a master volume finishes the signal
chain. Easily creating a variety of dubstep basslines and harsh pad sounds.

SPEC: http://bsjones.fedorapeople.org/reviews/lv2-sorcer.spec
SRPM: http://bsjones.fedorapeople.org/reviews/lv2-sorcer-0.0.1-0.1.git62d9577.fc19.src.rpm

fedora19:~ $ rpmlint /home/bsjones/rpmbuild/SRPMS/lv2-sorcer-0.0.1-0.1.git62d9577.fc19.src.rpm /home/bsjones/rpmbuild/RPMS/x86_64/lv2-sorcer-*0.0.1-0.1.git62d9577.fc19.x86_64.rpm /home/bsjones/rpmbuild/SPECS/lv2-sorcer.spec 
lv2-sorcer.src: W: spelling-error %description -l en_US wavetable -> wave table, wave-table, vegetable
lv2-sorcer.src: W: spelling-error %description -l en_US synth -> synthesis
lv2-sorcer.src: W: spelling-error %description -l en_US dubstep -> dub step, dub-step, Dumpster
lv2-sorcer.src: W: spelling-error %description -l en_US basslines -> baselines, bass lines, bass-lines
lv2-sorcer.src: W: invalid-url Source2: lv2-sorcer-presets-0.0.1-20130520gite9b8c26c.tar.gz
lv2-sorcer.src: W: invalid-url Source0: lv2-sorcer-0.0.1-20130815git62d9577.tar.gz
lv2-sorcer.x86_64: W: spelling-error %description -l en_US wavetable -> wave table, wave-table, vegetable
lv2-sorcer.x86_64: W: spelling-error %description -l en_US synth -> synthesis
lv2-sorcer.x86_64: W: spelling-error %description -l en_US dubstep -> dub step, dub-step, Dumpster
lv2-sorcer.x86_64: W: spelling-error %description -l en_US basslines -> baselines, bass lines, bass-lines
/home/bsjones/rpmbuild/SPECS/lv2-sorcer.spec: W: invalid-url Source2: lv2-sorcer-presets-0.0.1-20130520gite9b8c26c.tar.gz
/home/bsjones/rpmbuild/SPECS/lv2-sorcer.spec: W: invalid-url Source0: lv2-sorcer-0.0.1-20130815git62d9577.tar.gz
3 packages and 1 specfiles checked; 0 errors, 12 warnings.

Comment 1 Brendan Jones 2013-09-14 10:02:35 UTC
New upstream source, fix URL's and package release to standard.

SPEC: http://bsjones.fedorapeople.org/reviews/lv2-sorcer.spec
SRPM: http://bsjones.fedorapeople.org/reviews/lv2-sorcer-0.0.1-0.1.20130815git62d9577.fc19.src.rpm

Comment 2 Nils Philippsen 2013-10-24 11:40:09 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [@] = Needs to be looked at

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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[-]: Development (unversioned) .so 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.
[!]: 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]: License field in the package spec file matches the actual license.

     BUT:
     
[@]  The README mentions that the license is GPLv3, the source code files state
     "or any later version". Please check that with upstream.
[@]  The source code files don't contain "Copyright <year> ...", just mention
     the author. Upstream should probably fix this as well.

[!]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/lib64/lv2 -- other packages
     simply depend on the "lv2" package.
[!]: %build honors applicable compiler flags or justifies otherwise.

     --> correct in most places, but I found this in the build log:

     [3/3] cxxshlib: build/canvas.cxx.0.o build/sorcer_gui.cxx.0.o -> build/libsorcer_gui.so
     17:22:32 runner ['/usr/lib64/ccache/g++', 'canvas.cxx.0.o', 'sorcer_gui.cxx.0.o', '-o', '/builddir/build/BUILD/lv2-sorcer-0.0.1/gui/build/libsorcer_gui.so', '-Wl,-Bstatic', '-Wl,-Bdynamic', '-lgtkmm-2.4', '-latkmm-1.6', '-lgtk-x11-2.0', '-lgdkmm-2.4', '-lgiomm-2.4', '-lpangomm-1.4', '-lglibmm-2.4', '-lcairomm-1.0', '-lsigc-2.0', '-lgdk-x11-2.0', '-lpangocairo-1.0', '-latk-1.0', '-lcairo', '-lgdk_pixbuf-2.0', '-lgio-2.0', '-lpangoft2-1.0', '-lpango-1.0', '-lgobject-2.0', '-lglib-2.0', '-lfontconfig', '-lfreetype', '-Wl,-z,nodelete', '-shared', '-pthread']
     Waf: Leaving directory `/builddir/build/BUILD/lv2-sorcer-0.0.1/gui/build'
     'build' finished successfully (2.591s)

[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
[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.
[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.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 10240 bytes in 1 files.
[x]: Package complies to the Packaging Guidelines
[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: There are rpmlint messages (see attachment).
     --> maybe use "wave table", "synthesizer", "dub step", "bass lines"
     --> incoherent-version-in-changelog can be ignored (no need for dist tag
         in changelog entry version-release)
[x]: Package requires other packages for directories it uses.
[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]: 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]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[-]: 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

===== SHOULD items =====

Generic:
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[-]: 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).
     --> maybe use this to filter out lv2 shared objects:
     
         %global __provides_exclude_from ^%{_libdir}/lv2/.*$
[ ]: Package functions as described.
[ ]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: SourceX tarball generation or download is documented.
[-]: 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]: 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]: Fully versioned dependency in subpackages if applicable.
[-]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

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

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


Rpmlint
-------
Checking: lv2-sorcer-0.0.1-0.1.20130815git62d9577.fc21.x86_64.rpm
          lv2-sorcer-0.0.1-0.1.20130815git62d9577.fc21.src.rpm
lv2-sorcer.x86_64: W: spelling-error %description -l en_US wavetable -> wave table, wave-table, vegetable
lv2-sorcer.x86_64: W: spelling-error %description -l en_US synth -> synthesis
lv2-sorcer.x86_64: W: spelling-error %description -l en_US dubstep -> dub step, dub-step, Dumpster
lv2-sorcer.x86_64: W: spelling-error %description -l en_US basslines -> baselines, bass lines, bass-lines
lv2-sorcer.x86_64: W: incoherent-version-in-changelog 0.0.1-0.1.git62d9577 ['0.0.1-0.1.20130815git62d9577.fc21', '0.0.1-0.1.20130815git62d9577']
lv2-sorcer.src: W: spelling-error %description -l en_US wavetable -> wave table, wave-table, vegetable
lv2-sorcer.src: W: spelling-error %description -l en_US synth -> synthesis
lv2-sorcer.src: W: spelling-error %description -l en_US dubstep -> dub step, dub-step, Dumpster
lv2-sorcer.src: W: spelling-error %description -l en_US basslines -> baselines, bass lines, bass-lines
lv2-sorcer.src: W: invalid-url Source2: lv2-sorcer-presets-0.0.1-20130719git4cc9bc4d2b6ea334338341433799ad23495b4f8b.tar.gz
lv2-sorcer.src: W: invalid-url Source0: lv2-sorcer-0.0.1-20130815git62d95778a0ed6e91f0ab804b16af1072de19e8ec.tar.gz
2 packages and 0 specfiles checked; 0 errors, 11 warnings.




Rpmlint (installed packages)
----------------------------
# rpmlint lv2-sorcer
lv2-sorcer.x86_64: W: spelling-error %description -l en_US wavetable -> wave table, wave-table, vegetable
lv2-sorcer.x86_64: W: spelling-error %description -l en_US synth -> synthesis
lv2-sorcer.x86_64: W: spelling-error %description -l en_US dubstep -> dub step, dub-step, Dumpster
lv2-sorcer.x86_64: W: spelling-error %description -l en_US basslines -> baselines, bass lines, bass-lines
lv2-sorcer.x86_64: W: incoherent-version-in-changelog 0.0.1-0.1.git62d9577 ['0.0.1-0.1.20130815git62d9577.fc21', '0.0.1-0.1.20130815git62d9577']
1 packages and 0 specfiles checked; 0 errors, 5 warnings.
# echo 'rpmlint-done:'



Requires
--------
lv2-sorcer (rpmlib, GLIBC filtered):
    libatk-1.0.so.0()(64bit)
    libatkmm-1.6.so.1()(64bit)
    libc.so.6()(64bit)
    libcairo.so.2()(64bit)
    libcairomm-1.0.so.1()(64bit)
    libfontconfig.so.1()(64bit)
    libfreetype.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgdk-x11-2.0.so.0()(64bit)
    libgdk_pixbuf-2.0.so.0()(64bit)
    libgdkmm-2.4.so.1()(64bit)
    libgio-2.0.so.0()(64bit)
    libgiomm-2.4.so.1()(64bit)
    libglib-2.0.so.0()(64bit)
    libglibmm-2.4.so.1()(64bit)
    libgobject-2.0.so.0()(64bit)
    libgtk-x11-2.0.so.0()(64bit)
    libgtkmm-2.4.so.1()(64bit)
    libm.so.6()(64bit)
    libpango-1.0.so.0()(64bit)
    libpangocairo-1.0.so.0()(64bit)
    libpangoft2-1.0.so.0()(64bit)
    libpangomm-1.4.so.1()(64bit)
    libpthread.so.0()(64bit)
    libsigc-2.0.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    rtld(GNU_HASH)



Provides
--------
lv2-sorcer:
    libsorcer_gui.so()(64bit)
    lv2-sorcer
    lv2-sorcer(x86-64)



Unversioned so-files
--------------------
lv2-sorcer: /usr/lib64/lv2/sorcer.lv2/libsorcer_gui.so
lv2-sorcer: /usr/lib64/lv2/sorcer.lv2/sorcer.so

Generated by fedora-review 0.5.0 (920221d) last change: 2013-08-30
Command line :/usr/bin/fedora-review -b 1004231
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, SugarActivity, Perl, R, PHP, Ruby
Disabled flags: EPEL5, EXARCH, DISTTAG

Comment 3 Brendan Jones 2013-10-26 03:30:44 UTC
Thanks Nils

I have removed the presets in response to another review, and replaced with a link in the description.

Open license ticket here.
https://github.com/harryhaaren/openAV-Sorcer/issues/5

Assuming the license in the SPEC is correct, here's an update with the concerns above addressed.

SPEC: http://bsjones.fedorapeople.org/reviews/lv2-sorcer.spec
SRPM: http://bsjones.fedorapeople.org/reviews/lv2-sorcer-0.0.1-0.2.20131013git4e35643.fc20.src.rpm

Comment 4 Nils Philippsen 2013-10-29 10:08:03 UTC
One thing I didn't notice in my initial review is that the package name lv2-sorcer differs from the tarball name openAV-sorcer which would be more in line with the naming guidelines, cf.: http://fedoraproject.org/wiki/Packaging:NamingGuidelines#General_Naming

Here's the diff to my initial review:

...
[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.
[@]: License field in the package spec file seems to match the actual license, but frankly how it's documented is a mess:

     spec file: GPLv3+
     (LICENSE text: GPLv2)
     README: "This is released under GPLv3.", but then "you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version."
     faust/main.dsp: GPLv3+
     faust/main.cpp: LGPLv2+
     gui/avtk: GPLv2+

     --> at least the README file shouldn't contradict itself and the license file should be updated to GPLv3 IMO.
...
[x]: Package must own all directories that it creates.
     --> Package requires lv2 now.
[x]: %build honors applicable compiler flags or justifies otherwise.
...
[!]: Package doesn't successfully compile and build into binary rpms on at least one
     supported primary architecture.
     --> I'll attach the build.log, it seems as if some build requirements are missing (headers, pkgconfig files not found)
...
[@]: Final provides and requires are sane (see attachments). ...
     --> Why did you comment out the %global __provides_exclude_from line?
...

Comment 5 Nils Philippsen 2013-10-29 10:10:33 UTC
Created attachment 817036 [details]
0.0.1-0.2 build.log

Comment 6 Brendan Jones 2013-10-29 15:24:52 UTC
With regards to the name, there's an unofficial standard for lv2 plugins. They all are prefixed with lv2 . The install directory is sorcer.lv2, so I think lv2-sorcer is more appropriate ( openAv is just a software entity created by upstream) .

I have added the missing build requires and uncommented the filters.

Thanks


SPEC: http://bsjones.fedorapeople.org/reviews/lv2-sorcer.spec
SRPM: http://bsjones.fedorapeople.org/reviews/lv2-sorcer-0.0.1-0.3.20131013git4e35643.fc20.src.rpm

Comment 7 Nils Philippsen 2013-10-30 22:35:34 UTC
Regarding the name, I concur having a common namespace for lv2 packages is a good idea. Would you please bring this up with the Packaging Committee to make this an official standard? -- https://fedoraproject.org/wiki/Packaging_Committee -- thanks.

Diff to comment #4:

...
[!]: License confusion in the README aside, the package should really package the correct version of the GPL (i.e. v3, not v2).
...
[x]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
...
[x]: Final provides and requires are sane.
...

--> Providing you include the correctly versioned license text, this package is APPROVED.

Comment 8 Brendan Jones 2013-11-02 12:44:46 UTC
Appreciate the review! Thanks

New Package SCM Request
=======================
Package Name: lv2-sorcer
Short Description: A wave-table LV2 synth plugin
Owners: bsjones
Branches: f18 f19 f20
InitialCC:

Comment 9 Brendan Jones 2013-11-02 12:46:00 UTC
PS. I will correct the license file and raise the lv2- prefix on the packaging list.

Comment 10 Gwyn Ciesla 2013-11-04 12:50:18 UTC
Git done (by process-git-requests).

Comment 11 Fedora Update System 2013-11-04 16:12:41 UTC
lv2-sorcer-0.0.1-1.0.20131104git18e6891.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/lv2-sorcer-0.0.1-1.0.20131104git18e6891.fc20

Comment 12 Fedora Update System 2013-11-05 20:02:15 UTC
Package lv2-sorcer-1.1-1.1.20131104git18e6891.fc20:
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing lv2-sorcer-1.1-1.1.20131104git18e6891.fc20'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2013-20703/lv2-sorcer-1.1-1.1.20131104git18e6891.fc20
then log in and leave karma (feedback).

Comment 13 Fedora Update System 2013-11-10 07:52:40 UTC
lv2-sorcer-1.1-1.1.20131104git18e6891.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.