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

Reply via email to