SA Bugzilla – Bug 2359
Bug? In MAKE INSTALL for 2.60 RC2
Last modified: 2003-08-27 08:22:28 UTC
if I remove \etc\mail\spamassassin (the whole directory tree) in 2.55 and previous, then when I run make install on win32 it it recreates that whole tree. In 2.60RC2, it doesn't. Deliberate or oversight?
afaik there should not be a difference... could you post a log of what make outputs around that time?
Ok, note the missing mkpath... 2.60 RC2: C:\Documents and Settings\mbell\Desktop\Mail-SpamAssassin-2.60-rc2\Mail-SpamAssa ssin-2.60>nmake Microsoft (R) Program Maintenance Utility Version 1.50 Copyright (c) Microsoft Corp 1988-94. All rights reserved. C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e cp sa-learn blib\script\sa-learn C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -e "system qq[pl2bat.b at ].shift" blib\script\sa-learn C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e cp spamassassin blib\script\spamassassin C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -e "system qq[pl2bat.b at ].shift" blib\script\spamassassin C:\Documents and Settings\mbell\Desktop\Mail-SpamAssassin-2.60-rc2\Mail-SpamAssa ssin-2.60>nmake install Microsoft (R) Program Maintenance Utility Version 1.50 Copyright (c) Microsoft Corp 1988-94. All rights reserved. C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e cp sa-learn blib\script\sa-learn C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -e "system qq[pl2bat.b at ].shift" blib\script\sa-learn C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e cp spamassassin blib\script\spamassassin C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -e "system qq[pl2bat.b at ].shift" blib\script\spamassassin Skipping C:\Perl\site\lib\Mail\SpamAssassin.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\ArchiveIterator.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\AuditMessage.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\AutoWhitelist.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\Bayes.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\BayesStore.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\CmdLearn.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\Conf.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\ConfSourceSQL.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\DBBasedAddrList.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\Dns.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\EncappedMessage.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\EncappedMIME.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\EvalTests.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\HTML.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\Locales.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\Locker.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\MailingList.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\Message.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\NetSet.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\NoMailAudit.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\PerMsgLearner.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\PerMsgStatus.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\PersistentAddrList.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\PhraseFreqs.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\Received.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\Replier.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\Reporter.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\SHA1.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\TextCat.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\UnixLocker.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\Util.pm (unchanged) Skipping C:\Perl\site\lib\Mail\SpamAssassin\Win32Locker.pm (unchanged) Skipping C:\Perl\bin\sa-learn (unchanged) Skipping C:\Perl\bin\sa-learn.bat (unchanged) Skipping C:\Perl\bin\spamassassin (unchanged) Skipping C:\Perl\bin\spamassassin.bat (unchanged) Writing C:\Perl\site\lib\auto\Mail\SpamAssassin\.packlist Appending installation info to C:\Perl\lib/perllocal.pod C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e mkpath C:\Perl/share/spamassassin C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e rm_rf C:\Perl/share/spamassassin/* C:\Perl\bin\perl.exe build/preprocessor -Mvars -DVERSION="2.60" -DPREF IX="C:\Perl" -DDEF_RULES_DIR="C:\Perl/share/spamassassin" -DLOCAL_RULES_DIR="/ etc/mail/spamassassin" -DINSTALLSITELIB="C:\Perl\site\lib" -DCONTACT_ADDRESS=" ksk" -m -Irules -OC:\Perl/share/spamassassin 10_misc.cf 20_anti_ratware.cf 20_bo dy_tests.cf 20_compensate.cf 20_dnsbl_tests.cf 20_fake_helo_tests.cf 20_head_tes ts.cf 20_html_tests.cf 20_meta_tests.cf 20_phrases.cf 20_porn.cf 20_ratware.cf 2 0_uri_tests.cf 23_bayes.cf 25_body_tests_es.cf 25_body_tests_pl.cf 25_head_tests _es.cf 25_head_tests_pl.cf 30_text_de.cf 30_text_es.cf 30_text_fr.cf 30_text_it. cf 30_text_pl.cf 30_text_sk.cf 50_scores.cf 60_whitelist.cf user_prefs.template triplets.txt languages C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e chmod C:\Perl/share/spamassassin C:\Documents and Settings\mbell\Desktop\Mail-SpamAssassin-2.60-rc2\Mail-SpamAssa ssin-2.60> Then 2.55, after a clean removal of perl modules: C:\Documents and Settings\mbell\Desktop\Mail-SpamAssassin-2.55\Mail-SpamAssassin -2.55>nmake Microsoft (R) Program Maintenance Utility Version 1.50 Copyright (c) Microsoft Corp 1988-94. All rights reserved. C:\Documents and Settings\mbell\Desktop\Mail-SpamAssassin-2.55\Mail-SpamAssassin -2.55>nmake install Microsoft (R) Program Maintenance Utility Version 1.50 Copyright (c) Microsoft Corp 1988-94. All rights reserved. Installing C:\Perl\site\lib\Mail\SpamAssassin.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\ArchiveIterator.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\AuditMessage.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\AutoWhitelist.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Bayes.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\BayesStore.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\CmdLearn.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Conf.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\ConfSourceSQL.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\DBBasedAddrList.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Dns.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\EncappedMessage.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\EncappedMIME.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\EvalTests.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\HTML.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Locales.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Locker.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\MailingList.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Message.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\NoMailAudit.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\PerMsgLearner.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\PerMsgStatus.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\PersistentAddrList.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\PhraseFreqs.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Replier.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Reporter.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\SHA1.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\TextCat.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\UnixLocker.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Util.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Win32Locker.pm Installing C:\Perl\bin\sa-learn Installing C:\Perl\bin\sa-learn.bat Installing C:\Perl\bin\spamassassin Installing C:\Perl\bin\spamassassin.bat Writing C:\Perl\site\lib\auto\Mail\SpamAssassin\.packlist Appending installation info to C:\Perl\lib/perllocal.pod C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e mkpath /etc/mail/spamassassin C:\Perl\bin\perl.exe -e "use File::Copy; (-f '/etc/mail/spamassassin/loc al.cf') or copy ('rules/local.cf', '/etc/mail/spamassassin/local.cf');" C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e mkpath C:\Perl/share/spamassassin C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e rm_rf C:\Perl/share/spamassassin/* C:\Perl\bin\perl.exe build/preprocessor -Mvars -DVERSION="2.55" -DPREF IX="C:\Perl" -DDEF_RULES_DIR="C:\Perl/share/spamassassin" -DLOCAL_RULES_DIR="/ etc/mail/spamassassin" -DINSTALLSITELIB="C:\Perl\site\lib" -Irules -OC:\Perl/sh are/spamassassin 10_misc.cf 20_anti_ratware.cf 20_body_tests.cf 20_compensate.cf 20_he.ad_tests.cf 20_html_tests.cf 20_meta_tests.cf 20_phrases.cf 20_porn.cf 20_ ratware.cf 20_uri_tests.cf 23_bayes.cf 25_body_tests_es.cf 25_body_tests_pl.cf 2 5_head_tests_es.cf 25_head_tests_pl.cf 30_text_de.cf 30_text_es.cf 30_text_fr.cf 30_text_it.cf 30_text_pl.cf 50_scores.cf 60_whitelist.cf user_prefs.template tr iplets.txt languages C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e chmod C:\Perl/share/spamassassin C:\Documents and Settings\mbell\Desktop\Mail-SpamAssassin-2.55\Mail-SpamAssassin -2.55>
Created attachment 1274 [details] attempted fix OK, try this one - another patch I'm afraid ;) Basically it removes 2 very UNIXy uses of make's dependency support which probably don't work too well on win32 or other non-make-type platforms. In addition, it reduces the amount of code involved.
KINDA. It now creates \perl\etc\mail\spamassasin and copies local.cf there (if not extant). Previous versions created \etc\mail\spamassassin , so I'm guessing this is a small booboo?
Is this a change you want to make? (eg from \etc\mail\spamassassin to \perl\etc\mail\spamassassin)?
No -- I think that's to be expected, since there isn't really a /etc on windows; it infers the location it should use, as best it can, and \perl\etc is the nearest it can guess. That can be overridden from the Makefile.PL command line. moving milestone -- this can go into 2.60.
to be more clear BTW. using \etc was incorrect - a bug. \perl\etc is a more reasonable guess. so it's a bugfix ;)
I don't want to be difficult, but I know folks that don't want that installed under the PERL directory. Is this really necessary? It's worked for win32 folks fine since 2.11 this way.
do the install with perl Makefile.PL SYSCONFDIR=/path/to/etc and it'll override it. There is no "correct" path to /etc on windows, as that's a UNIXism.
nope that doesn't work.
nope doesn't work. SYSCONFDIR is ignored.
to clarify, if you DIRECTLY edit MAKEFILE. SYSCONFDIR, it works. If you run PERL MAKEFILE.PL SYSCONFDIR=/goo for example, it fails (writes it to INSTSYSCONFDIR instead....
I think that code is logically borked. Patch follows...
I think we should do rc3 without this patch; sounds like a can of worms to me and we need to get one out sooner rather than later.
Created attachment 1285 [details] patch against Makefile.PL ok, the SYSCONFDIR stuff was mixed up. If you used a PREFIX or INST_PREFIX other than /usr, the setting was always overwritten. I tried probably all possible combinations with my patch and the Makefile now looks good. if this patch is +1'ed, please don't commit; I'd like to do some simple whitespace changes on top (which I excluded from this patch to keep it easy to grok)
(Sorry that I add you to the CCs Justin, just want to speed RC3 up as much as possible, too) Without my patch all installations to not-/usr will override SYSCONFDIR and INST_SYSCONFDIR. We could do RC3 without it but it should go into the final. Hey, all it needs are two more +1s :)
+1 -- yes, that'll fix it
+1 looks like a clean patch.
fix committed