Bug 464049 (libprojectM-qt)

Summary: Package Review Request for libprojectM-qt
Product: [Fedora] Fedora Reporter: Jameson <imntreal>
Component: Package ReviewAssignee: Orcan Ogetbil <oget.fedora>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, notting, oget.fedora
Target Milestone: ---Flags: oget.fedora: fedora-review+
kevin: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-11-12 02:55:42 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: 464047    
Bug Blocks: 464051, 464054    

Description Jameson 2008-09-26 03:21:47 UTC
SPEC URL:  http://www.vtscrew.com/libprojectM-qt.spec
SRPM URL:  http://www.vtscrew.com/libprojectM-qt-1.2.0-1.fc9.src.rpm

Description:
projectM-qt is a GUI designed to enhance the projectM user and preset writer
experience.  It provides a way to browse, search, rate presets and setup
preset playlists for projectM-jack and projectM-pulseaudio.

rpmlint warnings:
libprojectM-qt.i386: W: no-documentation
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /usr/lib/libQtXml.so.4
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /usr/lib/libpng12.so.0
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /usr/lib/libSM.so.6
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /usr/lib/libICE.so.6
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /usr/lib/libXi.so.6
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /usr/lib/libXrender.so.1
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /usr/lib/libXrandr.so.2
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /usr/lib/libXcursor.so.1
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /usr/lib/libXinerama.so.1
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /usr/lib/libXfixes.so.3
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /usr/lib/libfreetype.so.6
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /usr/lib/libfontconfig.so.1
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /usr/lib/libXext.so.6
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /usr/lib/libX11.so.6
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /lib/libz.so.1
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /lib/libgthread-2.0.so.0
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /lib/libglib-2.0.so.0
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /lib/librt.so.1
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /lib/libdl.so.2
libprojectM-qt.i386: W: unused-direct-shlib-dependency /usr/lib/libprojectM-qt.s
o.1.10 /lib/libm.so.6

Comment 1 Orcan Ogetbil 2008-11-06 04:42:53 UTC
Ok, this package is next. Here are my notes:

* rpmlint on the SRPMS or SPEC gives:
   libprojectM-qt.src: W: mixed-use-of-spaces-and-tabs (spaces: line 1, tab: line 10)
which can be fixed easily.

* There is no file containing the license text. Please inform the upstream. The license as of it is should be GPLv2+, which is correct.

* Source0 must be corrected

* The package does not (directly or indirectly) depend on another package that owns on /usr/share/pixmaps (please verify this). Thus it must own /usr/share/pixmaps

* The empty doc line
   %doc
can be taken off, if there's no reply to the license query from upstream.

* I find the description (*) for the devel package insufficient. What it says is true for any devel packages.
I would copy the contents of the description from the main package and paste it to the beginning of the devel's description, and after that add the (*) to the end.

* You must BR: cmake

I recommend you using "mock" to figure out BR's.

* No headers in devel? (just checking)

* The pc file needs patched as you did for the libprojectM package (to fix the /usr/lib(64) issue)

Comment 2 Jameson 2008-11-06 06:42:51 UTC
I actually already built it with mock.  The reason I left out cmake was because I had put it as a requirement for libprojectM-devel.  I now understand that it was the wrong way to go about it, but I believe all of the above is corrected.

New SPEC in same location.  New SRPM:  http://www.vtscrew.com/libprojectM-qt-1.2.0-2.fc9.src.rpm

Comment 3 Orcan Ogetbil 2008-11-06 17:54:12 UTC
Everything seems fine, except:

* I don't think we need
   Requires:      libprojectM = %{version}, qt
for the main package, since these will be picked up by rpmbuild. You can check what the rpmbuild picked up as "requires" after you build the package by issuing:
   rpm -qpv --requires <packagename>-<etc>-<arch>.rpm

I have one last question: This is a frontend for libprojectM. But I can't find a binary to start the frontend. How does it start? Is it called from the binaries of pulseaudio and alsa packages?

