| Summary: | Review request: deadbeef - A music player with cue sheet support | ||
|---|---|---|---|
| Product: | Package Reviews | Reporter: | Alexey Komissarov <nomad71st> |
| Component: | Review Request | Assignee: | RPM Fusion Package Review <rpmfusion-package-review> |
| Status: | RESOLVED WONTFIX | ||
| Severity: | normal | CC: | cwickert, dtimms, hobbes1069, kwizart, nomad71st, rpmfusion-package-review, vsncnnz4, xavier |
| Priority: | P5 | ||
| Version: | Current | ||
| Hardware: | All | ||
| OS: | GNU/Linux | ||
| URL: | http://deadbeef.sourceforge.net/ | ||
| namespace: | |||
| Bug Depends on: | |||
| Bug Blocks: | 30 | ||
| Attachments: |
new version of deadbeef spec file
spec file 03.07.2011 spec file 03.07.2011 v2 spec file 04.07.2011 spec spec file spec deadbeef spec file deadbeef spec file deadbeef spec file |
||
|
Description
Alexey Komissarov
2011-06-28 19:01:48 CEST
I'm not a sponsor but I can try to help with the first steps of the review. RPM Fusion packages are subject to the same packaging guidelines as Fedora, so please make sure to take a look at them. It'll explain a lot of what you need to do with the below rpmlint warnings. https://fedoraproject.org/wiki/Packaging:Guidelines > rpmlint deadbeef-0.5.1-1.fc15.i686.rpm > rpmlint should be run on the SRPM too. This will list some more things to fix in the spec, but let's start with what you listed first. https://fedoraproject.org/wiki/Packaging:Guidelines#Use_rpmlint > deadbeef.i686: E: explicit-lib-dependency alsa-lib > deadbeef.i686: E: explicit-lib-dependency imlib2 > deadbeef.i686: E: explicit-lib-dependency libX11 > deadbeef.i686: E: explicit-lib-dependency libcddb > deadbeef.i686: E: explicit-lib-dependency libcdio > deadbeef.i686: E: explicit-lib-dependency libcurl > deadbeef.i686: E: explicit-lib-dependency libmad > deadbeef.i686: E: explicit-lib-dependency libmms > deadbeef.i686: E: explicit-lib-dependency libogg > deadbeef.i686: E: explicit-lib-dependency libsamplerate > deadbeef.i686: E: explicit-lib-dependency libsndfile > deadbeef.i686: E: explicit-lib-dependency libvorbis > deadbeef.i686: E: explicit-lib-dependency libzip > deadbeef.i686: E: explicit-lib-dependency pulseaudio-libs > deadbeef.i686: E: explicit-lib-dependency zlib You don't need to require the libs, they will be autodetected at build time and the proper requires added automatically. https://fedoraproject.org/wiki/Packaging:Guidelines#Explicit_Requires > deadbeef.i686: E: description-line-too-long C (though now it also runs in plain > console without X, in FreeBSD, and in OpenSolaris). > deadbeef.i686: E: description-line-too-long C It is mainly written by Alexey > Yakovenko, with contributions from a lot of different people The lines in the description should not have more than 80 characters. https://fedoraproject.org/wiki/Packaging:Guidelines#Summary_and_description > deadbeef.i686: W: incoherent-version-in-changelog Yakovenko ['0.5.1-1.fc15', > '0.5.1-1'] Please add the version and release to all changelog entries. https://fedoraproject.org/wiki/Packaging:Guidelines#Changelogs > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/sndfile.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/supereq.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/wavpack.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/vfs_zip.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/vorbis.a > deadbeef.i686: W: devel-file-in-non-devel-package > /usr/lib/deadbeef/ddb_gui_GTK2.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/pulse.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/musepack.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/mms.a > deadbeef.i686: W: devel-file-in-non-devel-package > /usr/lib/deadbeef/dsp_libsrc.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/ffmpeg.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/tta.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/converter.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/hotkeys.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/flac.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/cdda.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/adplug.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/vtx.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/lastfm.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/nullout.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/alsa.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/mpgmad.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/oss.a > deadbeef.i686: W: devel-file-in-non-devel-package > /usr/include/deadbeef/deadbeef.h > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/notify.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/artwork.a > deadbeef.i686: W: devel-file-in-non-devel-package > /usr/include/deadbeef/gtkui_api.h > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/gme.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/dca.a > deadbeef.i686: W: devel-file-in-non-devel-package > /usr/lib/deadbeef/converter_gtkui.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/vfs_curl.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/ffap.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/shellexec.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/wildmidi.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/aac.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/sid.a > deadbeef.i686: W: devel-file-in-non-devel-package /usr/lib/deadbeef/m3u.a You should not package static files. Even better, you should not even build them. so either delete them or add --disable-static to the configure invocation. https://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Static_Libraries > deadbeef.i686: W: no-manual-page-for-binary deadbeef Harmless, but as it seems you are upstream, you can probably easily add a man page. > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/be/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/bg/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/bn/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/ca/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/da/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/de/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/el/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/en_GB/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/es/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/fa/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/fr/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/gl/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/he/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/hr/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/hu/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/id/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/it/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/ja/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/kk/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/km/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/lg/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/nl/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/pl/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/pt/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/pt_BR/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/ru/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/sk/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/sr/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/sr@latin/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/sv/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/tr/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/uk/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/vi/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/zh_CN/LC_MESSAGES/deadbeef.mo > deadbeef.i686: W: file-not-in-%lang > /usr/share/locale/zh_TW/LC_MESSAGES/deadbeef.mo Locales files should be marked as such. https://fedoraproject.org/wiki/Packaging:Guidelines#Handling_Locale_Files > deadbeef.i686: E: invalid-desktopfile /usr/share/applications/deadbeef.desktop > file contains group "Play Shortcut Group", but groups extending the format > should start with "X-" > deadbeef.i686: E: invalid-desktopfile /usr/share/applications/deadbeef.desktop > file contains group "Pause Shortcut Group", but groups extending the format > should start with "X-" > deadbeef.i686: E: invalid-desktopfile /usr/share/applications/deadbeef.desktop > file contains group "Stop Shortcut Group", but groups extending the format > should start with "X-" > deadbeef.i686: E: invalid-desktopfile /usr/share/applications/deadbeef.desktop > file contains group "Next Shortcut Group", but groups extending the format > should start with "X-" > deadbeef.i686: E: invalid-desktopfile /usr/share/applications/deadbeef.desktop > file contains group "Prev Shortcut Group", but groups xtending the format > should start with "X-" See https://fedoraproject.org/wiki/Packaging:Guidelines#Desktop_files Read the guidelines and fix all of the above issues, that should be a good starting point, then run rpmlint again on both the binary rpm and the source rpm. Again, fix as much as you can, then post links to the updated versions of the spec and srpm. Hope this helps, Xavier Thank you for your reply Xavier! I followed instuctions and thereis practically no erros left. rpmlint deadbeef-0.5.1-1.fc15.src.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings rpmlint deadbeef-0.5.1-1.fc15.i686.rpm deadbeef.i686: W: no-manual-page-for-binary deadbeef deadbeef.i686: E: invalid-desktopfile /usr/share/applications/deadbeef.desktop file contains group "Play Shortcut Group", but groups extending the format should start with "X-" deadbeef.i686: E: invalid-desktopfile /usr/share/applications/deadbeef.desktop file contains group "Pause Shortcut Group", but groups extending the format should start with "X-" deadbeef.i686: E: invalid-desktopfile /usr/share/applications/deadbeef.desktop file contains group "Stop Shortcut Group", but groups extending the format should start with "X-" deadbeef.i686: E: invalid-desktopfile /usr/share/applications/deadbeef.desktop file contains group "Next Shortcut Group", but groups extending the format should start with "X-" deadbeef.i686: E: invalid-desktopfile /usr/share/applications/deadbeef.desktop file contains group "Prev Shortcut Group", but groups extending the format should start with "X-" 1 packages and 0 specfiles checked; 5 errors, 1 warnings. > no-manual-page-for-binary deadbeef Left because I think threis no need in manual for musoc player (What even can be in manual for player with GUI?) > deadbeef.i686: E: invalid-desktopfile /usr/share/applications/deadbeef.desktop > file contains group "Play Shortcut Group", but groups extending the format > should start with "X-" Left because I don't know how to apply patch when building rpms with mock (Or i should build it with rpmbuild?) Created attachment 659 [details]
new version of deadbeef spec file
Some things to fix: whitespace: spec should use white space consistently. - This means always use space or always tab for indentation. - Also, remove trailing spaces and tabs from all lines. - Looking at other specs, you'll notice that %files section do not have the lines indented. - take a look at the spec with an editor that can show whitespace: yum install meld meld deadbeef.spec.orig deadbeef.spec - I think we are supposed to avoid ".la droppings" (see the fedora guidelines), and hence shouldn't be packaging them. - an rpm spec changelog should indicate changes only to the packaging, not to the upstream application/program. It also has a standard no indent format, and requires the change author's email. eg: (from guidelines, 1 of 3 acceptable formats): * Fri Jun 23 2006 Jesse Keating <jkeating@redhat.com> - 0.6-4 - fix the link syntax. - moved .h devel files to -devel package. - updated to upstream release 0.6. - the upstream changelog lines could be included in a separate changelog file that gests installed as part of the install. - the sourceurl must point to a direct download. sourceforge files have such a url that is required to be used. - the warnings with desktop files do need to be taken care of. They don't appear to be in the %files list, and they are using invalid group. It doesn't look like desktop-file-install is being used. - reduce lines to 80 chars max to assist readability. - add multiple BuildRequires/Requires lines, with preferably one, and at most a few related items, rather than placing all items on the same line. - also, you shouldn't add requires that rpmbuild picks up automatically (try to mock build without them to see if rpms succeeds). - %{_defaultdocdir}/ items should probably be %doc - %files: you can add a directory, and it will include all files and subdirs - are any the libs (.so) duplicates of fedora/rpm fusion supplied libs ? > - are any the libs (.so) duplicates of fedora/rpm fusion supplied libs ? Even if they were, currently they are stored in %{_libdir}/deadbeef/ which is a private path outside run-time linker's search path. The packaging suffers from several https://fedoraproject.org/wiki/Packaging:UnownedDirectories e.g. %{_defaultdocdir}/deadbeef/ %{_datadir}/deadbeef/ %{_datadir}/deadbeef/pixmaps/ %{_libdir}/deadbeef/ %{_includedir}/deadbeef/ However, with regard to unbundling system libs, the tarball includes several libraries in its "plugins" subdir. Ouch. I hope i fixed all mentioned errors... As for rpmlint only errors about manual and desktop icons lefs, as was mentioned before. Created attachment 660 [details] spec file 03.07.2011 > %{_libdir}/deadbeef/aac.so > %{_libdir}/deadbeef/aac.so.0 > %{_libdir}/deadbeef/aac.so.0.0.0 Please tell me, if this lines should be change to something like > %{_libdir}/deadbeef/* (In reply to comment #8) > > %{_libdir}/deadbeef/aac.so > > %{_libdir}/deadbeef/aac.so.0 > > %{_libdir}/deadbeef/aac.so.0.0.0 > Please tell me, if this lines should be change to something like > > %{_libdir}/deadbeef/* > No this would left the %{_libdir}/deadbeef directory unowned. The below line will match the directory and everything below it : %{_libdir}/deadbeef Created attachment 661 [details] spec file 03.07.2011 v2 (In reply to comment #9) > (In reply to comment #8) > > > %{_libdir}/deadbeef/aac.so > > > %{_libdir}/deadbeef/aac.so.0 > > > %{_libdir}/deadbeef/aac.so.0.0.0 > > Please tell me, if this lines should be change to something like > > > %{_libdir}/deadbeef/* > > > No this would left the %{_libdir}/deadbeef directory unowned. > The below line will match the directory and everything below it : > %{_libdir}/deadbeef > Thank you, now it is much more smaller. Smaller but no correct yet. > %{_defaultdocdir}/deadbeef > %exclude %{_defaultdocdir}/deadbeef/* What are these two lines supposed to achieve? Sometimes comments in the spec file could do wonders. ;) > %post -p /sbin/ldconfig > %postun -p /sbin/ldconfig As pointed out before, these two are not needed, because the package doesn't store any library in run-timer linker's search path. > %{_datadir}/applications/deadbeef.desktop https://fedoraproject.org/wiki/Packaging/Guidelines#desktop Notice section "desktop-file-install usage". > %{_datadir}/deadbeef > %{_libdir}/deadbeef Note that spec files are much more comprehensible, if you add a trailing slash to directories to distinguish them from single files. E.g. %{_datadir}/deadbeef/ %{_libdir}/deadbeef/ but: %{_bindir}/deadbeef Created attachment 662 [details] spec file 04.07.2011 I hope i fexed all the issues > rpmlint /var/lib/mock/fedora-15-i386/result/deadbeef-0.5.1-1.fc15.i686.rpm >> deadbeef.i686: W: no-manual-page-for-binary deadbeef >> 1 packages and 0 specfiles checked; 0 errors, 1 warnings. > [build@f14 ~]$ rpmlint /var/lib/mock/fedora-15-i386/result/deadbeef-0.5.1-1.fc15.src.rpm >> 1 packages and 0 specfiles checked; 0 errors, 0 warnings. Created attachment 663 [details] spec Some more fixes and new errors from rpmlint > rpmlint deadbeef-0.5.1-1.fc15.i686.rpm >> deadbeef.i686: W: spelling-error %description -l en_US xing -> zing, axing, sing >> deadbeef.i686: W: spelling-error %description -l en_US sid -> seed, dis, Sid >> deadbeef.i686: W: spelling-error %description -l en_US chiptune -> chip tune, chip-tune, chipmunk >> deadbeef.i686: W: spelling-error %description -l en_US xm -> cm, x, m >> deadbeef.i686: W: spelling-error %description -l en_US xbindkeys -> monkeyshine >> deadbeef.i686: W: spelling-error %description -l en_US fm -> FM, Fm, gm >> deadbeef.i686: W: spelling-error %description -l en_US scrobbler -> scribbler, scrabbler >> deadbeef.i686: W: incoherent-version-in-changelog 0.5.1-2 ['0.5.1-1.fc15', '0.5.1-1'] >> deadbeef.i686: W: no-manual-page-for-binary deadbeef >> 1 packages and 0 specfiles checked; 0 errors, 9 warnings. > [build@f14 ~]$ rpmlint deadbeef-0.5.1-1.fc15.src.rpm >> deadbeef.src: W: spelling-error %description -l en_US xing -> zing, axing, sing >> deadbeef.src: W: spelling-error %description -l en_US sid -> seed, dis, Sid >> deadbeef.src: W: spelling-error %description -l en_US chiptune -> chip tune, chip-tune, chipmunk >> deadbeef.src: W: spelling-error %description -l en_US xm -> cm, x, m >> deadbeef.src: W: spelling-error %description -l en_US xbindkeys -> monkeyshine >> deadbeef.src: W: spelling-error %description -l en_US fm -> FM, Fm, gm >> deadbeef.src: W: spelling-error %description -l en_US scrobbler -> scribbler, scrabbler >> deadbeef.src:126: W: mixed-use-of-spaces-and-tabs (spaces: line 118, tab: line 126) >> 1 packages and 0 specfiles checked; 0 errors, 8 warnings. (In reply to comment #6) > However, with regard to unbundling system libs, the tarball includes several > libraries in its "plugins" subdir. Ouch. I packaged deadbeef a while back and thought about submitting if here, but the bundled libraries are definitely a blocker. I talked to upstream about this issue and he said that it won't change: > > You are bundling a lot of libraries. This is forbidden in Fedora > > [1]. Is there a way to build against the system's versions of > > the libraries? Remmina for example has has a configure parameter > > --enable-vnc=dl for this. > > no. most of the bundled libraries have been heavily modified, for > better performance (e.g. not using stl in adplug and libsidplay2), to > make them reentrant (many libs only worked in single-instance mode, > which is not enough for my needs), to have less dependencies (e.g. > removed glib dependency from libmms), to be compatible with more > architectures and operating systems (arm, powerpc / android, bsd, > solaris), etc. > > > I don't want to maintain a package where I need to patch the > > Makefiles for every new release. Perhaps you can think of an > > easy way to fix this in the next deadbeef release. > > i don't see how is that possible, sorry. This being said I doubt this can go into rpmfusion. (In reply to comment #13) > Some more fixes and new errors from rpmlint > >> deadbeef.i686: W: incoherent-version-in-changelog 0.5.1-2 ['0.5.1-1.fc15', '0.5.1-1'] This indicates that the spec version/release was bumped, but it does not match the latest changelog entry. Remember, changelog indicates what changed with the package, rather than the upstream source, and hence must be added to for each change you make to the spec. > >> deadbeef.src:126: W: mixed-use-of-spaces-and-tabs (spaces: line 118, tab: line 126) Easy fix ;-) tells you what line the problem is. Take a look with an editor that shows whitespace as visible chars (eg like meld). Regarding bundled libraries: If you have a think about the way the source code works, do you think it would be possible to include certain make/build parameters to the build environment that would allow a packager to choose whether to use bundled or system libraries ? This would allow a custom build to include the bundled version, while the Fedora (and other distro) packaging can use the system libraries. Michael might be able to make more suggestions of how to go about it (I do not have experience in this area). Created attachment 664 [details] spec file > Regarding bundled libraries: > If you have a think about the way the source code works, do you think it would > be possible to include certain make/build parameters to the build environment > that would allow a packager to choose whether to use bundled or system > libraries ? > This would allow a custom build to include the bundled version, while the > Fedora (and other distro) packaging can use the system libraries. > Michael might be able to make more suggestions of how to go about it (I do not > have experience in this area). Fixed small errors about version and spaces. I don't have an idea how to modify makefiles. Is this is only way to get it into rpmfusion repo? And why it can't be used with it's own libraries if they were optimized for perfomance or something else? As for me, users don't care which libraries are currently in use while everything works fine. > And why it can't be used with it's own libraries if they were optimized for > perfomance or something else? As for me, users don't care which libraries are > currently in use while everything works fine. > https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries (In reply to comment #15) > Regarding bundled libraries: > If you have a think about the way the source code works, do you think it would > be possible to include certain make/build parameters to the build environment > that would allow a packager to choose whether to use bundled or system > libraries ? Perhaps I or the paragraph I quote from upstream was not clear enough. Just modifying the Makefiles is not enough because the bundled copies of the libraries are changed in a way that will most likely make building against the shared system libs fail. You can give it a try but I am not overly optimistic that it will work. (In reply to comment #18) > Perhaps I or the paragraph I quote from upstream was not clear enough. Just > modifying the Makefiles is not enough because the bundled copies of the > libraries are changed in a way that will most likely make building against the > shared system libs fail. You can give it a try but I am not overly optimistic > that it will work. > This is very sad. I have one question: was found that rpm build with this spec file provides 2 directories in /usr/share/doc /usr/share/doc/deadbeef/ (emty one) and /usr/share/doc/deadbeef-0.5.1 with docs. How it can be fixed? Should I add something like rmdir /usr/share/doc/deadbeef/ to the %post section of my spec file? Created attachment 665 [details]
spec
New spec file, problem with 2 doc dirs solved
Some comments on the spec file:
1. BuildRoot:, "rm -rf $RPM_BUILD_ROOT" can be removed from %install, %clean can be removed entirely, and "%defattr(-,root,root)" can be removed from %files unless your building for EL5.
2. In you devel subpackage the Require: should probably be arch dependent:
Requires: %{name} = %{version}-%{release}
to
Requires: %{name}%{?_isa} = %{version}-%{release}
3. Modifying the desktop file in %prep is odd. desktop-file-install can modify desktop files on the fly, so if it's capable of removing the Unity parts then I would use it instead. Just research it's options.
If desktop-file-install is not capable of making the needed edits and you still need to resort to sed then at least move it to just above your desktop-file-install command.
Also, currently you're not modifying anything in the desktop file by the time you get to desktop-file-install so you could use desktop-file-validate instead.
See:
http://fedoraproject.org/wiki/Packaging:Guidelines#desktop-file-install_usage
4. Ok, you definitely took Michael's comments to heart, but perhaps went a little too far :)
I would only add comments in %files for unusual situations. You can drop #doc, # Files, and # Dirs.
5. %{_defaultdocdir} can just be %{_docdir}
6. In the case of the extra doc directory there's no hard rule for this that I know of but it's my opinion that %exclude use in %files should be limited to excluding files from one package so they can be included in a sub-package.
For instance, you might run into a situation where it would be difficult or overly verbose to work around files that you really want to go into a -devel or -doc subpackage. Here %exclude could be used to exclude files or directors in the main package so they can be included in -doc or -devel.
If you're not going to include files in a package at all then it's better to just remove them in %install like you're already doing for .la files.
For the static libraries (.a) I would just remove them if there's nothing that actually needs them. If you need them then they should go in a -static subpackage not in -devel.
Created attachment 733 [details]
deadbeef spec file
(In reply to comment #21) > 1. fixed > 2. devel subpackage is arch independent > 3. seems like desktop-file-install can't help > 4. fixed > 5. fixed > 6. %exclude %{_docdir} here is an upstream configure script bug workaround, I hope it will be fixed in the next release .a files removed New spec file in attachments New spec file with some minor bugfixes and improvements. Tested on deadbeef 0.5.1/fedora 16. Created attachment 765 [details]
deadbeef spec file
New spec file with bugfixes, tested on deadbeef 0.5.2/fedora 16. - readded rpath removal script - new build dependency: yasm - fixed license info - fixed devel package architecture - new upstream version 0.5.2 Created attachment 841 [details]
deadbeef spec file
Closing due to inactivity, please reopen if you're interested in pursuing this review request. |