Hello community,
here is the log from the commit of package yast2-mail for openSUSE:Factory
checked in at Fri Jan 9 02:13:04 CET 2009.
--------
--- yast2-mail/yast2-mail.changes 2008-12-12 06:39:50.000000000 +0100
+++ /mounts/work_src_done/STABLE/yast2-mail/yast2-mail.changes 2009-01-08 13:19:58.046609000 +0100
@@ -1,0 +2,9 @@
+Thu Jan 8 13:17:02 CET 2009 - varkoly@suse.de
+
+- avoid undefined variables in the MasterCFParser
+- make progress bar by WriteDialog visable
+- bnc#463589 - YaST2 Mail Server & amavisd
+- the myhostname in /etc/amavisd.conf must be set to FQHN
+- bnc#463430 - Mail to a shared folder can couse infinit loop
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
yast2-mail-2.17.3.tar.bz2
New:
----
yast2-mail-2.17.4.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-mail.spec ++++++
--- /var/tmp/diff_new_pack.N32457/_old 2009-01-09 02:12:58.000000000 +0100
+++ /var/tmp/diff_new_pack.N32457/_new 2009-01-09 02:12:58.000000000 +0100
@@ -1,7 +1,7 @@
#
-# spec file for package yast2-mail (Version 2.17.3)
+# spec file for package yast2-mail (Version 2.17.4)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,12 +19,12 @@
Name: yast2-mail
-Version: 2.17.3
+Version: 2.17.4
Release: 1
License: GPL v2 or later
Group: System/YaST
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source0: yast2-mail-2.17.3.tar.bz2
+Source0: yast2-mail-2.17.4.tar.bz2
Prefix: /usr
BuildRequires: perl-XML-Writer update-desktop-files yast2-devtools yast2-testsuite
BuildRequires: yast2-ldap-server yast2-network yast2-perl-bindings yast2-users
@@ -77,7 +77,7 @@
Peter Varkoly
%prep
-%setup -n yast2-mail-2.17.3
+%setup -n yast2-mail-2.17.4
%build
%{prefix}/bin/y2tool y2autoconf
@@ -171,6 +171,12 @@
%dir /usr/share/YaST2/clients
/usr/share/YaST2/clients/users*
%changelog
+* Thu Jan 08 2009 varkoly@suse.de
+- avoid undefined variables in the MasterCFParser
+- make progress bar by WriteDialog visable
+- bnc#463589 - YaST2 Mail Server & amavisd
+- the myhostname in /etc/amavisd.conf must be set to FQHN
+- bnc#463430 - Mail to a shared folder can couse infinit loop
* Fri Dec 12 2008 varkoly@suse.de
- bnc#458553 - YaSt2 Mail module do not install cyrus-sasl-saslauthd
- new user has got default quota only
++++++ yast2-mail-2.17.3.tar.bz2 -> yast2-mail-2.17.4.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-mail-2.17.3/agents/MasterCFParser.pm new/yast2-mail-2.17.4/agents/MasterCFParser.pm
--- old/yast2-mail-2.17.3/agents/MasterCFParser.pm 2007-11-22 10:43:46.000000000 +0100
+++ new/yast2-mail-2.17.4/agents/MasterCFParser.pm 2009-01-08 13:15:58.000000000 +0100
@@ -71,7 +71,6 @@
package MasterCFParser;
use strict;
-use Data::Dumper;
no warnings 'redefine';
######################################################################################
@@ -140,8 +139,10 @@
while( defined $CFA[$c+1] && $CFA[$c+1] =~ /^\s+/ ) {
$line .= $CFA[++$c];
}
-
- push @$cfa, line2service($line);
+ if( $line =~ /\w+/ )
+ { #avoid emty lines
+ push @$cfa, line2service($line);
+ }
}
$this->{MCF} = $cfa;
return 0;
@@ -247,7 +248,10 @@
next if defined $s->{comment};
$foundmatches = 0;
foreach my $fs ( keys %$fsrv ) {
- $foundmatches++ if $fsrv->{$fs} eq $s->{$fs};
+ if( defined $fsrv->{$fs} && defined $s->{$fs} )
+ {
+ $foundmatches++ if $fsrv->{$fs} eq $s->{$fs};
+ }
}
push @$retsrv, $s if $foundmatches == $nrkeys;
}
@@ -420,7 +424,9 @@
my $line = '';
if( defined $srv->{comment} ) {
$line = $srv->{comment};
- } else {
+ }
+ elsif( defined $srv->{service} && $srv->{type} && $srv->{private} && $srv->{unpriv} && $srv->{chroot} && $srv->{wakeup} && $srv->{maxproc} && $srv->{command} )
+ {
$line =
sprintf("%-8s %-5s %-6s %-7s %-7s %-8s %-7s %s",
$srv->{service},
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-mail-2.17.3/src/mail-server_complex.ycp new/yast2-mail-2.17.4/src/mail-server_complex.ycp
--- old/yast2-mail-2.17.3/src/mail-server_complex.ycp 2008-06-17 11:32:33.000000000 +0200
+++ new/yast2-mail-2.17.4/src/mail-server_complex.ycp 2009-01-06 09:45:46.000000000 +0100
@@ -127,6 +127,8 @@
*/
symbol WriteDialog()
{
+ Wizard::CreateDialog ();
+ Wizard::SetDesktopIcon("mail");
Wizard::RestoreHelp(HELPS["write"]:"");
boolean ret = MailServer::Write();
return ret ? `next : `abort;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-mail-2.17.3/src/mail-server_dialogs.ycp new/yast2-mail-2.17.4/src/mail-server_dialogs.ycp
--- old/yast2-mail-2.17.3/src/mail-server_dialogs.ycp 2008-12-09 14:51:04.000000000 +0100
+++ new/yast2-mail-2.17.4/src/mail-server_dialogs.ycp 2009-01-06 09:25:19.000000000 +0100
@@ -658,7 +658,7 @@
term MailPreventionDialog(string CID, string CIDRBL)
{
- y2milestone("--Start MailTransportsDialog ---");
+ y2milestone("--Start MailPreventionDialog ---");
list<term> AccessItems= [];
list<term> RBLItems = [];
string BasicProtection = (string)MailServer::MailPrevention["BasicProtection"]:"";
@@ -671,8 +671,7 @@
boolean BasicProtectionMedium = false;
boolean BasicProtectionHard = true;
-y2milestone("---- MailPrevention %1",MailServer::MailPrevention);
-y2milestone("---- VSCount %1",VSCount);
+ y2milestone("---- VSCount %1",VSCount);
if(BasicProtection == "off"){
BasicProtectionOff = true;
@@ -701,9 +700,9 @@
SpamL = `Left(`CheckBox (`id(`SpamLearning), `opt(`notify), _("Configure Spam Learning Extension"), SpamLearning));
}
term content = `VBox (
- `Left(`CheckBox (`id(`VirusScanning), `opt(`notify), _("Start Virus Scanner AMAVIS"), VirusScanning)),
+ `Left(`CheckBox (`id(`VirusScanning), `opt(`notify), _("Start Virus Scanner AMAVIS"), VirusScanning)),
`VSpacing (1),
- `Left(`IntField (`id(`VSCount), `opt(`notify), _("Count of Virsus Scanner Process"), 1,50,VSCount)),
+ `Left(`IntField (`id(`VSCount), `opt(`notify), _("Count of Virsus Scanner Process"), 1,50,VSCount)),
`VSpacing (1),
SpamL,
`VSpacing (1),
@@ -1349,6 +1348,10 @@
ret = event["ID"]:nil;
EventType = event["EventType"]:nil;
+y2milestone("event %1",event);
+y2milestone("event %1",ret);
+y2milestone("FocusedContent %1",FocusedContent);
+
if(ret == `cancel || ret == `abort ) {
if(ReallyAbort()) break;
else continue;
@@ -1655,9 +1658,6 @@
focus_changed = true;
FocusedContent ="MailLocalDomains";
}
-y2milestone("event %1",event);
-y2milestone("event %1",ret);
-y2milestone("FocusedContent %1",FocusedContent);
if(ret != `cancel && ret != `abort && ret != `next ) {
Wizard::SetContents(title, content ,helptext, false, true);
Wizard::SetDesktopIcon("mail");
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-mail-2.17.3/src/MailServer.ycp new/yast2-mail-2.17.4/src/MailServer.ycp
--- old/yast2-mail-2.17.3/src/MailServer.ycp 2008-12-11 14:45:28.000000000 +0100
+++ new/yast2-mail-2.17.4/src/MailServer.ycp 2009-01-06 09:35:45.000000000 +0100
@@ -582,7 +582,7 @@
else
{
return false;
- }
+ }
}
Service::Enable("amavis");
Service::Enable("clamd");
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-mail-2.17.3/src/suse-mailserver.schema new/yast2-mail-2.17.4/src/suse-mailserver.schema
--- old/yast2-mail-2.17.3/src/suse-mailserver.schema 2008-01-08 10:21:40.000000000 +0100
+++ new/yast2-mail-2.17.4/src/suse-mailserver.schema 2009-01-04 07:49:44.000000000 +0100
@@ -140,6 +140,12 @@
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16}
SINGLE-VALUE )
+attributetype ( MailAT:22 NAME ( 'suseDeliveryToFolder' 'deliveryToFolder' )
+ DESC 'Shows if the member of the group the mails will get'
+ EQUALITY caseIgnoreMatch
+ SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} )
+
##
## Objectclass Section
##
@@ -147,7 +153,7 @@
DESC 'represents an entry which is able to receive mail'
MAY ( suseMailAcceptAddress $ suseMailAlias $
suseVirtualAddress $ suseMailCommand $
- suseMailForwardAddress $ suseDeliveryToMember $ suseImapQuota) )
+ suseMailForwardAddress $ suseDeliveryToMember $ suseImapQuota $ suseDeliveryToFolder ) )
objectclass ( MailOC:2 NAME ( 'suseMailDomain' 'mailDomain' ) SUP top AUXILIARY
DESC 'To configure behaviour of mail domains'
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-mail-2.17.3/src/YaPI/MailServer.pm new/yast2-mail-2.17.4/src/YaPI/MailServer.pm
--- old/yast2-mail-2.17.3/src/YaPI/MailServer.pm 2008-12-09 16:34:12.000000000 +0100
+++ new/yast2-mail-2.17.4/src/YaPI/MailServer.pm 2009-01-06 09:02:37.000000000 +0100
@@ -348,7 +348,14 @@
'command' => 'smtp' });
if(! defined $smtpsrv )
{
- SCR->Execute('.mail.postfix.mastercf.addService', { 'service' => 'smtp', 'command' => 'smtp' });
+ SCR->Execute('.mail.postfix.mastercf.addService', { 'service' => 'smtp',
+ 'type' => 'inet',
+ 'private' => 'n',
+ 'unpriv' => '-',
+ 'chroot' => 'n',
+ 'wakeup' => '-',
+ 'maxproc' => '-',
+ 'command' => 'smtpd' });
}
}
@@ -1161,44 +1168,38 @@
}
# Now we looking for if vscan (virusscanning) is started.
- my $vscan = SCR->Execute('.mail.postfix.mastercf.findService',
+ my $vscanin = SCR->Execute('.mail.postfix.mastercf.findService',
{ 'service' => 'localhost:10025',
'command' => 'smtpd'} );
- my $smtp = SCR->Execute('.mail.postfix.mastercf.findService',
- { 'service' => 'smtp',
- 'command' => 'smtpd'});
-#print STDERR "SMTP";
-#print STDERR Dumper ($smtp);
-#print STDERR "VSCAN";
-#print STDERR Dumper ($vscan);
- if( defined $smtp->[0] && defined $smtp->[0]->{'options'} )
- {
- if( $smtp->[0]->{'options'}->{'content_filter'} eq 'smtp:[127.0.0.1]:10024' && $vscan )
- {
- $MailPrevention{'VirusScanning'} = YaST::YCP::Boolean(1);
- if( ! open(IN,$aconf) )
- {
- return "Error: $!";
- }
- my @ACONF = <IN>;
- close(IN);
- my $ismax = 0;
- foreach ( @ACONF )
- {
- s/\s+//g;
- if ( /^\$max_servers=(\d+)/ )
- {
- $MailPrevention{'VSCount'} = YaST::YCP::Integer($1);
- }
- $ismax = 1;
- }
- if( !$ismax )
- {
- $MailPrevention{'VSCount'} = YaST::YCP::Integer(5);
- }
- }
- }
+ my $vscanout = SCR->Execute('.mail.postfix.mastercf.findService',
+ { 'service' => 'amavis',
+ 'command' => 'lmtp'} );
+ my $content_filter = read_attribute($MainCf,'content_filter');
+ if( $content_filter eq 'amavis:[127.0.0.1]:10024' && $vscanin && $vscanout)
+ {
+ $MailPrevention{'VirusScanning'} = YaST::YCP::Boolean(1);
+ if( ! open(IN,$aconf) )
+ {
+ return "Error: $!";
+ }
+ my @ACONF = <IN>;
+ close(IN);
+ my $ismax = 0;
+ foreach ( @ACONF )
+ {
+ s/\s+//g;
+ if ( /^\$max_servers=(\d+)/ )
+ {
+ $MailPrevention{'VSCount'} = YaST::YCP::Integer($1);
+ }
+ $ismax = 1;
+ }
+ if( !$ismax )
+ {
+ $MailPrevention{'VSCount'} = YaST::YCP::Integer(5);
+ }
+ }
# make IMAP connection
my $imap = new Net::IMAP($imaphost, Debug => 0);
if( $imap )
@@ -1372,34 +1373,64 @@
code => "VIRUS_SCANNER_FAILED",
description => "activating the virus scanner failed: $err");
}
- if( SCR->Execute('.mail.postfix.mastercf.findService',
- { 'service' => 'smtp', 'command' => 'smtpd' }))
- {
- SCR->Execute('.mail.postfix.mastercf.modifyService',
- { 'service' => 'smtp',
- 'command' => 'smtpd',
- 'maxproc' => $MailPrevention->{'VSCount'},
- 'options' => { 'content_filter' => 'smtp:[127.0.0.1]:10024' } } );
- }
- else
+ # This is only for systems updated from SLES10
+ my $smtps = SCR->Execute('.mail.postfix.mastercf.findService',
+ { 'service' => 'smtps', 'command' => 'smtpd' });
+ if( ref($smtps) eq 'ARRAY' && defined $smtps->[0]->{options} )
+ {
+ my $opts = $smtps->[0]->{options};
+ if ( defined $opts->{'content_filter'} )
+ {
+ delete $opts->{'content_filter'};
+ SCR->Execute('.mail.postfix.mastercf.modifyService',
+ { 'service' => 'smtps',
+ 'command' => 'smtpd',
+ 'maxproc' => '-',
+ 'options' => $opts } );
+ }
+ }
+ my $smtp = SCR->Execute('.mail.postfix.mastercf.findService',
+ { 'service' => 'smtp', 'command' => 'smtpd' });
+ if( ref($smtp) eq 'ARRAY' && defined $smtp->[0]->{options} )
+ {
+ my $opts = $smtp->[0]->{options};
+ if ( defined $opts->{'content_filter'} )
+ {
+ delete $opts->{'content_filter'};
+ SCR->Execute('.mail.postfix.mastercf.modifyService',
+ { 'service' => 'smtp',
+ 'command' => 'smtpd',
+ 'maxproc' => '-',
+ 'options' => $opts } );
+ }
+ }
+ # End This is only for systems updated from SLES10
+ if( SCR->Execute('.mail.postfix.mastercf.findService',
+ { 'service' => 'localhost:10025', 'command' => 'smtpd' }))
{
- SCR->Execute('.mail.postfix.mastercf.addService',
- { 'service' => 'smtp',
- 'command' => 'smtpd',
+ SCR->Execute('.mail.postfix.mastercf.deleteService',
+ { 'service' => 'localhost:10025', 'command' => 'smtpd' });
+ }
+ if( SCR->Execute('.mail.postfix.mastercf.findService',
+ { 'service' => 'amavis', 'command' => 'lmtp' }))
+ {
+ SCR->Execute('.mail.postfix.mastercf.deleteService',
+ { 'service' => 'amavis', 'command' => 'lmtp' });
+ }
+ # create smtpd pocess for getting back the emails
+ SCR->Execute('.mail.postfix.mastercf.addService',
+ { 'service' => 'amavis',
+ 'command' => 'lmtp',
+ 'type' => 'unix',
+ 'private' => '-',
+ 'unpriv' => '-',
+ 'chroot' => '-',
+ 'wakeup' => '-',
'maxproc' => $MailPrevention->{'VSCount'},
- 'options' => { 'content_filter' => 'smtp:[127.0.0.1]:10024' } } );
- }
- my $smtps = SCR->Execute('.mail.postfix.mastercf.findService',
- { 'service' => 'smtps', 'command' => 'smtpd' });
- if( ref($smtps) eq 'ARRAY' && defined $smtps->[0]->{options} )
- {
- my $opts = $smtps->[0]->{options};
- $opts->{'content_filter'} = 'smtp:[127.0.0.1]:10024';
- SCR->Execute('.mail.postfix.mastercf.modifyService',
- { 'service' => 'smtps',
- 'command' => 'smtpd',
- 'options' => $opts } );
- }
+ 'options' => { lmtp_data_done_timeout => 1200,
+ lmtp_send_xforward_command => 'yes',
+ disable_dns_lookups => 'yes',
+ max_use => 20 } } );
SCR->Execute('.mail.postfix.mastercf.addService',
{ 'service' => 'localhost:10025',
'command' => 'smtpd',
@@ -1409,30 +1440,40 @@
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '-',
- 'options' => { 'content_filter' => '' } } );
+ 'options' => { content_filter => '',
+ local_recipient_maps => '',
+ relay_recipient_maps => '',
+ smtpd_delay_reject => 'no',
+ smtpd_restriction_classes => '',
+ smtpd_client_restrictions => '',
+ smtpd_helo_restrictions => '',
+ smtpd_sender_restrictions => '',
+ smtpd_recipient_restrictions => 'permit_mynetworks,reject',
+ smtpd_data_restrictions => 'reject_unauth_pipelining',
+ smtpd_end_of_data_restrictions => '',
+ mynetworks => '127.0.0.0/8',
+ smtpd_error_sleep_time => '0',
+ smtpd_soft_error_limit => '1001',
+ smtpd_hard_error_limit => '1000',
+ smtpd_client_connection_count_limit => '0',
+ smtpd_client_connection_rate_limit => '0',
+ receive_override_options => 'no_header_body_checks,no_unknown_recipient_checks'
+ }
+ } );
+ write_attribute($MainCf,'content_filter','amavis:[127.0.0.1]:10024');
}
else
{
- SCR->Execute('.mail.postfix.mastercf.deleteService',
- { 'service' => 'localhost:10025', 'command' => 'smtpd' });
- SCR->Execute('.mail.postfix.mastercf.modifyService',
- { 'service' => 'smtp', 'command' => 'smtpd', 'options' => {} } );
-
- my $smtps = SCR->Execute('.mail.postfix.mastercf.findService',
- { 'service' => 'smtps', 'command' => 'smtpd' });
- if( ref($smtps) eq 'ARRAY' && defined $smtps->[0]->{options} )
- {
- my $opts = $smtps->[0]->{options};
- delete $opts->{'content_filter'};
- SCR->Execute('.mail.postfix.mastercf.modifyService',
- { 'service' => 'smtps',
- 'command' => 'smtpd',
- 'options' => $opts });
- }
- Service->Stop('amavis');
- Service->Stop('clamd');
- Service->Disable('amavis');
- Service->Disable('clamd');
+ SCR->Execute('.mail.postfix.mastercf.deleteService',
+ { 'service' => 'localhost:10025', 'command' => 'smtpd' });
+ SCR->Execute('.mail.postfix.mastercf.deleteService',
+ { 'service' => 'amavis', 'command' => 'lmtp' });
+ write_attribute($MainCf,'content_filter','');
+
+ Service->Stop('amavis');
+ Service->Stop('clamd');
+ Service->Disable('amavis');
+ Service->Disable('clamd');
}
# now we looks if the ldap entries in the main.cf for the access table are OK.
@@ -1643,7 +1684,6 @@
}
y2milestone("-- WriteMailRelaying --");
-#print STDERR Dumper([$MailRelaying]);
# Make LDAP Connection
my $ldapMap = $self->ReadLDAPDefaults($AdminPassword);
if( !$ldapMap )
@@ -1787,7 +1827,7 @@
my %MailLocalDelivery = (
'Changed' => YaST::YCP::Boolean(0),
'Type' => '',
- 'MailboxSizeLimit'=> '',
+ 'MailboxSizeLimit'=> 0,
'FallBackMailbox' => '',
'SpoolDirectory' => '',
'QuotaLimit' => 90,
@@ -1916,12 +1956,14 @@
if( $MailLocalDelivery->{'Type'} ne 'none')
{
write_attribute($MainCf,'mydestination','$myhostname, localhost.$mydomain, $mydomain, ldap:/etc/postfix/ldapmydestination.cf');
- write_attribute($MainCf,'virtual_alias_maps', 'ldap:/etc/postfix/ldaplocal_recipient_maps.cf');
- write_attribute($MainCf,'virtual_alias_domains','ldap:/etc/postfix/ldapvirtual_alias_maps.cf');
- write_attribute($MainCf,'alias_maps','hash:/etc/aliases, ldap:/etc/postfix/ldapalias_maps_member.cf, ldap:/etc/postfix/ldapalias_maps.cf');
+ write_attribute($MainCf,'virtual_alias_maps', 'ldap:/etc/postfix/ldaplocal_recipient_maps.cf, ldap:/etc/postfix/ldapvirtual_alias_maps_member.cf, ldap:/etc/postfix/ldapvirtual_alias_maps.cf');
+ write_attribute($MainCf,'virtual_alias_domains','ldap:/etc/postfix/ldapvirtual_alias_domains.cf');
+ write_attribute($MainCf,'alias_maps','hash:/etc/aliases, ldap:/etc/postfix/ldapalias_maps_folder.cf, ldap:/etc/postfix/ldapalias_maps.cf');
+ check_ldap_configuration('alias_maps_folder',$ldapMap);
check_ldap_configuration('alias_maps',$ldapMap);
- check_ldap_configuration('alias_maps_member',$ldapMap);
+ check_ldap_configuration('virtual_alias_maps_member',$ldapMap);
check_ldap_configuration('virtual_alias_maps',$ldapMap);
+ check_ldap_configuration('virtual_alias_domains',$ldapMap);
}
if( $MailLocalDelivery->{'Type'} eq 'local')
{
@@ -2323,25 +2365,27 @@
}
else
{
- # This is a new domain, we create it.
- # We create all the DNS attributes. `hostname -f` is the NS entry.
- my $serial = POSIX::strftime("%Y%m%d%H%M",localtime);
- my $host = `hostname -f`; chomp $host;
- my $tmp = { 'Objectclass' => [ 'dNSZone','suseMailDomain' ],
- 'zoneName' => $name,
- 'suseMailDomainType' => $type,
- 'suseMailDomainMasquerading' => $masquerading,
+ # This is a new domain, we create it.
+ # We create all the DNS attributes. `hostname -f` is the NS and MX entry.
+ my $serial = POSIX::strftime("%Y%m%d%H%M",localtime);
+ my $host = `hostname -f`; chomp $host;
+ my $tmp = { 'Objectclass' => [ 'dNSZone','suseMailDomain' ],
+ 'zoneName' => $name,
+ 'suseMailDomainType' => $type,
+ 'suseMailDomainMasquerading' => $masquerading,
'relativeDomainName' => '@',
'dNSClass' => 'IN',
'dNSTTL' => '86400',
+ 'nSRecord' => $host.'.',
+ 'mXRecord' => '40 '.$host.'.',
'sOARecord' => $host.'. root.'.$host.'. '.$serial.' 10800 3600 302400 43200'
- };
- if(! SCR->Write('.ldap.add',{ "dn" => $DN } ,$tmp)){
- my $ldapERR = SCR->Read(".ldap.error");
- return $self->SetError(summary => "LDAP add failed",
- code => "SCR_WRITE_FAILED",
- description => $ldapERR->{'code'}." : ".$ldapERR->{'msg'});
- }
+ };
+ if(! SCR->Write('.ldap.add',{ "dn" => $DN } ,$tmp)){
+ my $ldapERR = SCR->Read(".ldap.error");
+ return $self->SetError(summary => "LDAP add failed",
+ code => "SCR_WRITE_FAILED",
+ description => $ldapERR->{'code'}." : ".$ldapERR->{'msg'});
+ }
}
}
@@ -2352,14 +2396,19 @@
write_attribute($MainCf,'masquerade_classes','envelope_sender, header_sender, header_recipient');
write_attribute($MainCf,'masquerade_exceptions','root');
write_attribute($MainCf,'mydestination','$myhostname, localhost.$mydomain, $mydomain, ldap:/etc/postfix/ldapmydestination.cf');
- write_attribute($MainCf,'virtual_alias_maps', 'ldap:/etc/postfix/ldaplocal_recipient_maps.cf');
- write_attribute($MainCf,'virtual_alias_domains','ldap:/etc/postfix/ldapvirtual_alias_maps.cf');
+ write_attribute($MainCf,'virtual_alias_maps', 'ldap:/etc/postfix/ldaplocal_recipient_maps.cf, ldap:/etc/postfix/ldapvirtual_alias_maps_member.cf, ldap:/etc/postfix/ldapvirtual_alias_maps.cf');
+ write_attribute($MainCf,'virtual_alias_domains','ldap:/etc/postfix/ldapvirtual_alias_domains.cf');
+ write_attribute($MainCf,'alias_maps','hash:/etc/aliases, ldap:/etc/postfix/ldapalias_maps_folder.cf, ldap:/etc/postfix/ldapalias_maps.cf');
SCR->Write('.mail.postfix.main.table',$MainCf);
SCR->Write('.mail.postfix.main',undef);
check_ldap_configuration('masquerade_domains',$ldapMap);
check_ldap_configuration('mydestination',$ldapMap);
+ check_ldap_configuration('alias_maps_folder',$ldapMap);
check_ldap_configuration('local_recipient_maps',$ldapMap);
+ check_ldap_configuration('alias_maps',$ldapMap);
check_ldap_configuration('virtual_alias_maps',$ldapMap);
+ check_ldap_configuration('virtual_alias_maps_member',$ldapMap);
+ check_ldap_configuration('virtual_alias_domains',$ldapMap);
return 1;
}
@@ -2858,17 +2907,19 @@
write_attribute($MainCf,'masquerade_exceptions','root');
write_attribute($MainCf,'content_filter','');
write_attribute($MainCf,'mydestination','$myhostname, localhost.$mydomain, $mydomain, ldap:/etc/postfix/ldapmydestination.cf');
- write_attribute($MainCf,'virtual_alias_maps', 'ldap:/etc/postfix/ldaplocal_recipient_maps.cf');
- write_attribute($MainCf,'virtual_alias_domains','ldap:/etc/postfix/ldapvirtual_alias_maps.cf');
- write_attribute($MainCf,'alias_maps','hash:/etc/aliases, ldap:/etc/postfix/ldapalias_maps.cf, ldap:/etc/postfix/ldapalias_maps_member.cf');
+ write_attribute($MainCf,'virtual_alias_maps', 'ldap:/etc/postfix/ldaplocal_recipient_maps.cf, ldap:/etc/postfix/ldapvirtual_alias_maps_member.cf, ldap:/etc/postfix/ldapvirtual_alias_maps.cf');
+ write_attribute($MainCf,'virtual_alias_domains','ldap:/etc/postfix/ldapvirtual_alias_domains.cf');
+ write_attribute($MainCf,'alias_maps','hash:/etc/aliases, ldap:/etc/postfix/ldapalias_maps_folder.cf, ldap:/etc/postfix/ldapalias_maps.cf');
check_ldap_configuration('transport_maps',$ldapMap);
check_ldap_configuration('smtp_tls_per_site',$ldapMap);
check_ldap_configuration('masquerade_domains',$ldapMap);
check_ldap_configuration('mydestination',$ldapMap);
check_ldap_configuration('local_recipient_maps',$ldapMap);
- check_ldap_configuration('virtual_alias_maps',$ldapMap);
+ check_ldap_configuration('alias_maps_folder',$ldapMap);
check_ldap_configuration('alias_maps',$ldapMap);
- check_ldap_configuration('alias_maps_member',$ldapMap);
+ check_ldap_configuration('virtual_alias_maps',$ldapMap);
+ check_ldap_configuration('virtual_alias_maps_member',$ldapMap);
+ check_ldap_configuration('virtual_alias_domains',$ldapMap);
SCR->Write('.mail.postfix.main.table',$MainCf);
SCR->Write('.mail.postfix.main',undef);
SCR->Write('.mail.postfix.mastercf',undef);
@@ -2908,8 +2959,10 @@
my @ACONF = <IN>;
close(IN);
- my $isclam = 0;
- my $ismax = 0;
+ my $isclam = 0;
+ my $ismax = 0;
+ my $ismyhostname = 0;
+ my $myhostname = `hostname -f`; chomp $myhostname;
foreach my $l ( @ACONF )
{
if ( $l =~ s/^\$max_servers = .*;/\$max_servers = $VSCount;/ )
@@ -2918,6 +2971,12 @@
next if $ismax;
$ismax = 1;
}
+ if ( $l =~ s/^\$myhostname = .*;/\$myhostname = '$myhostname';/ )
+ {
+ #fix bnc#450888 : remove the supplementary entries
+ next if $ismyhostname;
+ $ismyhostname = 1;
+ }
$l =~ s/(.*)/# $1/ if $l =~ /bypass_virus_checks_acl.*=.*qw\( \./;
if( $isclam || $l =~ /Clam Antivirus-clamd/ )
{
@@ -2931,14 +2990,20 @@
}
push @CONF, $l;
}
+ pop @CONF;
if( !$ismax )
{
- push @CONF, '$max_servers = '.$VSCount;
+ push @CONF, '$max_servers = '.$VSCount.";\n";
+ }
+ if( !$ismyhostname )
+ {
+ push @CONF, '$myhostname = '."'$myhostname';\n";
}
if( ! open(OUT,">$aconf.new") )
{
return "Error: $!";
}
+ push @CONF, '1;';
print OUT @CONF;
close(OUT);
@@ -3013,12 +3078,14 @@
'smtp_tls_per_site' => '(&(objectClass=suseMailTransport)(suseMailTransportDestination=%s))',
'access' => '(&(objectClass=suseMailAccess)(suseMailClient=%s))',
'local_recipient_maps'=> '(&(objectClass=suseMailRecipient)(|(suseMailAcceptAddress=%s)(uid=%s)))',
- 'alias_maps' => '(&(objectClass=suseMailRecipient)(cn=%s))',
- 'alias_maps_member' => '(&(objectClass=suseMailRecipient)(cn=%s)(suseDeliveryToMember=yes))',
+ 'alias_maps' => '(&(objectClass=suseMailRecipient)(|(uid=%s)(cn=%s)))',
+ 'alias_maps_folder' => '(&(objectClass=suseMailRecipient)(cn=%s)(suseDeliveryToFolder=yes))',
'mynetworks' => '(&(objectClass=suseMailMyNetworks)(suseMailClient=%s))',
'masquerade_domains' => '(&(objectClass=suseMailDomain)(zoneName=%s)(suseMailDomainMasquerading=yes))',
'mydestination' => '(&(objectClass=suseMailDomain)(zoneName=%s)(relativeDomainName=@)(!(suseMailDomainType=virtual)))',
- 'virtual_alias_maps' => '(&(objectClass=suseMailDomain)(zoneName=%s)(relativeDomainName=@)(suseMailDomainType=virtual))',
+ 'virtual_alias_maps_member' => '(&(objectClass=suseMailRecipient)(suseMailAcceptAddress=%s)(suseDeliveryToMember=yes))',
+ 'virtual_alias_maps' => '(&(objectclass=suseMailRecipient)(suseMailAcceptAddress=%s))',
+ 'virtual_alias_domains' => '(&(objectClass=suseMailDomain)(zoneName=%s)(relativeDomainName=@)(suseMailDomainType=virtual))',
'canonical_maps' => '(&(objectClass=suseCanonicalTable)(tableKey=%s)(valueType=both))',
'recipient_canonical_maps' => '(&(objectClass=suseCanonicalTable)(tableKey=%s)(valueType=recipient))',
'sender_canonical_maps' => '(&(objectClass=suseCanonicalTable)(tableKey=%s)(valueType=sender))'
@@ -3028,12 +3095,14 @@
'smtp_tls_per_site' => 'suseTLSPerSiteMode',
'access' => 'suseMailAction',
'local_recipient_maps'=> 'uid',
- 'alias_maps' => 'suseMailCommand,suseMailForwardAddress',
- 'alias_maps_member' => 'uid,suseMailForwardAddress',
+ 'alias_maps' => 'suseMailForwardAddress',
+ 'alias_maps_folder' => 'suseMailCommand',
'mynetworks' => 'suseMailClient',
'masquerade_domains' => 'zoneName',
'mydestination' => 'zoneName',
- 'virtual_alias_maps' => 'zoneName',
+ 'virtual_alias_maps_member' => 'uid',
+ 'virtual_alias_maps' => 'cn',
+ 'virtual_alias_domains' => 'zoneName',
'canonical_maps' => 'tableValue',
'recipient_canonical_maps' => 'tableValue',
'sender_canonical_maps' => 'tableValue'
@@ -3044,11 +3113,13 @@
'access' => 'one',
'local_recipient_maps'=> 'one',
'alias_maps' => 'one',
- 'alias_maps_member' => 'one',
+ 'alias_maps_folder' => 'one',
'mynetworks' => 'one',
'masquerade_domains' => 'sub',
'mydestination' => 'sub',
- 'virtual_alias_maps' => 'sub',
+ 'virtual_alias_maps_member' => 'one',
+ 'virtual_alias_maps' => 'one',
+ 'virtual_alias_domains' => 'sub',
'canonical_maps' => 'one',
'recipient_canonical_maps' => 'one',
'sender_canonical_maps' => 'one'
@@ -3058,18 +3129,20 @@
'smtp_tls_per_site' => $ldapMap->{'mail_config_dn'},
'access' => $ldapMap->{'mail_config_dn'},
'local_recipient_maps'=> $ldapMap->{'user_config_dn'},
- 'alias_maps' => $ldapMap->{'group_config_dn'},
- 'alias_maps_member' => $ldapMap->{'group_config_dn'},
+ 'alias_maps' => $ldapMap->{'ldap_domain'},
+ 'alias_maps_folder' => $ldapMap->{'group_config_dn'},
'mynetworks' => $ldapMap->{'mail_config_dn'},
'masquerade_domains' => $ldapMap->{'dns_config_dn'},
'mydestination' => $ldapMap->{'dns_config_dn'},
- 'virtual_alias_maps' => $ldapMap->{'dns_config_dn'},
+ 'virtual_alias_maps_member' => $ldapMap->{'group_config_dn'},
+ 'virtual_alias_maps' => $ldapMap->{'group_config_dn'},
+ 'virtual_alias_domains' => $ldapMap->{'dns_config_dn'},
'canonical_maps' => $ldapMap->{'mail_config_dn'},
'recipient_canonical_maps' => $ldapMap->{'mail_config_dn'},
'sender_canonical_maps' => $ldapMap->{'mail_config_dn'}
);
my %special_result_attribute = (
- 'alias_maps_member' => 'member',
+ 'virtual_alias_maps_member' => 'member',
);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-mail-2.17.3/users-plugin/users_plugin_mail_groups.ycp new/yast2-mail-2.17.4/users-plugin/users_plugin_mail_groups.ycp
--- old/yast2-mail-2.17.3/users-plugin/users_plugin_mail_groups.ycp 2008-07-23 16:26:30.000000000 +0200
+++ new/yast2-mail-2.17.4/users-plugin/users_plugin_mail_groups.ycp 2009-01-04 09:56:35.000000000 +0100
@@ -169,12 +169,11 @@
string what = config["what"]:"user";
string action = data["what"]:"";
- if( data["suseMailCommand"]:"" != "" ) {
- sharedfolder = true;
- }
if( data["suseDeliveryToMember"]:"no" == "yes" ) {
deliverytomember = true;
- sharedfolder = false;
+ }
+ if( data["suseDeliveryToFolder"]:"no" == "yes" ) {
+ sharedfolder = true;
}
map tmp_data = $[];
@@ -385,13 +384,12 @@
}
// We put it everytime into the LDAP, and the ldap filter control if it is visible
data["suseMailCommand"] = "\"|/usr/bin/formail -I \\\"From \\\" |/usr/lib/cyrus/bin/deliver -r "+data["cn"]:""+" -a cyrus -m "+data["cn"]:""+"\"";
-// if( (boolean) UI::QueryWidget (`id (`sharedfolder), `Value)) {
-// data["suseMailCommand"] = "\"|/usr/bin/formail -I \\\"From \\\" |/usr/lib/cyrus/bin/deliver -r "+data["cn"]:""+" -a cyrus -m "+data["cn"]:""+"\"";
-// } else {
-// if( data["suseMailCommand"]:"" != "" ) {
-// data = remove (data, "suseMailCommand");
-// }
-// }
+ if( (boolean) UI::QueryWidget (`id (`sharedfolder), `Value)) {
+ data["suseDeliveryToFolder"] = "yes";
+ } else {
+ data["suseDeliveryToFolder"] = "no";
+ }
+
string err = UsersPluginMail::Check ( config, (map) union (data, tmp_data));
if (err != "")
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-mail-2.17.3/users-plugin/users_plugin_mail.ycp new/yast2-mail-2.17.4/users-plugin/users_plugin_mail.ycp
--- old/yast2-mail-2.17.3/users-plugin/users_plugin_mail.ycp 2008-12-11 15:30:16.000000000 +0100
+++ new/yast2-mail-2.17.4/users-plugin/users_plugin_mail.ycp 2008-12-12 15:28:00.000000000 +0100
@@ -253,7 +253,7 @@
imap = `Frame ( _("IMAP Quota"),
`VBox(
`HBox(
- `CheckBox( `id(`enableImpapquota ), `opt(`notify), _("Enable IMAP Quota"), intimapquota >= 0),
+ `CheckBox( `id(`enableImapquota ), `opt(`notify), _("Enable IMAP Quota"), intimapquota >= 0),
`HSpacing(5),
`IntField (`id(`imapquota), _("in kByte"), 1, 10000000, intimapquota >= 0 ? intimapquota : 10000)
),
@@ -291,7 +291,7 @@
UI::ChangeWidget (`id (`deleteEmail), `Enabled, UI::QueryWidget (`id (`table), `CurrentItem) != nil);
UI::ChangeWidget (`id (`editEmail), `Enabled, UI::QueryWidget (`id (`table), `CurrentItem) != nil);
if(data["localdeliverytype"]:"local" == "cyrus" ) {
- UI::ChangeWidget(`id(`imapquota), `Enabled, ((boolean) UI::QueryWidget(`id(`enableImpapquota), `Value)));
+ UI::ChangeWidget(`id(`imapquota), `Enabled, ((boolean) UI::QueryWidget(`id(`enableImapquota), `Value)));
}
ret = UI::UserInput();
@@ -375,7 +375,7 @@
}
if(data["localdeliverytype"]:"local" == "cyrus" ) {
- if ((boolean) UI::QueryWidget(`id(`enableImpapquota), `Value))
+ if ((boolean) UI::QueryWidget(`id(`enableImapquota), `Value))
{
data["suseImapQuota"] = (integer) UI::QueryWidget(`id(`imapquota), `Value);
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-mail-2.17.3/VERSION new/yast2-mail-2.17.4/VERSION
--- old/yast2-mail-2.17.3/VERSION 2008-12-12 06:38:43.000000000 +0100
+++ new/yast2-mail-2.17.4/VERSION 2009-01-04 10:08:38.000000000 +0100
@@ -1 +1 @@
-2.17.3
+2.17.4
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org