Spec URL: http://0pointer.de/public/libcanberra.spec SRPM URL: http://0pointer.de/public/libcanberra-0.2-1.fc10.src.rpm Description: A portable sound event library, implementing the freedesktop.org/XDG sound theming/naming specifications.
Builds fine in mock. rpmlint says: [mclasen@localhost ~]$ rpmlint /var/lib/mock/fedora-rawhide-i386/result/*.rpm libcanberra.i386: W: no-documentation You should include at least %doc README LGPL libcanberra.i386: E: no-changelogname-tag This is odd. Maybe my rpmlint is broken, since there clearly is a %changelog libcanberra.i386: E: invalid-soname /usr/lib/libcanberra-pulse.so libcanberra-pulse.so libcanberra.i386: E: invalid-soname /usr/lib/libcanberra-null.so libcanberra-null.so libcanberra.i386: E: invalid-soname /usr/lib/libcanberra-alsa.so libcanberra-alsa.so Are these plugins ? if so, they should not live in /usr/lib libcanberra-devel.i386: W: non-standard-group Development/C Should just be Development/Libraries
I'll do a formal review in a bit, probably have to leave the office before the fedora wiki page loads :-)
going down the checklist: package name: ok spec file name: ok packaging guidelines: see above for things rpmlint found. beyond that, the devel package needs to require pkg-config because it contains pc files and gtk-doc because it contains stuff in /usr/share/gtk-doc/help license: ok license field: ok license file: must be included spec file language: ok spec file legibility: ok upstream sources: ok buildable: yes excludearch: n/a build deps: ok locale handling: ok ldconfig: ok relocatable: n/a directory ownership: ok duplicate files: ok file permissions: ok %clean: ok macro use: consistent content: permissible large docs: ok %doc content: ok headers: ok static libs: n/a pc files: must add Requires: pkgconfig to -devel shared libs: see above, libcanberra-foo.so should be moved out of /usr/lib devel deps: ok libtool archives: ok gui apps: n/a file ownership: ok %install: ok utf8 filenames: ok
> [mclasen@localhost ~]$ rpmlint /var/lib/mock/fedora-rawhide-i386/result/*.rpm > libcanberra.i386: W: no-documentation > > You should include at least > %doc README LGPL Fixed. > libcanberra.i386: E: invalid-soname /usr/lib/libcanberra-pulse.so > libcanberra-pulse.so > libcanberra.i386: E: invalid-soname /usr/lib/libcanberra-null.so libcanberra-null.so > libcanberra.i386: E: invalid-soname /usr/lib/libcanberra-alsa.so libcanberra-alsa.so > > Are these plugins ? if so, they should not live in /usr/lib Yes, they are plugins. Moving plugins to other directores is a pain to do in a thread-safe manner with the mess that is ltdl, because you need to patch the search path. I'd prefer leaving it the way it is for now. We can move that around whenever we want in the future. Also, with the names chosen we shouldn't be in risk of namespace clashes. And finally, having them in /usr/lib also allows us to make use of the ld cache. Unless you really insist I'd prefer to leave it the way it is right now. > libcanberra-devel.i386: W: non-standard-group Development/C > > Should just be Development/Libraries Oops, seems to be a mandrivaism left-over from the original spec file I based my work on. Fixed, too. Spec file is now updated.
(In reply to comment #3) > packaging guidelines: see above for things rpmlint found. beyond that, the > devel package needs to require pkg-config because it contains pc files > and gtk-doc because it contains stuff in /usr/share/gtk-doc/help Fixed. > license: ok > license field: ok > license file: must be included Fixed. > pc files: must add Requires: pkgconfig to -devel Fixed. > shared libs: see above, libcanberra-foo.so should be moved out of /usr/lib See my earlier comments about this. I uploaded an updated spec/srpm, but didn't bump the revision.
> Yes, they are plugins. Moving plugins to other directores is a pain to do in a > thread-safe manner with the mess that is ltdl, because you need to patch the > search path. Sounds like another good reason not to use ltdl, if you ask me. > I'd prefer leaving it the way it is for now. We can move that > around whenever we want in the future. I'd be more inclined to agree if this was legacy code. But this is brandnew. If we don't get it right now, it'll likely broken forever. Don't you think ? Also, with the names chosen we shouldn't be in risk of namespace clashes. And finally, having them in /usr/lib also allows us to make use of the ld cache. Unless you really insist I'd prefer to leave it the way it is right now.
(In reply to comment #6) > > Yes, they are plugins. Moving plugins to other directores is a pain to do in a > > thread-safe manner with the mess that is ltdl, because you need to patch the > > search path. > > Sounds like another good reason not to use ltdl, if you ask me. This code is supposed to be portable. To have plugins working in a portable way is either using ltdl or glib. To appease the KDE people and ease porters to windows I kept glib out. So I am stuck with stupid ltdl, and I am not going to maintain my own replacement for ltdl. > > I'd prefer leaving it the way it is for now. We can move that > > around whenever we want in the future. > > I'd be more inclined to agree if this was legacy code. But this is brandnew. If > we don't get it right now, it'll likely broken forever. Don't you think ? Hmm, you might be right on that one. I will try to fix this. It's going to be messy though. I am not really how the solution for this I use in PulseAudio works. But in PA the races don't really matter since it is not a library, and I have perfect control from where i call the ltdl functions. But yepp. I'll fix it. Stay tuned.
Ok, all fixed now. Spec file at same place, srpm is new since i released a new upstream version 0.3 for this: http://0pointer.de/public/libcanberra-0.3-1.fc10.src.rpm
Almost perfect now. Just add %dir %{_libdir}/libcanberra and then you are good to go.
srpm and spec file updated. Everything good to go?
Yes, approved
New Package CVS Request ======================= Package Name: libcanberra Short Description: Portable Sound Event Library Owners: lennart Branches: devel InitialCC: Cvsextras Commits: yes
cvs done.
Imported to CVS and built.