Comment 4 Orcan Ogetbil 2008-11-06 19:08:39 UTC
Hey Jameson,
I asked fellow packagers about the /usr/share/pixmaps issue.
The correct solution is to require the package "filesystem" which owns /usr/share/pixmaps .
But I'm not sure if this will be done by the dependency chain, or if we should explicitly require "filesystem" in libprojectM-qt . 
Let me investigate this further. Sorry for the confusion.

Comment 5 Orcan Ogetbil 2008-11-06 19:21:46 UTC
OK, this is the chain:
- libprojectM-qt requires qt (rpmbuild will pick this up)
- qt requires glibc
- glibc requires basesystem 
- basesystem requires filesystem

Therefore, what you did initially was correct as far as the /usr/share/pixmaps is concerned. Sorry again for the confusion I created. libprojectM-qt shouldn't own /usr/share/pixmaps.

But you should still remove the explicit 
   Requires: libprojectM = %{version}, qt
That statement of mine is still valid.

Comment 6 Orcan Ogetbil 2008-11-07 01:26:48 UTC
* While I was trying to build projectM-pulseaudio, I found out that these two must be explicitly required in the libprojectM-qt-devel package:

   qt-devel, libprojectM-devel

Because they are not picked up by rpmbuild but they are called from the /usr/include/libprojectM-qt/qprojectm_mainwindow.hpp file.

* Also, as I noted in the other package's ticket please check that if the line 
   find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
is really necessary in the SPEC file . I don't see any .la files built with libprojectM-qt .

Sorry for the long TO-DO list. We need to have everything according to the book.

Comment 7 Jameson 2008-11-07 02:09:15 UTC
No problem.  I understand the need to get all of this right.  It's what separates the official Fedora repos from the third party ones that create all the dependency issues.  It looks like you were correct about the .la files.  I had just been copying my old SPECs to start a new one, so sometimes I'll have extra stuff like that left over.  Here's an update:
http://www.vtscrew.com/libprojectM-qt-1.2.0-3.fc9.src.rpm

Comment 8 Jameson 2008-11-07 02:09:58 UTC
Oh, and, yes, the front end is called from the pulseaudio and jack packages.

Comment 9 Orcan Ogetbil 2008-11-07 03:18:14 UTC
Oh, I should've been more clear. When I said "copy the description from the main package" I meant to copy it from the libprojectM-qt package. So the description for the libprojectM-qt-devel should be:

-----
projectM-qt is a GUI designed to enhance the projectM user and preset writer
experience.  It provides a way to browse, search, rate presets and setup
preset playlists for projectM-jack and projectM-pulseaudio. The %{name}-devel package contains libraries and header files for developing applications that use %{name}.
-----

This is all for for this package. Make sure you correct the description before you commit.

-------------------------------------------------
This package (libprojectM-qt) is approved by oget
-------------------------------------------------

Comment 10 Jameson 2008-11-07 03:35:06 UTC
Taken care of.

Comment 11 Jameson 2008-11-07 05:57:52 UTC
New Package CVS Request
=======================
Package Name: libprojectM-qt
Short Description: frontend for libprojectM
Owners: imntreal
Branches: F-8 F-9 F-10
InitialCC: imntreal

Comment 12 Kevin Fenzi 2008-11-07 21:34:59 UTC
cvs done.

Comment 13 Fedora Update System 2008-11-09 06:28:39 UTC
libprojectM-qt-1.2.0-3.fc9 has been submitted as an update for Fedora 9.
http://admin.fedoraproject.org/updates/libprojectM-qt-1.2.0-3.fc9

Comment 14 Fedora Update System 2008-11-12 02:55:39 UTC
libprojectM-qt-1.2.0-3.fc9 has been pushed to the Fedora 9 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 15 Fedora Update System 2008-11-24 23:11:37 UTC
libprojectM-qt-1.2.0-3.fc10 has been submitted as an update for Fedora 10.
http://admin.fedoraproject.org/updates/libprojectM-qt-1.2.0-3.fc10

Comment 16 Fedora Update System 2008-11-26 06:12:10 UTC
libprojectM-qt-1.2.0-3.fc10 has been pushed to the Fedora 10 stable repository.  If problems still persist, please make note of it in this bug report.