Spec URL: http://downloads.sourceforge.net/qsmartcard/muParser.spec?use_mirror=dfn SRPM URL: http://downloads.sourceforge.net/qsmartcard/muParser-1.27-1FC5.src.rpm?use_mirror=dfn Description: Many applications require the parsing of mathematical expressions. The main objective of this project is to provide a fast and easy way of doing this. muParser is an extensible high performance math parser library. It is based on transforming an expression into a bytecode and precalculating constant parts of it.
A few issues I found: The compiler isn't called with the proper flags; I think it should suffice to call make like: make CXXFLAGS="$RPM_OPT_FLAGS" %{?_smp_mflags} Loads of errors like the following: warning: File listed twice: /usr/share/doc/muParser/html which are due to the same directories being included multipe times in %files: %{_docdir}/%{name} %{_docdir}/%{name}/html %doc %{_docdir}/%{name}/html/* It looks like you probably want to do the following at the end of %install instead of copying the files into the buildroot: mv docs/html . And then you can just have %doc html in %files which gets all of the html documentation under /usr/share/doc/muParser-devel-1.27/html. Lots of rpmlint warnings: W: muParser wrong-file-end-of-line-encoding /usr/share/doc/muParser-1.27/License.txt And many others like it; these should be passed through tr or sed or dos2unix in to clean them up. E: muParser library-without-ldconfig-postin /usr/lib64/libmuparser.so.0.0.0 You need %post -p /sbin/ldconfig
So fixed. The new URLs: SRPM: http://downloads.sourceforge.net/qsmartcard/muParser-1.27-2.fc6.src.rpm?use_mirror=osdn SPEC: http://downloads.sourceforge.net/qsmartcard/muParser.spec?use_mirror=osdn
Looks much better; rpmlint now shows the following: E: muParser no-cleaning-of-buildroot %install Indeed, the buildroot isn't cleaned; you should have 'rm -rf $RPM_BUILD_ROOT' at the beginning of %install. W: muParser mixed-use-of-spaces-and-tabs (spaces: line 8, tab: line 1) Well, the Group: line is indented with spaces while the others are indented with tabs, but this warning is little more than annoyance. Fix it if you like. I note that the documentation indicates that pkgconfig files should be installed and a .pc file is created during the build, but I don't see it in the final package. I think this is because you don't call the install Makefile target, which contains: $(INSTALL_DATA) build/autoconf/muparser.pc $(libdir)/pkgconfig This needs to be installed as it's part of the expected API of the library. Review: * source files match upstream: b37a479257e5733f58011709b2640c01d5519645e6385426ce696d5fa1ff58bc muparser_v127.tar.gz * package meets naming and versioning guidelines. * specfile is properly named, is cleanly written and uses macros consistently. * summary is OK. * description is OK. * dist tag is present. * build root is OK. * license field matches the actual license. * license is open source-compatible. * license text 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). * package installs properly * debuginfo package looks complete. X rpmlint has a valid complaint. * final provides and requires are sane: libmuparser.so.0()(64bit) muParser = 1.27-2.fc7 = /sbin/ldconfig libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libmuparser.so.0()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libstdc++.so.6(GLIBCXX_3.4)(64bit) * %check is not present; no test suite upstream. * shared libraries installed; ldconfig called appropriately. * unversioned .so files are in the -devel package. * 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. * most documentation is in the -devel package. * %docs are not necessary for the proper functioning of the package. * headers are in the -devel package. * unversioned .so files are in the -devel package. X no pkgconfig files (but there should be) * no static libraries. * no libtool .la files.
At me rpmlint don't show any warnings/error messages. Do you have take the spec file version 1.27-2?
Yes, I do. The specfile here: http://downloads.sourceforge.net/qsmartcard/muParser.spec?use_mirror=osdn obviously does not clean the buildroot at the beginning of %install. It's trivial to see by inspection even without an rpmlint warning.
So I have create an version with contains: %install rm -rf $RPM_BUILD_ROOT But after build, I don't get any rpmlint warnings. So I can't reproduce it.
So now I have fix the pkgconfig problem. The new files: SPEC: http://downloads.sourceforge.net/qsmartcard/muParser.spec?use_mirror=osdn SRPM: http://downloads.sourceforge.net/qsmartcard/muParser-1.27-3.fc6.src.rpm?use_mirror=osdn
OK, that's much better. The only remaining problem is that since you've added a pkgconfig file, the -devel subpackage now needs a depencency on pkgconfig. Anyway, you can fix that when you check in. APPROVED
So I have modify the Requires of the devel package to: Requires: %{name} = %{version}-%{release} pkgconfig right so?
Yes, just add a dependency on pkgconfig. You can do that on its own line: Requires: pkgconfig or on the same line as another dependency as you have shown in comment #9.
Ok, here the new packages. SPEC: http://downloads.sourceforge.net/qsmartcard/muParser.spec?use_mirror=osdn SRPM: http://downloads.sourceforge.net/qsmartcard/muParser-1.27-4.fc6.src.rpm?use_mirror=osdn
Yes, that's fine. I already approved this package, so you can make your CVS request whenever you're ready.
New Package CVS Request ======================= Package Name: muParser Short Description: A fast math parser library Owners: frank-buettner Branches: FC-5 FC-6 F-7 InitialCC: frank-buettner
CVS done.
So imported and build.
Package Change Request ====================== Package Name: muParser New Branches: EL-4 EL-5
cvs branch done.
Package Change Request ====================== Package Name: muParser New Branches: epel7 Owners: brouhaha
Git done (by process-git-requests).