Spec URL: http://fedora.mkdir.name/packages/guimup-0.1.4/guimup.spec SRPM URL: http://fedora.mkdir.name/packages/guimup-0.1.4/guimup-0.1.4-1.fc10.src.rpm Description: GUIMUP is a client for the music player daemon (MPD) written in C++ and GTKmm. The program can be used with most Linux desktops but, as a GTK program, is best suited for GNOME and XFCE. The focus of the program is on mouse handling: playlist management is done entirely by drag-&-drop; playback functions are directly accessible from the system tray. Guimup turns MPD into a perfect desktop music player.
Some initial comments: Please don't use %global srcname Guimup for something that only appears twice in the spec and never changes. Source0 gives a 403 error. This is most likely due to some weird configuration of the server, that only allows downloading via http://www.coonsden.com/cgi-bin/ShotGun.cgi?ammo=Guimup-stable-src Please tell upstream to stop this nonsense if he wants his package in Fedora. The install section is broken: make install DESTDIR=%{buildroot} \ INSTALL="install -p" \ DESTDIR=%{buildroot} DESTDIR is used twice rm -rf %{buildroot}/usr/doc /usr should not be hardcoded, use %{_usr} instead. The package is a gui app, but lacks a desktop file. You need to add one as described in http://fedoraproject.org/wiki/Packaging/Guidelines#Desktop_files Macro usage is not consistent, you use both $RPM_BUILD_ROOT and %{buildroot}. See http://fedoraproject.org/wiki/Packaging:Guidelines#Using_.25.7Bbuildroot.7D_and_.25.7Boptflags.7D_vs_.24RPM_BUILD_ROOT_and_.24RPM_OPT_FLAGS The license is not correct. The program is GPLv3+, but the copy of libmpdclient is under a different license. remove libmpdclient.{c,h} during %prep, add libmpd-devel as BuildRequires and build against it, see http://fedoraproject.org/wiki/Packaging:Guidelines#Duplication_of_system_libraries This will also clear the license issue I mentioned.
Hello, I guess I fixed everything now. Regarding the Source0: The url supplied in the spec file is valid and working... only the link on the upstream homepage is bad. Spec URL: http://fedora.mkdir.name/packages/guimup-0.1.4/guimup.spec SRPM URL: http://fedora.mkdir.name/packages/guimup-0.1.4/guimup-0.1.4-2.fc10.src.rpm
(In reply to comment #2) > Hello, I guess I fixed everything now. Thanks, I will look into this tonight. > The url supplied in the spec file is valid and working... only the link on the > upstream homepage is bad. http://www.coonsden.com/dl0ads/%{srcname}-%{version}src.tar.gz resolves to http://www.coonsden.com/dl0ads/Guimup-0.1.4src.tar.gz $ wget http://www.coonsden.com/dl0ads/Guimup-0.1.4src.tar.gz --2009-04-23 12:33:48-- http://www.coonsden.com/dl0ads/Guimup-0.1.4src.tar.gz Auflösen des Hostnamen »www.coonsden.com«.... 83.137.194.17 Verbindungsaufbau zu www.coonsden.com|83.137.194.17|:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 403 Forbidden 2009-04-23 12:33:48 FEHLER 403: Forbidden. $ wget http://www.coonsden.com/cgi-bin/ShotGun.cgi?ammo=Guimup-stable-src --2009-04-23 12:35:49-- http://www.coonsden.com/cgi-bin/ShotGun.cgi?ammo=Guimup-stable-src Auflösen des Hostnamen »www.coonsden.com«.... 83.137.194.17 Verbindungsaufbau zu www.coonsden.com|83.137.194.17|:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 200 OK Länge: nicht spezifiziert [text/html] »Last-modified«-Kopfzeile fehlt -- Zeitstempel abgeschaltet. --2009-04-23 12:35:49-- http://www.coonsden.com/cgi-bin/ShotGun.cgi?ammo=Guimup-stable-src Verbindungsaufbau zu www.coonsden.com|83.137.194.17|:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 200 OK Länge: nicht spezifiziert [text/html] In »ShotGun.cgi?ammo=Guimup-stable-src« speichern. [ <=> ] 387 --.-K/s in 0s 2009-04-23 12:35:49 (21,9 MB/s) - »ShotGun.cgi?ammo=Guimup-stable-src« gespeichert [387] $ cat ShotGun.cgi\?ammo\=Guimup-stable-src <html><head><title>Error</title><link rel="stylesheet" type="text/css" href="http://www.coonsden.com/scripts/template.css"></head><body><span class="titleText">Error</span><blockquote> Please either<br><br>1. Disable your download manager<br>2. Left click the file you are attempting to download<br><br>or<br><br>3. Enable your browser to send HTTP Referrers. </blockquote></body></html>
Hey, I'm sorry for that. As I only tried accessing the download URL via Firefox, I didn't notice that they are checking for the user agent... if you execute wget "http://www.coonsden.com/dl0ads/Guimup-0.1.4src.tar.gz" -U "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko/2009032713 Fedora/3.0.8-1.fc10 Firefox/3.0.8" It works fine. Anyway, I'll contact upstream on this issue.
(In reply to comment #4) > Hey, > I'm sorry for that. No need to feel sorry. :) > As I only tried accessing the download URL via Firefox Don't use firefox because of https://fedoraproject.org/wiki/Packaging/Guidelines#Timestamps we need a downloadable URL.
I just talked to upstream, he gave me links to the source on SF. Spec URL: http://fedora.mkdir.name/packages/guimup-0.1.4/guimup.spec SRPM URL: http://fedora.mkdir.name/packages/guimup-0.1.4/guimup-0.1.4-3.fc10.src.rpm * Thu Apr 23 2009 Andreas Osowski <th0br0> 0.1.4-3 - Updated Source0
(In reply to comment #6) > I just talked to upstream, he gave me links to the source on SF. Argh, that was too simple ;) REVIEW FOR 0b9b2bc803e2fac3eb5396cb225c4a5a guimup-0.1.4-3.fc10.src.rpm OK - MUST: rpmlint must be run on every package. The output should be posted in the review. OK - MUST: The package is named according to the Package Naming Guidelines. OK - MUST: The spec file name matches the base package %{name}, in the format %{name}.spec. OK - MUST: The package meets the Packaging Guidelines. OK - MUST: The package is licensed with a Fedora approved license and meets the Licensing Guidelines (GPLv3+). OK - MUST: The License field in the package spec file matches the actual license. OK - MUST: The license file from the source package is included in %doc. OK - MUST: The spec file is in American English. OK - MUST: The spec file for the package is legible. OK - MUST: The sources used to build the package match the upstream source by MD5 eeccdd2ef671f191f2c9a7170df99244 OK - MUST: The package successfully compiles and builds into binary rpms on i386 N/A - 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. OK - MUST: All build dependencies are listed in BuildRequires. N/A - MUST: The spec file handles locales properly with the %find_lang macro. N/A - MUST: Every binary RPM package (or subpackage) which stores shared library files (not just symlinks) in any of the dynamic linker's default paths, must call ldconfig in %post and %postun. N/A - MUST: If the package is designed to be relocatable, the packager must state this fact in the request for review, along with the rationalization for relocation of that specific package. OK - MUST: The package owns all directories that it creates (none except in docdir). OK - MUST: The package does not contain any duplicate files in the %files listing. OK - MUST: Permissions on files are set properly. The %files section includes a %defattr(...) line. OK - MUST: The package has a %clean section, which contains rm -rf %{buildroot}. OK - MUST: The package consistently uses macros, as described in the macros section of Packaging Guidelines. OK - MUST: The package contains code, or permissable content. N/A - MUST: Large documentation files should go in a -doc subpackage. OK - MUST: Files included as %doc do not affect the runtime of the application. N/A - MUST: Header files must be in a -devel package. N/A - MUST: Static libraries must be in a -static package. N/A - MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig'. N/A - 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. N/A - MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name} = %{version}-%{release} OK - MUST: The package does not contain any .la libtool archives. OK - MUST: The package contains a GUI application and includes a %{name}.desktop file, and that file is properly installed with desktop-file-install in the %install section. OK - MUST: The packages does not own files or directories already owned by other packages. OK - MUST: At the beginning of %install, the package runs rm -rf %{buildroot}. OK - MUST: All filenames in rpm packages are valid UTF-8. SHOULD Items: N/A - SHOULD: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. N/A - SHOULD: The description and summary sections in the package spec file should contain translations for supported Non-English languages, if available. FAIL - SHOULD: The the package does not build in mock due to an libtool error. OK - SHOULD: The package should compile and build into binary rpms on all supported architectures. FAIL - SHOULD: The package does not function as described, it initially crashes. N/A - SHOULD: If scriptlets are used, those scriptlets must be sane. N/A - SHOULD: Usually, subpackages other than devel should require the base package using a fully versioned dependency. N/A - 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. N/A - SHOULD: If the package has file dependencies outside of /etc, /bin, /sbin, /usr/bin, or /usr/sbin consider requiring the package which provides the file instead of the file itself. Other items: OK - Review is not a duplicate OK - All relevant doc included OK - Timestamps are preserved both during downlad and install OK - Latest stable version packaged Issues and Suggestions: Doesn't build in mock due to a libtool error. Attaching build.log Remove INSTALL from %doc, it only contents generic info that is not important when installing from rpm. Remove the trailing backslash after INSTALL="install -p" Desktop file: The key "Encoding" is no longer valid, remove that line Change guimup.png to guimp, see https://fedoraproject.org/wiki/Packaging/Guidelines#Icon_tag_in_Desktop_Files Icon: Use the 48px Icon instead of 64px GenericName is not really generic, just "Client for MPD" is enough here Category "Application" is no longer valid, see http://standards.freedesktop.org/menu-spec/latest/apa.html The package doesn't require any Gnome bits, so you better use the category GTK instead of GNOME. Add the categories Audio and Player to allow nested menus. All together it becomes: "Categories=GTK;AudioVideo;Audio;Player;" App crashes initially: $ guimup MPD: using /etc/mpd.conf MPD: user is Config: using /home/chris/.guimup.conf Autoconnecting, as configured No host name: using "localhost" Invalid port #: using 6600 32ece453-5526-63e6-087d32aa-0e594c9c is dumped The previous version compiled against the included version of libmpdclient works fine though.
Created attachment 340952 [details] build.log of a failed mockbuild
Hey, there is no INSTALL in %doc, what are you referring to ?!? Fixed the desktop file. I can not reproduce the mock failure. The crash is caused by MPD not running. What is the best way of solving this? Talk to upstream? Spec URL: http://fedora.mkdir.name/packages/guimup-0.1.4/guimup.spec SRPM URL: http://fedora.mkdir.name/packages/guimup-0.1.4/guimup-0.1.4-4.fc10.src.rpm
(In reply to comment #9) > Hey, > there is no INSTALL in %doc, what are you referring to ?!? Sorry, I just saw the INSTALL during build, but it was the one that gets removed afterwards. My bad. > I can not reproduce the mock failure. Against which release did you mock it? Mine was F11, which is treated as rawhide by the mirrorlist. > The crash is caused by MPD not running. > What is the best way of solving this? > Talk to upstream? No idea, but I think we agree that it should not crash. The older package didn't crash if mpd wasn't running but starts it correctly: $ guimup MPD: using /etc/mpd.conf MPD: user is Config: using /home/chris/.guimup.conf Autoconnecting, as configured No host name: using "localhost" Invalid port #: using 6600 Error: connection closed Is MPD running? Starting MPD, as configured problem opening log file "/var/lib/mpd/mpd.log" (config line 28) for writing So there is something not working with the communication between guimup and mpd. I will look into the new package later. Stay tuned.
(In reply to comment #8) > Created an attachment (id=340952) [details] > build.log of a failed mockbuild While looking at the libtool issue closer I remembered that it was discussed recently on devel-list. See https://www.redhat.com/archives/fedora-devel-list/2009-April/msg00965.html and follow-ups, especially the one from Mamoru. The new package aad87062659e66f7214a63cae5015934 guimup-0.1.4-4.fc10.src.rpm fixes all outstanding issues: OK - Trailing backslash was removed from INSTALL="install -p" OK - Desktop file follows latest fdo specs From a packaging point of view there are no more blockers, so the package is APPROVED. Nevertheless I'd like to ask you to only build it for rawhide until the crash is fixed. Take your time, work it out with upstream and once it's fixed build packages for the stable releases. This also works around the current libtool problems mentioned above.
My guess here is, that if MPD can not be started by the current user, it crashes. I shall do the CVS request though and build it on rawhide. Upstream will release version 0.2 soon anyway, let's see if the bug will be fixed then.
New Package CVS Request ======================= Package Name: guimup Short Description: A GTKmm based drag-&-drop oriented client for MPD Owners: th0br0 Branches: F-10 F-11 InitialCC: th0br0
(In reply to comment #12) > My guess here is, that if MPD can not be started by the current user, it > crashes. guimupd should behave the same if compiled against libmpd-devel and the included libmpdclient.h, this means it should show the "not connected" message. (In reply to comment #13) > InitialCC: th0br0 InitialCC is for people other than yourself. BTW: I suggest you apply for libmpd watchcommits in pkgdb.
Please preserve the time stamp when installing the icon.
cvs done.
It finally built successfully on F11 and upwards thanks to Milos Jakubicek.