Emerging Spam Assassin fails when Digest-SH1 is not on the system Reproducible: Always Steps to Reproduce: 1.emerge spamassasin 2. 3. Actual Results: >>> emerge (9 of 67) mail-filter/spamassassin-3.0.2-r1 to / >>> md5 src_uri ;-) Mail-SpamAssassin-3.0.2.tar.bz2 >>> Unpacking source... >>> Unpacking Mail-SpamAssassin-3.0.2.tar.bz2 to /var/tmp/portage/spamassassin-3.0.2-r1/work >>> Source unpacked. What email address or URL should be used in the suspected-spam report text for users who want more information on your filter installation? (In particular, ISPs should change this to a local Postmaster contact) default text: [the administrator of that system] the administrator of that system Check network rules during 'make test' (test scripts may fail due to network problems)? (y/n) [n] n Run SQL-based Auto-whitelist tests during 'make test' (additional information required) (y/n) [n] n Run Bayes SQL storage tests during 'make test' (additional information required)? (y/n) [n] n Warning: prerequisite Digest::SHA1 0 not found. Checking if your kit is complete... Looks good Writing Makefile for Mail::SpamAssassin Makefile written by ExtUtils::MakeMaker 6.17 /usr/bin/perl spamc/configure.pl --prefix="/usr" --sysconfdir="/etc/mail/spamassassin" --datadir="/usr/share/spamassassin" --enable-ssl="yes" spamc/configure.pl: version.h.pl: Failed to get the version from Mail::SpamAssassin. Please use the --with-version= switch to specify it manually. The error was: version.h.pl: version.h.pl: version.h.pl: version.h.pl: version.h.pl: version.h.pl: version.h.pl: Can't locate Digest/SHA1.pm in @INC (@INC contains: ../lib /home/paul/lib /home/paul/Mech_Trading/lib /etc/perl /usr/lib/perl5/site_perl/5.8.5/i686-linux /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.5/i686-linux /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.5/i686-linux /usr/lib/perl5/5.8.5 /usr/local/lib/site_perl .) at ../lib/Mail/SpamAssassin/EvalTests.pm line 33. BEGIN failed--compilation aborted at ../lib/Mail/SpamAssassin/EvalTests.pm line 33. Compilation failed in require at ../lib/Mail/SpamAssassin/PerMsgStatus.pm line 56. BEGIN failed--compilation aborted at ../lib/Mail/SpamAssassin/PerMsgStatus.pm line 56. Compilation failed in require at ../lib/Mail/SpamAssassin.pm line 74. BEGIN failed--compilation aborted at ../lib/Mail/SpamAssassin.pm line 74. Compilation failed in require at version.h.pl line 27. cd spamc /usr/bin/perl version.h.pl version.h.pl: creating version.h make: *** [spamc/Makefile] Error 2 /usr/bin/perl build/preprocessor -Mconditional -Mvars -DVERSION="3.000002" -DPREFIX="/usr" <lib/Mail/SpamAssassin/AutoWhitelist.pm >blib/lib/Mail/SpamAssassin/AutoWhitelist.pm /usr/bin/perl build/preprocessor -Mconditional -Mvars -DVERSION="3.000002" -DPREFIX="/usr" <lib/Mail/SpamAssassin/Dns.pm >blib/lib/Mail/SpamAssassin/Dns.pm /usr/bin/perl build/preprocessor -Mconditional -Mvars -DVERSION="3.000002" -DPREFIX="/usr" <lib/Mail/SpamAssassin/Message/Metadata/Received.pm >blib/lib/Mail/SpamAssassin/Message/Metadata/Received.pm /usr/bin/perl build/preprocessor -Mconditional -Mvars -DVERSION="3.000002" -DPREFIX="/usr" <lib/Mail/SpamAssassin/Message/Metadata.pm >blib/lib/Mail/SpamAssassin/Message/Metadata.pm /usr/bin/perl build/preprocessor -Mconditional -Mvars -DVERSION="3.000002" -DPREFIX="/usr" <lib/Mail/SpamAssassin/BayesStore.pm >blib/lib/Mail/SpamAssassin/BayesStore.pm < Lots of stuff cut> /usr/bin/perl build/preprocessor -Mconditional -Mvars -DVERSION="3.000002" -DPREFIX="/usr" <lib/Mail/SpamAssassin/Util/RegistrarBoundaries.pm >blib/lib/Mail/SpamAssassin/Util/RegistrarBoundaries.pm /usr/bin/perl spamc/configure.pl --prefix="/usr" --sysconfdir="/etc/mail/spamassassin" --datadir="/usr/share/spamassassin" --enable-ssl="yes" spamc/configure.pl: version.h.pl: Failed to get the version from Mail::SpamAssassin. Please use the --with-version= switch to specify it manually. The error was: version.h.pl: version.h.pl: version.h.pl: version.h.pl: version.h.pl: version.h.pl: version.h.pl: Can't locate Digest/SHA1.pm in @INC (@INC contains: ../lib /home/paul/lib /home/paul/Mech_Trading/lib /etc/perl /usr/lib/perl5/site_perl/5.8.5/i686-linux /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.5/i686-linux /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.5/i686-linux /usr/lib/perl5/5.8.5 /usr/local/lib/site_perl .) at ../lib/Mail/SpamAssassin/EvalTests.pm line 33. BEGIN failed--compilation aborted at ../lib/Mail/SpamAssassin/EvalTests.pm line 33. Compilation failed in require at ../lib/Mail/SpamAssassin/PerMsgStatus.pm line 56. BEGIN failed--compilation aborted at ../lib/Mail/SpamAssassin/PerMsgStatus.pm line 56. Compilation failed in require at ../lib/Mail/SpamAssassin.pm line 74. BEGIN failed--compilation aborted at ../lib/Mail/SpamAssassin.pm line 74. Compilation failed in require at version.h.pl line 27. cd spamc /usr/bin/perl version.h.pl version.h.pl: creating version.h make: *** [spamc/Makefile] Error 2 !!! ERROR: mail-filter/spamassassin-3.0.2-r1 failed. !!! Function perl-module_src_compile, Line 100, Exitcode 2 !!! compilation failed !!! If you need support, post the topmost build error, NOT this status message. Expected Results: Spam Assassin installs correctly emerge Digest-SHA1 emerge spamassassin works around the problem
Since a grep reveals: spamassassin-2.63-r1.ebuild: dev-perl/Digest-SHA1 spamassassin-2.63.ebuild: dev-perl/Digest-SHA1 spamassassin-2.64-r1.ebuild: dev-perl/Digest-SHA1 spamassassin-2.64.ebuild: dev-perl/Digest-SHA1 spamassassin-3.0.0-r1.ebuild: dev-perl/Digest-SHA1 spamassassin-3.0.0.ebuild: dev-perl/Digest-SHA1 spamassassin-3.0.1.ebuild: dev-perl/Digest-SHA1 spamassassin-3.0.2-r1.ebuild: dev-perl/Digest-SHA1 spamassassin-3.0.2.ebuild: dev-perl/Digest-SHA1 I'm going to take a stab and say you upgraded versions of perl at some point :) Two choices: re-emerge Digest-SHA1 and move along, or run perl-cleaner under $PORTDIR/dev-lang/perl/files/ and let it correct any other ebuilds you might have that had xs code linked against your old perl (there's a note about this after perl installs that can be missed at times - the output's also captured if you enable logging in make.conf).
It was already in the depend list.