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 202496
Summary: | Review Request: quodlibet - A music management program | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Jeffrey C. Ollie <jeff> |
Component: | Package Review | Assignee: | Jason Tibbitts <j> |
Status: | CLOSED NEXTRELEASE | QA Contact: | Fedora Package Reviews List <fedora-package-review> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | rawhide | CC: | dakingun |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2006-10-07 14:51:56 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: | |||
Bug Blocks: | 163779 |
Description
Jeffrey C. Ollie
2006-08-14 20:07:51 UTC
DOH! Forgot to set a proper summary. It works fine on FC5 ;-) Builds fine; here's the rpmlint complaint list: W: quodlibet mixed-use-of-spaces-and-tabs I'm seeing this quite a bit lately. Just do "less -U *spec" and you can see the inconsistencies in indentation. W: quodlibet incoherent-version-in-changelog 0.22-1 0.23-1.fc6 Looks like a typo in your changelog entry. E: quodlibet non-executable-script /usr/share/quodlibet/plugins/songsmenu/replaygain.py 0644 E: quodlibet non-executable-script /usr/share/quodlibet/plugins/songsmenu/_subprocobj.py 0644 I think these are valid. These errors are often false positives, when the python code is actually runnable. But these seem to contain only class definitions, and as such they shouldn't have the shebang line. At least that's my interpretation of things. A while back there was a good IRC discussion about this; I'll try to dig up the log if you'd like to read it. Spec: http://repo.ocjtech.us/misc/fedora/development/SRPMS/quodlibet-0.23-2.fc6.spec SRPM: http://repo.ocjtech.us/misc/fedora/development/SRPMS/quodlibet-0.23-2.fc6.src.rpm %changelog * Tue Aug 15 2006 Jeffrey C. Ollie <jeff> - 0.23-2 - Convert tabs to spaces. - Add shell plugin - Get rid of some shebang lines. - Add Google search plugin It appears that the dir %{_libdir}/quodlibet/ is unowned, easiest fix, imo, change %{_libdir}/quodlibet/_mmkeys.so to simply %{_libdir}/quodlibet/ Spec: http://repo.ocjtech.us/misc/fedora/development/SRPMS/quodlibet-0.23-3.fc6.spec SRPM: http://repo.ocjtech.us/misc/fedora/development/SRPMS/quodlibet-0.23-3.fc6.src.rpm %changelog * Wed Aug 16 2006 Jeffrey C. Ollie <jeff> - 0.23-3 - Make sure that %%{_libdir}/quodlibet/ is owned You missed one tab, in Source58. You should package COPYING, HACKING, NEWS and README as %doc. Also, what's the upstream for google.py? From the looks of things, it's you, which would be OK. It seems to me that there must be a simpler way to copy 50 sources into place. The README file says there are unit tests included, but I don't see them in the package. I built this for i386 and installed it on my home machine; it seems to run OK but I saw this odd bit on startup: Introspect error: The name org.gajim.dbus was not provided by any .service files I found errors with four plugins: ImportError: No module named musicbrainz ImportError: No module named CDDB ImportError: No module named lastfm ImportError: No module named path I guess the first three are optional requirements, which should be OK. The last one is odd; here's the full backtrace: Traceback (most recent call last): File "/usr/share/quodlibet/plugins/songsmenu/shell.2.py", line 11, in ? import os File "/usr/lib/python2.4/os.py", line 133, in ? from os.path import (curdir, pardir, sep, pathsep, defpath, extsep, altsep, ImportError: No module named path In addition, I chose View->File System and got this backtrace: Traceback (most recent call last): File "/usr/share/quodlibet/qltk/quodlibet.py", line 518, in select_browser self.browser = Browser(library, player) File "/usr/share/quodlibet/browsers/filesystem.py", line 67, in __init__ dt = DirectoryTree(initial=const.HOME, folders=folders) File "/usr/share/quodlibet/qltk/filesel.py", line 68, in __init__ folders = filter(is_folder, folders) UnboundLocalError: local variable 'is_folder' referenced before assignment I exited the program which left the default view that way and now neither quodlibet nor exfalso will start. These are probably issues for upstream, but I just wanted to make sure that something wasn't missing from the package. For some reason I don't get any desktop menu entry, even though the desktop file looks OK to me. (I use KDE.) Review: * All 9000 source files match upstream: 195c39433b4e2a5bf930af7570b61f3e quodlibet-0.23.tar.gz 0b7d2ff31c4c113b52b74e1b8c867843 albumart.py 2385a15ea0f8c4ccbcf347eb9e5ef174 _amazon.py b5f85eb37b75acba938d082913d31b32 animosd.py 17421585b258ac44a0c04a50f06b25da ape2id3.py 680c7f7df3ac0cd949daa153c419e451 automask.py f3d86669ab18d4c25075212943cd74e1 autorating.py 9a984fb37453ff86ac861b01b31f6594 bookmarks.py 3865f4f3ece8d667c20fe3b8d34418dd brainz.py ab800ac4b48a0a228f1504914f198b5a browsefolders.py ae0be895b7441c9d38b0d8725f53f46c cddb.py 73c4409dfbdc8a9d8b7cd1a04f86ac23 clock.py c898ef2d38ad04b64137f0b6a8845852 fixlatin1tags.py 0fb2b513d89026c809b77c423c5080f8 gajim_status.py ae32b874d01fb16bed24626602ed2a98 html.py 4b71dfdbed6d5e8248028f62a3290888 iconv.py cd8f349983822b0429ef36d51c506992 ifp.py 4fd524e514cb0da6714628c7c1078242 importexport.py 57c82a80c4f30f6ac9b87801e7c80728 iradiolog.py d73546846d3280d0d3b2548a97bd8991 jep118.py 692f212693a86de9858e4979d6cec1b6 k3b.py 437ab5e65b7788641880b1ff7f4ae9f4 kakasi.py 57cf89358975fc75267bbff6d629749f lastfmsubmit.py c235836bb4b3f0480f674b6d21996407 nautilus.py 2a140f01260cb7dc5fc89f95fe11b4e0 notify.py d9868612bc1a13536f37d321bd4748d2 qlscrobbler.py 77dd97961b563ce6a0e0e596d98c39fe randomalbum.py f179c4db522561eed1629854b8de3a4d replaygain.py cb8f5b018503b2f0ad44fc10fc0bd3be reset.py dbd51ebd76b5a8e0a23558480c79da7b resub.py e5fc6a506f63de6f9661d2ded274d70d splitting.py 09c6da4082b6aa33d998991be7c508a8 _subprocobj.py 18ba6a789e95d5d202d911d826d94747 titlecase.py 12a36f1cc82b14cb25ba54b3d84503c8 trayicon.py 87065bf6d3b2084ca1a1c1f06f2b3f6c wikipedia.py 705e734f3d755a1e05854bc68ed90f6a write_cover.py Source58, pulled manually according to the comments, also matches: 5a9d7e599fab9be828a6244ee12e3542 shell.2.py?format=raw No upstream for google.py * package meets naming and packaging guidelines. * specfile is properly named, is cleanly written and uses macros consistently. * dist tag is present. * build root is correct. * license field matches the actual license. X license is open source-compatible. License text upstream but not included in package. * latest version is being packaged. * BuildRequires are proper. * compiler flags are appropriate. * %clean is present. * package builds in mock (development, x86_64). * debuginfo package looks complete. X rpmlint is silent (just one tab) * final provides and requires are sane: _mmkeys.so()(64bit) quodlibet = 0.23-3.fc6 = /usr/bin/env gnome-python2-libegg gstreamer-python >= 0.10 libatk-1.0.so.0()(64bit) libcairo.so.2()(64bit) libgdk-x11-2.0.so.0()(64bit) libgdk_pixbuf-2.0.so.0()(64bit) libglib-2.0.so.0()(64bit) libgmodule-2.0.so.0()(64bit) libgobject-2.0.so.0()(64bit) libgtk-x11-2.0.so.0()(64bit) libpango-1.0.so.0()(64bit) libpangocairo-1.0.so.0()(64bit) pygtk2 >= 2.8 python >= 2.4 python-mutagen >= 1.5 vorbisgain ? %check is not present; no test suite upstream. Manual testing reveals a few problems; see above. * shared libraries are present, but they aren't in the ld search path. * package is not relocatable. * owns the directories it creates. * doesn't own any directories it shouldn't. * no duplicates in %files. * file permissions are appropriate. * no scriptlets present. * code, not content. * documentation is small, so no -docs subpackage is necessary. * %docs are not necessary for the proper functioning of the package. * no headers. * no pkgconfig files. * no libtool .la droppings. * desktop file looks correct and is installed properly. (Note that I don't get a desktop menu entry, but I don't see anything wrong with the desktop file.) Spec: http://repo.ocjtech.us/misc/fedora/development/SRPMS/quodlibet-0.23-4.fc6.spec SRPM: http://repo.ocjtech.us/misc/fedora/development/SRPMS/quodlibet-0.23-4.fc6.src.rpm * Thu Aug 17 2006 Jeffrey C. Ollie <jeff> - 0.23-4 - Instead of manually copying all of the plugins, pack them into a tarball and include a script for generating the tarball That is significantly shorter. I was just hoping that some specfile wizard knew of a way to loop over those %{S:n} entries. In any case, it does look like you addressed the %doc issue even though you didn't mention it. The spaces-tabs thing is still there; Source1, 2, and 3 are all tab-indented while none of the other lines are. Not that this is a huge deal, but I have to mention it. What about the problems I had in testing? It would be nice to know they're expected, if there are missing dependencies or if something went wrong in the build. And do you have any idea where the _sanity.sh unit tests promised by the HACKING file are? It looks like the unit tests are only in SVN: http://svn.sacredchao.net/svn/quodlibet/trunk/quodlibet/_sanity.sh http://svn.sacredchao.net/svn/quodlibet/trunk/quodlibet/tests/ I chatted with the developer on IRC and he said that the tests use PyGTK which needs X so that's a non-starter for a rpm build. He also said that the tests use a number of other libraries that may or may not be in Fedora. See: http://www.sacredchao.net/quodlibet/changeset/3795 (In reply to comment #7) > Also, what's the upstream for google.py? From the looks of things, it's you, > which would be OK. Yup, it's me. > It seems to me that there must be a simpler way to copy 50 sources into place. > > The README file says there are unit tests included, but I don't see them in the > package. > > I built this for i386 and installed it on my home machine; it seems to run OK > but I saw this odd bit on startup: > > Introspect error: The name org.gajim.dbus was not provided by any .service files Probably because you don't have gajim installed. One of the plugins is for > I found errors with four plugins: > > ImportError: No module named musicbrainz Expected... libmusicbrainz is in Core, but the python-ctypes package needed for the libmusicbrainz python bindings are in Extras. There is now a python-musicbrainz2 package in extras but the API is completely different from the original bindings. > ImportError: No module named CDDB > ImportError: No module named lastfm Neither of these modules are available in Fedora at the moment. My reasoning for including these plugins anyway is that Quod Libet handles errors like this cleanly, and if the user was to obtain these modules some other way (say by manually installing from the source) the plugins would work for them. > ImportError: No module named path > > I guess the first three are optional requirements, which should be OK. The last > one is odd; here's the full backtrace: > > Traceback (most recent call last): > File "/usr/share/quodlibet/plugins/songsmenu/shell.2.py", line 11, in ? > import os > File "/usr/lib/python2.4/os.py", line 133, in ? > from os.path import (curdir, pardir, sep, pathsep, defpath, extsep, altsep, > ImportError: No module named path > > In addition, I chose View->File System and got this backtrace: > > Traceback (most recent call last): > File "/usr/share/quodlibet/qltk/quodlibet.py", line 518, in select_browser > self.browser = Browser(library, player) > File "/usr/share/quodlibet/browsers/filesystem.py", line 67, in __init__ > dt = DirectoryTree(initial=const.HOME, folders=folders) > File "/usr/share/quodlibet/qltk/filesel.py", line 68, in __init__ > folders = filter(is_folder, folders) > UnboundLocalError: local variable 'is_folder' referenced before assignment The developer feels that these tracebacks may indicate some local problem with the Pythin library. I was unable to duplicate the problem on by screen > I exited the program which left the default view that way and now neither > quodlibet nor exfalso will start. You should be able to get the view back to the default by editing ~/.quodlibet/config and changing "browser = FileSystem" to "browser = SearchBar". > For some reason I don't get any desktop menu entry, even though the desktop file > looks OK to me. (I use KDE.) > > Review: > * All 9000 source files match upstream: > 195c39433b4e2a5bf930af7570b61f3e quodlibet-0.23.tar.gz > > 0b7d2ff31c4c113b52b74e1b8c867843 albumart.py > 2385a15ea0f8c4ccbcf347eb9e5ef174 _amazon.py > b5f85eb37b75acba938d082913d31b32 animosd.py > 17421585b258ac44a0c04a50f06b25da ape2id3.py > 680c7f7df3ac0cd949daa153c419e451 automask.py > f3d86669ab18d4c25075212943cd74e1 autorating.py > 9a984fb37453ff86ac861b01b31f6594 bookmarks.py > 3865f4f3ece8d667c20fe3b8d34418dd brainz.py > ab800ac4b48a0a228f1504914f198b5a browsefolders.py > ae0be895b7441c9d38b0d8725f53f46c cddb.py > 73c4409dfbdc8a9d8b7cd1a04f86ac23 clock.py > c898ef2d38ad04b64137f0b6a8845852 fixlatin1tags.py > 0fb2b513d89026c809b77c423c5080f8 gajim_status.py > ae32b874d01fb16bed24626602ed2a98 html.py > 4b71dfdbed6d5e8248028f62a3290888 iconv.py > cd8f349983822b0429ef36d51c506992 ifp.py > 4fd524e514cb0da6714628c7c1078242 importexport.py > 57c82a80c4f30f6ac9b87801e7c80728 iradiolog.py > d73546846d3280d0d3b2548a97bd8991 jep118.py > 692f212693a86de9858e4979d6cec1b6 k3b.py > 437ab5e65b7788641880b1ff7f4ae9f4 kakasi.py > 57cf89358975fc75267bbff6d629749f lastfmsubmit.py > c235836bb4b3f0480f674b6d21996407 nautilus.py > 2a140f01260cb7dc5fc89f95fe11b4e0 notify.py > d9868612bc1a13536f37d321bd4748d2 qlscrobbler.py > 77dd97961b563ce6a0e0e596d98c39fe randomalbum.py > f179c4db522561eed1629854b8de3a4d replaygain.py > cb8f5b018503b2f0ad44fc10fc0bd3be reset.py > dbd51ebd76b5a8e0a23558480c79da7b resub.py > e5fc6a506f63de6f9661d2ded274d70d splitting.py > 09c6da4082b6aa33d998991be7c508a8 _subprocobj.py > 18ba6a789e95d5d202d911d826d94747 titlecase.py > 12a36f1cc82b14cb25ba54b3d84503c8 trayicon.py > 87065bf6d3b2084ca1a1c1f06f2b3f6c wikipedia.py > 705e734f3d755a1e05854bc68ed90f6a write_cover.py > > Source58, pulled manually according to the comments, also matches: > 5a9d7e599fab9be828a6244ee12e3542 shell.2.py?format=raw > > No upstream for google.py > > * package meets naming and packaging guidelines. > * specfile is properly named, is cleanly written and uses macros consistently. > * dist tag is present. > * build root is correct. > * license field matches the actual license. > X license is open source-compatible. License text upstream but not included in > package. > * latest version is being packaged. > * BuildRequires are proper. > * compiler flags are appropriate. > * %clean is present. > * package builds in mock (development, x86_64). > * debuginfo package looks complete. > X rpmlint is silent (just one tab) > * final provides and requires are sane: > _mmkeys.so()(64bit) > quodlibet = 0.23-3.fc6 > = > /usr/bin/env > gnome-python2-libegg > gstreamer-python >= 0.10 > libatk-1.0.so.0()(64bit) > libcairo.so.2()(64bit) > libgdk-x11-2.0.so.0()(64bit) > libgdk_pixbuf-2.0.so.0()(64bit) > libglib-2.0.so.0()(64bit) > libgmodule-2.0.so.0()(64bit) > libgobject-2.0.so.0()(64bit) > libgtk-x11-2.0.so.0()(64bit) > libpango-1.0.so.0()(64bit) > libpangocairo-1.0.so.0()(64bit) > pygtk2 >= 2.8 > python >= 2.4 > python-mutagen >= 1.5 > vorbisgain > ? %check is not present; no test suite upstream. Manual testing reveals a few > problems; see above. > * shared libraries are present, but they aren't in the ld search path. > * package is not relocatable. > * owns the directories it creates. > * doesn't own any directories it shouldn't. > * no duplicates in %files. > * file permissions are appropriate. > * no scriptlets present. > * code, not content. > * documentation is small, so no -docs subpackage is necessary. > * %docs are not necessary for the proper functioning of the package. > * no headers. > * no pkgconfig files. > * no libtool .la droppings. > * desktop file looks correct and is installed properly. (Note that I don't get > a desktop menu entry, but I don't see anything wrong with the desktop file.) > > It looks like the unit tests are only in SVN: No problem. > I chatted with the developer on IRC and he said that the tests use PyGTK which > needs X so that's a non-starter for a rpm build. OK, that's fine. It's just that I always want to see available test suites run if it's possible to do so. > Probably because you don't have gajim installed. One of the plugins is for OK, I can accept that some of the included plugins don't run if optional modules aren't installed. Since we have no other way to specify optional modules, can you create a README.fedora file or somesuch with information about which optional modules can be installed to give more functionality? Either that or split out the plugins with extra dependencies into separate packages that have those dependencies. > Expected... libmusicbrainz is in Core, but the python-ctypes package needed for > the libmusicbrainz python bindings are in Extras. So I just need to install python-ctypes? Or is the issue that the python bindings aren't built in the core package because a requisite module is not in core? Is it possible to get this plugin working at all with the current state of the libmusicbrainz packages? If not, there's probably not much point in shipping the plugin. > Neither of these modules are available in Fedora at the moment. My reasoning > for including these plugins anyway is that Quod Libet handles errors like this > cleanly, and if the user was to obtain these modules some other way (say by > manually installing from the source) the plugins would work for them. I can buy that; hopefully the libraries will make it in at some point. > The developer feels that these tracebacks may indicate some local problem with > the Pythin library. I was unable to duplicate the problem on by screen I have a plain extremely stock FC5 system. It would be nice to get another tester to see if anyone else can duplicate this. I'll try it on a freshly installed machine at work, but the remote display will be sloooow. Spec: http://repo.ocjtech.us/misc/fedora/development/SRPMS/quodlibet-0.23.1-1.fc6.spec SRPM: http://repo.ocjtech.us/misc/fedora/development/SRPMS/quodlibet-0.23.1-1.fc6.src.rpm %changelog * Mon Aug 28 2006 Jeffrey C. Ollie <jeff> - 0.23.1-1 - Update to 0.23.1 * Thu Aug 24 2006 Jeffrey C. Ollie <jeff> - 0.23-5 - Include a README.fedora It would be nice to document which plugins are expected to work, which aren't, and which need additional modules not available from Extras, but I'm not going to hold this up for something like that. If the problem I found in testing is common and persists with the new version, I'm sure you'll receive plenty of bug reports. All of the blocker issues I found have been addressed. The updated package builds cleanly and rpmlint is silent. APPROVED Hi, Almost a month since the packaging was approved, is there any reason this package has not been imported into FE tree yet? The packager has indicated on extras-list that he is currently quite busy. Things are *starting* to slow up... I'll try and get a few moments in the next day or so to import the package. (In reply to comment #15) > The packager has indicated on extras-list that he is currently quite busy. Sorry, I missed that. Imported and built for development, branch requested for FC-5. |