Please do not reply directly to this email. All additional comments should be made in the comments box of this bug. https://bugzilla.redhat.com/show_bug.cgi?id=537587 Mamoru Tasaka <mtasaka@xxxxxxxxxxxxxxxxxxx> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mtasaka@xxxxxxxxxxxxxxxxxxx --- Comment #34 from Mamoru Tasaka <mtasaka@xxxxxxxxxxxxxxxxxxx> 2009-11-29 13:46:10 EDT --- Some notes A. Description, etc. * Naming - Please explain why you want to name subpackages in libdspam(-foo) style. On Fedora usually subpackages are named as "dspam-libs" or "dspam-devel" or "dspam-hash" or so. ! By the way, but for "libdspam" and "libdspam-devel", the naming of libdspam-foo subpackages are definitely wrong because none of these package contains system-wide libraries. - Files under %_libdir/dspam are just plugins and not system-wide libraries. Also see below (about calling ldconfig) - "%package -n dspam-web" can simply be "%package web" * Dependency between subpackages https://fedoraproject.org/wiki/Packaging/Guidelines#Requiring_Base_Package - "dspam" binary rpm should have "dspam-libs = %{version}-%{release}" - "dspam-hash" should have "dspam = %{version}-%{release}" (and other subpackage should have similar dependency). ! Note that dependency between subpackages should usually be EVR (Epoch-Version-Release) specific, not just version. * Other dependency - "Requires: pkgconfig" (for -devel subpackage) is no longer needed (for F-11/12/13) https://fedoraproject.org/wiki/PackagingDrafts/PkgconfigAutoRequires (This is still a draft, however will be accepted on 2009-12-03). - For perl module related dependency, please use virtual provides names instead of using rpm names directly. https://fedoraproject.org/wiki/Packaging/Perl#Perl_Requires_and_Provides B. %prep, %build, %install, %check * Timestamp - Please consider to use --------------------------------------------------------------- make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" --------------------------------------------------------------- to keep timestamps on installed files. This method usually works for Makefiles generated by recent autotools. C. scriptlets / service * "source"ing /etc/profile - Why do you "source" /etc/profile? (note that rpm executes these scriptlets in subshells and subshell exits when those scriptlets are done) * Calling /sbin/ldconfig - You don't have to call /sbin/ldconfig for rpms not containing system-wide libraries (i.e. needed only for dspam-libs binary rpm) * restart service on %postun - is wrong because "restart" activates service even if the service was off before (this should be condrestart) https://fedoraproject.org/wiki/Packaging/SysVInitScript#Initscripts_in_spec_file_scriptlets * Missing Requires - Add missing "Requires(post): chkconfig" or so: https://fedoraproject.org/wiki/Packaging/SysVInitScript#Initscripts_in_spec_file_scriptlets * service-default-enabled https://fedoraproject.org/wiki/Packaging/SysVInitScript#.23_chkconfig:_line - rpmlint shows: ------------------------------------------------------------- dspam.i686: W: service-default-enabled /etc/rc.d/init.d/dspam ------------------------------------------------------------- i.e. currently dspam service is enabled by default once dspam rpm is enabled, which is usually not desided. Usually service should be off by default, i.e. change the line ------------------------------------------------------------- # chkconfig: 345 70 30 ------------------------------------------------------------- to ------------------------------------------------------------- # chkconfig: - 70 30 ------------------------------------------------------------- D. %files * %defattr - Now we usually use %defattr(-.root.root,-) * Owner/Group/Permission --------------------------------------------------------------- -r-x--s--x 1 root root 88252 Nov 29 16:10 /usr/bin/dspam --------------------------------------------------------------- - However your spec file shows: --------------------------------------------------------------- 120 %configure \ 137 --with-dspam-owner='%{dspam_user}' \ 138 --with-dspam-group='%{dspam_group}' \ --------------------------------------------------------------- and build.log shows: --------------------------------------------------------------- 779 chown: changing ownership of `/builddir/build/BUILDROOT/dspam-3.9.0-0.9.BETA4.fc13.i386/usr/bin/dspam': Operation not permitted 784 chgrp: changing group of `/builddir/build/BUILDROOT/dspam-3.9.0-0.9.BETA4.fc13.i386/usr/bin/dspam': Operation not permitted 801 chown: changing ownership of `/builddir/build/BUILDROOT/dspam-3.9.0-0.9.BETA4.fc13.i386/var/lib/dspam': Operation not permitted 802 chgrp: changing group of `/builddir/build/BUILDROOT/dspam-3.9.0-0.9.BETA4.fc13.i386/var/lib/dspam': Operation not permitted 815 chown: changing ownership of `/builddir/build/BUILDROOT/dspam-3.9.0-0.9.BETA4.fc13.i386/var/log/dspam': Operation not permitted 816 chgrp: changing group of `/builddir/build/BUILDROOT/dspam-3.9.0-0.9.BETA4.fc13.i386/var/log/dspam': Operation not permitted --------------------------------------------------------------- So the owner/group of these files/directories seem wrong (in the binary rpms). Set these explicitly by %attr. - Also build.log shows: --------------------------------------------------------------- 798 chmod "770" /builddir/build/BUILDROOT/dspam-3.9.0-0.9.BETA4.fc13.i386/var/lib/dspam; \ 812 chmod "770" /builddir/build/BUILDROOT/dspam-3.9.0-0.9.BETA4.fc13.i386/var/log/dspam; \ --------------------------------------------------------------- However, currently these directories have 0755 permission (in the binary rpm). Please check if permissions are set correctly. * %files entry unification - By the way %files entry --------------------------------------------------------------- %files %dir foo/ foo/* --------------------------------------------------------------- (where foo/ is a directory) can be unified as --------------------------------------------------------------- %files foo/ --------------------------------------------------------------- This style contains the directory foo/ itself and all files/directories/etc under foo/. * Macros - Use %{_initddir} for %_sysconfdir/rc.d/init.d: https://fedoraproject.org/wiki/Packaging/SysVInitScript#Initscripts_on_the_filesystem * Directory ownership issue - The following directories are not owned by any packages: -------------------------------------------------------------- /usr/share/dspam/ /usr/share/dspam/sql-scripts/ -------------------------------------------------------------- E. Misc * Permission of files in srpm -------------------------------------------------------------- dspam.src: W: strange-permission dspam-logrotate 0600 dspam.src: W: strange-permission dspam-cron 0775 dspam.src: W: strange-permission dspam-init.d 0600 -------------------------------------------------------------- - Usually we request that all files in srpm should be 0644. -- Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ Fedora-package-review mailing list Fedora-package-review@xxxxxxxxxx http://www.redhat.com/mailman/listinfo/fedora-package-review