Mail-Toaster
view release on metacpan or search on metacpan
lib/Mail/Toaster/Setup.pm view on Meta::CPAN
}
}
my $mysqlbin = $self->util->find_bin( 'mysql', fatal => 0 );
if ( ! -x $mysqlbin ) {
$mysqlbin = $self->util->find_bin( 'mysql5' );
};
my $sqldir = "/usr/local/share/doc/spamassassin/sql";
foreach my $f (qw/bayes_mysql.sql awl_mysql.sql userpref_mysql.sql/) {
if ( ! -f "$sqldir/$f" ) {
warn "missing .sql file: $f\n";
next;
};
if ( `grep MyISAM "$sqldir/$f"` ) {
my @lines = $self->util->file_read( "$sqldir/$f" );
foreach my $line (@lines) {
if ( $line eq ') TYPE=MyISAM;' ) {
$line = ');';
};
};
$self->util->file_write( "$sqldir/$f", lines=>\@lines );
};
$self->util->syscmd( "$mysqlbin spamassassin < $sqldir/$f" );
}
my $file = "/usr/local/etc/mail/spamassassin/sql.cf";
unless ( -f $file ) {
my @lines = <<EO_SQL_CF;
loadplugin Mail::SpamAssassin::Plugin::AWL
user_scores_dsn DBI:mysql:spamassassin:localhost
user_scores_sql_username $self->conf->{install_spamassassin_dbuser}
user_scores_sql_password $self->conf->{install_spamassassin_dbpass}
#user_scores_sql_table userpref
bayes_store_module Mail::SpamAssassin::BayesStore::SQL
bayes_sql_dsn DBI:mysql:spamassassin:localhost
bayes_sql_username $self->conf->{install_spamassassin_dbuser}
bayes_sql_password $self->conf->{install_spamassassin_dbpass}
#bayes_sql_override_username someusername
auto_whitelist_factory Mail::SpamAssassin::SQLBasedAddrList
user_awl_dsn DBI:mysql:spamassassin:localhost
user_awl_sql_username $self->conf->{install_spamassassin_dbuser}
user_awl_sql_password $self->conf->{install_spamassassin_dbpass}
user_awl_sql_table awl
EO_SQL_CF
$self->util->file_write( $file, lines => \@lines );
}
}
sub spamassassin_update {
my $self = shift;
my $update = $self->util->find_bin( "sa-update", fatal => 0 ) or return;
system $update and do {
$self->error( "error updating spamassassin rules", fatal => 0);
};
$self->audit( "trying again without GPG" );
system "$update --nogpg" and
return $self->error( "error updating spamassassin rules", fatal => 0);
return 1;
};
sub sqlite_freebsd {
my $self = shift;
$self->freebsd->install_port( 'icu',
options => "# Options for icu-50.1.2
_OPTIONS_READ=icu-50.1.2
_FILE_COMPLETE_OPTIONS_LIST=THREADS
OPTIONS_FILE_SET+=THREADS
",
);
$self->freebsd->install_port( 'sqlite3',
options => "
# Options for sqlite3-3.7.17_1
_OPTIONS_READ=sqlite3-3.7.17_1
_FILE_COMPLETE_OPTIONS_LIST=DIRECT_READ EXTENSION FTS3 ICU MEMMAN METADATA RAMTABLE RTREE SECURE_DELETE SOUNDEX STAT3 THREADSAFE UNLOCK_NOTIFY UPD_DEL_LIMIT URI
OPTIONS_FILE_UNSET+=DIRECT_READ
OPTIONS_FILE_SET+=EXTENSION
OPTIONS_FILE_SET+=FTS3
OPTIONS_FILE_SET+=ICU
OPTIONS_FILE_UNSET+=MEMMAN
OPTIONS_FILE_SET+=METADATA
OPTIONS_FILE_UNSET+=RAMTABLE
OPTIONS_FILE_UNSET+=RTREE
OPTIONS_FILE_SET+=SECURE_DELETE
OPTIONS_FILE_UNSET+=SOUNDEX
OPTIONS_FILE_UNSET+=STAT3
OPTIONS_FILE_SET+=THREADSAFE
OPTIONS_FILE_SET+=UNLOCK_NOTIFY
OPTIONS_FILE_UNSET+=UPD_DEL_LIMIT
OPTIONS_FILE_SET+=URI
",
);
}
sub squirrelmail {
my $self = shift;
my %p = validate( @_, { $self->get_std_opts },);
return $p{test_ok} if defined $p{test_ok}; # for testing
my $ver = $self->conf->{install_squirrelmail} or do {
$self->audit( 'skipping squirrelmail install (disabled)');
return;
};
if ( $OSNAME eq "freebsd" && $ver eq "port" ) {
$self->php();
$self->squirrelmail_freebsd() and return;
};
$ver = "1.4.6" if $ver eq 'port';
print "squirrelmail: attempting to install from sources.\n";
( run in 0.494 second using v1.01-cache-2.11-cpan-df04353d9ac )