Mail-Toaster

 view release on metacpan or  search on metacpan

lib/Mail/Toaster/Setup.pm  view on Meta::CPAN

OPTIONS_FILE_UNSET+=PADLOCK
OPTIONS_FILE_SET+=ZLIB
OPTIONS_FILE_UNSET+=SCTP
OPTIONS_FILE_UNSET+=MD2
OPTIONS_FILE_UNSET+=RC5
OPTIONS_FILE_UNSET+=RFC3779
OPTIONS_FILE_UNSET+=GMP
OPTIONS_FILE_SET+=EC
",
    );
};

sub periodic_conf {

    return if -e "/etc/periodic.conf";

    open my $PERIODIC, '>>', '/etc/periodic.conf';
    print $PERIODIC '
#--periodic.conf--
# 210.backup-aliases
daily_backup_aliases_enable="NO"                       # Backup mail aliases

# 440.status-mailq
daily_status_mailq_enable="YES"                         # Check mail status
daily_status_mailq_shorten="NO"                         # Shorten output
daily_status_include_submit_mailq="NO"                 # Also submit queue

# 460.status-mail-rejects
daily_status_mail_rejects_enable="NO"                  # Check mail rejects
daily_status_mail_rejects_logs=3                        # How many logs to check
#-- end --
';
    close $PERIODIC;
}

sub php {
    my $self = shift;

    if ( ! $self->conf->{install_squirrelmail} && ! $self->conf->{install_roundcube} ) {
        $self->audit("skipping PHP install");
        return;
    };

    if ( $OSNAME eq 'freebsd' ) {
        return $self->php_freebsd;
    };

    my $php = $self->util->find_bin('php',fatal=>0);
    $self->error( "no php install support for $OSNAME yet, and php is not installed. Please install and try again." );
    return;
};

sub php_freebsd {
    my $self = shift;

    $self->freebsd->install_port( "php5",
        category=> 'lang',
        options => "# This file generated by mail-toaster
# Options for php5-5.4.16
_OPTIONS_READ=php5-5.4.16
_FILE_COMPLETE_OPTIONS_LIST=CLI CGI FPM APACHE AP2FILTER EMBED DEBUG DTRACE IPV6 MAILHEAD LINKTHR
OPTIONS_FILE_SET+=CLI
OPTIONS_FILE_SET+=CGI
OPTIONS_FILE_UNSET+=FPM
OPTIONS_FILE_UNSET+=APACHE
OPTIONS_FILE_UNSET+=AP2FILTER
OPTIONS_FILE_UNSET+=EMBED
OPTIONS_FILE_UNSET+=DEBUG
OPTIONS_FILE_UNSET+=DTRACE
OPTIONS_FILE_SET+=IPV6
OPTIONS_FILE_UNSET+=MAILHEAD
OPTIONS_FILE_UNSET+=LINKTHR
",
    ) or return;

    my $config = "/usr/local/etc/php.ini";
    if ( ! -e $config ) {
        copy("$config-production", $config) if -e "$config-production";
        chmod oct('0644'), $config;

        $self->config->apply_tweaks(
            file => "/usr/local/etc/php.ini",
            changes => [
                {   search  => q{;include_path = ".:/php/includes"},
                    replace => q{include_path = ".:/usr/local/share/pear"},
                },
                {   search  => q{;date.timezone =},
                    replace => q{date.timezone = America/Denver},
                },
            ],
        );
    };

    return 1 if -f $config;
    return;
};

sub phpmyadmin {
    my $self  = shift;
    my %p = validate( @_, { $self->get_std_opts },);

    return $p{test_ok} if defined $p{test_ok}; # for testing only

    unless ( $self->conf->{install_phpmyadmin} ) {
        print "phpMyAdmin install disabled. Set install_phpmyadmin in "
            . "toaster-watcher.conf if you want to install it.\n";
        return 0;
    }

    # prevent t1lib from installing X11
    if ( $OSNAME eq "freebsd" ) {
        $self->php();
        $self->freebsd->install_port( "t1lib", flags => "WITHOUT_X11=yes" );
        $self->freebsd->install_port( "php5-gd" );
    }

    $self->mysql->phpmyadmin_install;
}

sub portmaster {
    my $self = shift;

    if ( ! $self->conf->{install_portmaster} ) {
        $self->audit("install portmaster skipped, not selected", verbose=>1);
        return;
    };



( run in 3.170 seconds using v1.01-cache-2.11-cpan-71847e10f99 )