Bart Schaefer wrote: >I've been trying to think how to correctly relocate $(LOCAL_RULES_DIR) >relative to $(PREFIX) when building SA. The problem of course being that >in the "normal" case, /etc is not relative to $Config{prefix}, which is >the default value of $(PREFIX). This is particularly important when >a non-root user is installing. > >Choices appear to be: > >(1) Change $(LOCAL_RULES_DIR) to always be $(PREFIX)/etc/spamassassin, >giving up on using /etc/mail unless the installer edits Makefile.PL. I >note that /usr/local/etc/spamassassin is already being searched before >/etc/mail/spamassassin by the ordering of the @site_rules_path array, but >there seems to be some feeling among sa-talk posters that /etc/mail is the >"right" place to put this. > >(2) Prepend $(PREFIX) only if $Config{prefix} ne '/usr' at the time the >Makefile is generated. This works for differing Perl installations, but >not for "make PREFIX=...". > >(3) Test e.g. EUID at the time Makefile is generated to decide whether to >prepend $(PREFIX) to the path. This helps out the non-root installer, but >has two drawbacks: root still can't usefully specify "make PREFIX=...", >and "perl Makefile.PL" has to be run with the same EUID as "make install". > >(4) Add some kind of conditional to the emitted Makefile that tests >whether the make-time value of $(PREFIX) is the same as the generate-time >value. This has portability problems -- either one has to use extended >make syntax, or resort to conditional shell code in the rules (which makes >specifying dependencies problematic). > >I'd actually prefer (1), but as there's already been some confusion over >the relocation of /etc/spamassassin.cf and /etc/mail/spamassassin.cf it >may not be a good idea to change it yet again. So the appended patch >combines (2) and (3), using (-w '/') as the (non-) root installer test. > >Whatever the final decision, the POD in SpamAssassin.pm should be updated >to reflect the changes to the search order. > > >Index: Makefile.PL >=================================================================== >RCS file: /cvsroot/spamassassin/spamassassin/Makefile.PL,v >retrieving revision 1.24 >diff -u -r1.24 Makefile.PL >--- Makefile.PL 19 Feb 2002 20:17:41 -0000 1.24 >+++ Makefile.PL 14 Apr 2002 18:19:34 -0000 >@@ -3,6 +3,8 @@ > my $DEF_RULES_DIR = '$(PREFIX)/share/spamassassin'; > > my $LOCAL_RULES_DIR = '/etc/mail/spamassassin'; >+ $LOCAL_RULES_DIR = '$(PREFIX)/etc/spamassassin' >+ unless ($Config{prefix} eq '/usr' && -w '/'); > > my $MYCFLAGS = ''; # this is a good place to put -g etc. > > I would say that it should be called ROOT rather than PREFIX, but yes, that's exactly the approach I use when rolling my own userland RPMs. (Why should it be necessary to be root in order to build an RPM?)
-- http://www.pricegrabber.com "We are smarter individually." -- Larry Niven _______________________________________________ Spamassassin-talk mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/spamassassin-talk