Spec URL: http://dmaphy.fedorapeople.org/ctpl/ctpl.spec SRPM URL: http://dmaphy.fedorapeople.org/ctpl/ctpl-0.2.2-1.fc13.src.rpm sha1sums: ed81ac4d7674debb8b8916794de97a605d04f806 ctpl-0.2.2-1.fc13.src.rpm fe6c15d906d4c25d1e7fb9e4f72fe6fdd0a5688e ctpl.spec Description: CTPL is a template library written in C. It allows fast and easy parsing of templates from many sources (including in-memory data and local and remote streaming, thanks to GIO) and fine control over template parsing environment. CTPL has following features: * It is a library, then it can be easily used from programs * Separated lexer and parser * It is written in portable C * Simple syntax * Fast and strict parsing * Possible in-memory parsing, allowing non-file data parsing and avoiding I/O-latency, through GIO's GMemoryInputStream and GMemoryOutputStream Note: This package provides an additional dependency for geany-plugins. Since the Geany Plugins 0.19 release there is a new plugin called "GeanyGenDoc" which makes use of CTPL. $ rpmlint ctpl.spec 0 packages and 1 specfiles checked; 0 errors, 0 warnings. The package builds fine for me in mock.
Updated package: Spec URL: http://dmaphy.fedorapeople.org/ctpl/ctpl.spec SRPM URL: http://dmaphy.fedorapeople.org/ctpl/ctpl-0.2.2-2.fc13.src.rpm sha1sums: c125c0cfd8ab37954f65532615a60a4ad851cd43 ctpl-0.2.2-2.fc13.src.rpm 68311a4e122ddfaa64d6598c8458be3db5922362 ctpl.spec ChangeLog: * Fri Jul 16 2010 Dominic Hopf <dmaphy> - 0.2.2-2 - rename subpackage lib to libs - add Requires on the libs package to -bin, -devel and -doc package - install %%{_libdir}/lib%%{name}.so with a -static package - install manpage only with the binary - install HACKING and TODO only with the -devel package - install README and THANKS only with the -doc package - fix the installation path for documentation files Because of the renaming from lib to libs, you may have to uninstall any 0.2.2-1 package first. I don't think it's necessary to make use of Obsoletes and Provides here in this early state of the package.
(In reply to comment #1) > - install %%{_libdir}/lib%%{name}.so with a -static package This is a packaging guidelines violation. The .so symlink should be in -devel. http://fedoraproject.org/wiki/Packaging/Guidelines#DevelPackages
I actually was moving the .so file to a separate -static package because of the guidelines. The CTPL package provides both, shared libraries and this static library. According to [1] the static library shall be in a -static subpackage then, separated from the -devel package to allow tracking of usage of the static library. Does this obsolete the point Mattias linked to? Or is it the more elegant way to just not begin installing the static .so file anyway? [1] https://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Static_Libraries_2
This is not a static library. This is a symlink to the shared object library intended to be used for linking during development: rpm -qlvp /home/ellert/rpmbuild/RPMS/x86_64/ctpl-static-0.2.2-2.fc12.x86_64.rpm lrwxrwxrwx 1 root root 16 jul 16 08:56 /usr/lib64/libctpl.so -> libctpl.so.1.0.2 The guideline I quoted says: "The following are examples of file types which should be in -devel: ... Unversioned shared libraries (e.g. libfoo.so) ..." which is what this file is. Also the review guidelines say: http://fedoraproject.org/wiki/Packaging/ReviewGuidelines "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." This item has a footnote that references the above quoted guideline. Your package does not contain any static libraries. The static library if it existed would be named libctpl.a. You should not add new static libraries to Fedora unless you have a very good reason for doing so - they are considered a security problem. The guideline you quoted about that static libraries should be put in a -static subpackage is valid, but it is not relevant in this case since the file you are packaging is not a static library. It applies only in the exceptional case when a static library must be packaged for Fedora - the preferred way is always to not package static libraries.
Hum, not sure what confused me last night. Of course, .so is shared object and nothing static, you're totally right. :) Spec URL: http://dmaphy.fedorapeople.org/ctpl/ctpl.spec SRPM URL: http://dmaphy.fedorapeople.org/ctpl/ctpl-0.2.2-3.fc13.src.rpm sha1sums: 6071536d0ab83e7d96e5de15143a4d91010c6fd9 ctpl-0.2.2-3.fc13.src.rpm 75d0174173d75a8a4c596be700c8e134f4e33478 ctpl.spec
Fedora Review ctpl 2010-07-16 rpmlint output: $ rpmlint ctpl-0.2.2-3.fc12.src.rpm ctpl*-0.2.2-3.fc12.x86_64.rpm ctpl-bin.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/ctpl ['/usr/lib64'] ctpl-libs.x86_64: E: library-without-ldconfig-postin /usr/lib64/libctpl.so.1.0.2 ctpl-libs.x86_64: E: library-without-ldconfig-postun /usr/lib64/libctpl.so.1.0.2 6 packages and 0 specfiles checked; 3 errors, 0 warnings. These must be fixed: http://fedoraproject.org/wiki/PackagingGuidelines#Removing_Rpath http://fedoraproject.org/wiki/PackagingGuidelines#Shared_Libraries + Package is named according to guidelines + Specfile is named after the package ? There is no binary package created called ctpl. While this is not a guidelines violation, it is confusing. Consider renaming either the ctpl-bin or ctpl-libs package to ctpl. ? The cptl-doc package should be noarch (if you are planning to use the same specfile in EPEL this must be made conditional, since older rpm versions do not support noarch subpackages) %if %{?fedora}%{!?fedora:0} >= 10 || %{?rhel}%{!?rhel:0} >= 6 BuildArch: noarch %endif ? I don't understand your comment about --docdir not working. Since there are no Makefile rules that says anything should be installed in docdir, the fact that nothing is installed there just means everything works as intended. - The specfile is missing a changelog entry for the current release (0.2.2-3) + The package's license tag GPLv3+ is a Fedora approved license + The package's license tag matches the license statements in the sources + The license file (COPYING) is included as %doc + Specfile is written in legible English + Source matches upstream: $ md5sum srpm/ctpl-0.2.2.tar.gz ctpl-0.2.2.tar.gz 8a2b96f624054c20df5340e017b17251 srpm/ctpl-0.2.2.tar.gz 8a2b96f624054c20df5340e017b17251 ctpl-0.2.2.tar.gz + Scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=2324915 + BuildRequires are sane + No locales - ctpl-libs installs a shared library in the default library search path without calling ldconfig in scriptlets (also seen by rpmlint above) + No bundled libraries - Package ctpl-doc installs files in /usr/share/gtk-doc/html, but does not own this directory, nor does it require any package that does. The package must either own /usr/share/gtk-doc and /usr/share/gtk-doc/html or require gtk-doc. Please consult: http://fedoraproject.org/wiki/PackagingGuidelines#File_and_Directory_Ownership - No package owns /usr/share/doc/ctpl-0.2.2 (should be owned by ctpl-libs) - Duplicated files in filelists: AUTHORS, PACKAGING and NEWS are installed in the same location both by ctpl-bin and ctpl-lib. Since ctpl-bin requires ctpl-lib the copies in ctpl-bin are redundant. + Permissions are sane and %files has %defattr + Specfile uses macros consistently + Contains code + %doc is not runtime essential + Header files in -devel + No static libraries + .so symlink in -devel + -devel requires -libs with fully qualified version + no libtool archives + Package does not own other's directories + Installed files have valid UTF8 filenames - Since ctpl-bin depends on ctpl-libs and these are built from the same srpm you should normally add a requires using the fully qualified version. The autogenerated requires based on the soname is less precise.
(In reply to comment #6) > Fedora Review ctpl 2010-07-16 > > > rpmlint output: > > $ rpmlint ctpl-0.2.2-3.fc12.src.rpm ctpl*-0.2.2-3.fc12.x86_64.rpm > ctpl-bin.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/ctpl ['/usr/lib64'] > ctpl-libs.x86_64: E: library-without-ldconfig-postin > /usr/lib64/libctpl.so.1.0.2 > ctpl-libs.x86_64: E: library-without-ldconfig-postun > /usr/lib64/libctpl.so.1.0.2 > 6 packages and 0 specfiles checked; 3 errors, 0 warnings. > > These must be fixed: > http://fedoraproject.org/wiki/PackagingGuidelines#Removing_Rpath > http://fedoraproject.org/wiki/PackagingGuidelines#Shared_Libraries Fixed those errors, thanks. > ? There is no binary package created called ctpl. While this is not a > guidelines violation, it is confusing. Consider renaming either the > ctpl-bin or ctpl-libs package to ctpl. I removed the -bin subpackage and install the binary and manpage with the mainpackage (which is named ctpl) now. I think this should fix the issue and isn't that confusing anymore. :) > ? The cptl-doc package should be noarch (if you are planning to use > the same specfile in EPEL this must be made conditional, since older > rpm versions do not support noarch subpackages) > > %if %{?fedora}%{!?fedora:0} >= 10 || %{?rhel}%{!?rhel:0} >= 6 > BuildArch: noarch > %endif Applied, thanks. :) > ? I don't understand your comment about --docdir not working. Since > there are no Makefile rules that says anything should be installed > in docdir, the fact that nothing is installed there just means > everything works as intended. I actually forgot to have a look into the Makefile first and thus thought there must be something wrong, because I expected files like AUTHORS and so on to be installed there. Is this an issue I maybe should report to upstream? > - The specfile is missing a changelog entry for the current release (0.2.2-3) Added, sorry. > - ctpl-libs installs a shared library in the default library search path > without calling ldconfig in scriptlets (also seen by rpmlint above) Fixed. > - Package ctpl-doc installs files in /usr/share/gtk-doc/html, but does > not own this directory, nor does it require any package that does. > The package must either own /usr/share/gtk-doc and /usr/share/gtk-doc/html > or require gtk-doc. Please consult: Fixed. I decided to require the gtk-doc package as dependency for the -doc subpackage. :) > - No package owns /usr/share/doc/ctpl-0.2.2 (should be owned by ctpl-libs) Fixed. > - Duplicated files in filelists: AUTHORS, PACKAGING and NEWS are installed > in the same location both by ctpl-bin and ctpl-lib. Since ctpl-bin requires > ctpl-lib the copies in ctpl-bin are redundant. Fixed. > - Since ctpl-bin depends on ctpl-libs and these are built from the > same srpm you should normally add a requires using the fully > qualified version. The autogenerated requires based on the soname > is less precise. The main package which is the one which installs the binary now, now explicitly requires ctpl-libs = %{version}-%{release}. New package release: Spec URL: http://dmaphy.fedorapeople.org/ctpl/ctpl.spec SRPM URL: http://dmaphy.fedorapeople.org/ctpl/ctpl-0.2.2-4.fc13.src.rpm sha1sums: 88223af6552e96807af1c112e86b637f24f86cae ctpl-0.2.2-4.fc13.src.rpm 0f3cc080f7020ea7043c687a4865e4619be93bae ctpl.spec
Package approved.
Thanks very much for reviewing Mattias! :) New Package CVS Request ======================= Package Name: ctpl Short Description: Template library and engine written in C Owners: dmaphy Branches: F-13 InitialCC:
CVS done (by process-cvs-requests.py).
ctpl-0.2.2-4.fc13 has been submitted as an update for Fedora 13. http://admin.fedoraproject.org/updates/ctpl-0.2.2-4.fc13
ctpl-0.2.2-4.fc13 has been pushed to the Fedora 13 stable repository. If problems still persist, please make note of it in this bug report.
Package Change Request ====================== Package Name: ctpl New Branches: el6 Owners: dmaphy jgu pingou InitialCC:
Git done (by process-git-requests).