On Tue, Jun 29, 2010 at 05:58:42PM -0700, Jay Hankinson wrote: > Thanks for the quick response, spot. See below... > On 6/29/10 5:25 PM, Tom "spot" Callaway wrote: > > On 06/29/2010 08:12 PM, Jay Hankinson wrote: > >> Hello Fedora Devs, > >> > >> I'm currently going through the pre-review process for adding Ingres to > >> the Fedora distribution > >> (https://bugzilla.redhat.com/show_bug.cgi?id=578024). I'm getting some > >> conflicting information for a couple of issues and I was hoping for some > >> clarification. > >> > >> Firstly, "%defattr()". The standard says it should be > >> "%defattr(-.root,root-)" unless there is a good reason for it not to be. > >> The vast majority of the files included in the Ingres packages are owned > >> by the user 'ingres', which seems (IMHO) to be a good reason to use > >> "%defattr(-,ingres,ingres,-)". One reviewer disagreed, one agreed this > >> was probably OK but that I should check. What's the consensus here? > > If there is a valid reason for the ingres user to own those files, then > > it is correct to do so as a defattr. Just be careful. :) > Thanks, I will. :-) > >> Next, use of -f in the %files section. There are over 1700 files between > >> the 4 RPMs and the ownership and permission for each file is maintained > >> by one of the build tools. The file lists are generated as part of the > >> build process, not stored statically in the source. In order to add the > >> file lists to the SPEC files, I would need to do full build of the exact > >> same source outside of RPM, generate the files list, add them to SPEC > >> file and then run the RPM build. This is a fairly large over head for > >> each update and makes maintenance a much larger task and much more > >> susceptible to human error. By using the -f flag, I can generate the > >> lists at build time using the existing manifest and they will always be > >> correct. %files -f is also used by PostgreSQL so it's not completely > >> outlawed. Am I OK to use it? > > %files -f is permitted. You might find that things end up being more > > complicated, especially if you have config files or locale files, as > > your file list won't handle those properly. > Indeed and I've had to add a few exceptions by hand. For most of the > files though, it's actually much easier for me to use the lists > generated from the existing (non-rpm) packaging info. One thing to watch out for here is being able to change your file lists to use macros. ie: if your file list has the files: /usr/bin/ingresclient /usr/sbin/ingresserver You'd need to modify them to have: %{_bindir}/ingresclient %{_sbindir}/ingresserver Also be careful about config files and things that don't have the default user/group. For instance, %{_bindir}/ingresclient might need to have user and group root. So you'd need to modify the file list to have: %attr(0755, root, root) %{_bindir}/ingresclient A config file, /etc/ingres/server.cfg would need to be modified to read: %config(noreplace) %{_sysconfdir}/ingres/server.cfg Directories also need to be marked. If you can't use wildcards in most places, you'll need to explicitly list the directories which means changing things like /usr/share/ingres into: %dir %attr(0755, root, root) %{_datadir}/ingres -Toshio
Attachment:
pgpWYyMsaiANW.pgp
Description: PGP signature
-- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel