From 6cab894bc56928c15a67b67f93be6c856aac1c3a Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Thu, 26 Jan 2012 09:10:36 -0500
Subject: [PATCH] - Added support for dovecot 2

---
 install/lib/installer_base.lib.php        |   17 +++
 install/tpl/fedora_dovecot2.conf.master   |   42 ++++++++++
 install/dist/lib/fedora.lib.php           |   17 +++
 install/tpl/debian_dovecot2.conf.master   |   42 ++++++++++
 install/tpl/opensuse_dovecot2.conf.master |   42 ++++++++++
 install/dist/lib/opensuse.lib.php         |   17 +++
 install/tpl/debian6_dovecot2.conf.master  |   42 ++++++++++
 install/dist/lib/debian60.lib.php         |   15 +++
 8 files changed, 227 insertions(+), 7 deletions(-)

diff --git a/install/dist/lib/debian60.lib.php b/install/dist/lib/debian60.lib.php
index 4512f40..88ba5d2 100644
--- a/install/dist/lib/debian60.lib.php
+++ b/install/dist/lib/debian60.lib.php
@@ -76,7 +76,20 @@
 		if(is_file($config_dir.'/'.$configfile)){
 			copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~');
 		}
-		copy('tpl/debian6_dovecot.conf.master',$config_dir.'/'.$configfile);
+		
+		//* Get the dovecot version
+		exec('dovecot --version',$tmp);
+		$parts = explode('.',trim($tmp[0]));
+		$dovecot_version = $parts[0];
+		unset($tmp);
+		unset($parts);
+		
+		//* Copy dovecot configuration file
+		if($dovecot_version == 2) {
+			copy('tpl/debian6_dovecot2.conf.master',$config_dir.'/'.$configfile);
+		} else {
+			copy('tpl/debian6_dovecot.conf.master',$config_dir.'/'.$configfile);
+		}
 		
 		//* dovecot-sql.conf
 		$configfile = 'dovecot-sql.conf';
diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php
index a3da18a..3b0d6cd 100644
--- a/install/dist/lib/fedora.lib.php
+++ b/install/dist/lib/fedora.lib.php
@@ -308,12 +308,25 @@
 			caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 		}
 		
-		//* copy dovecot.conf
+		//* backup dovecot.conf
 		$configfile = 'dovecot.conf';
 		if(is_file("$config_dir/$configfile")){
             copy("$config_dir/$configfile", "$config_dir/$configfile~");
         }
-		copy('tpl/fedora_dovecot.conf.master',"$config_dir/$configfile");
+		
+		//* Get the dovecot version
+		exec('dovecot --version',$tmp);
+		$parts = explode('.',trim($tmp[0]));
+		$dovecot_version = $parts[0];
+		unset($tmp);
+		unset($parts);
+		
+		//* Copy dovecot configuration file
+		if($dovecot_version == 2) {
+			copy('tpl/fedora_dovecot2.conf.master',$config_dir.'/'.$configfile);
+		} else {
+			copy('tpl/fedora_dovecot.conf.master',$config_dir.'/'.$configfile);
+		}
 		
 		//* dovecot-sql.conf
 		$configfile = 'dovecot-sql.conf';
diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php
index 7b51cac..db435ee 100644
--- a/install/dist/lib/opensuse.lib.php
+++ b/install/dist/lib/opensuse.lib.php
@@ -349,12 +349,25 @@
 			caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 		}
 		
-		//* copy dovecot.conf
+		//* backup dovecot.conf
 		$configfile = 'dovecot.conf';
 		if(is_file("$config_dir/$configfile")){
             copy("$config_dir/$configfile", "$config_dir/$configfile~");
         }
-		copy('tpl/opensuse_dovecot.conf.master',"$config_dir/$configfile");
+		
+		//* Get the dovecot version
+		exec('dovecot --version',$tmp);
+		$parts = explode('.',trim($tmp[0]));
+		$dovecot_version = $parts[0];
+		unset($tmp);
+		unset($parts);
+		
+		//* Copy dovecot configuration file
+		if($dovecot_version == 2) {
+			copy('tpl/opensuse_dovecot2.conf.master',$config_dir.'/'.$configfile);
+		} else {
+			copy('tpl/opensuse_dovecot.conf.master',$config_dir.'/'.$configfile);
+		}
 		
 		//* dovecot-sql.conf
 		$configfile = 'dovecot-sql.conf';
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 92c6ad0..0cc24d1 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -880,12 +880,25 @@
 			caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 		}
 
-		//* copy dovecot.conf
+		//* backup dovecot.conf
 		$configfile = 'dovecot.conf';
 		if(is_file($config_dir.'/'.$configfile)) {
 			copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~');
 		}
-		copy('tpl/debian_dovecot.conf.master',$config_dir.'/'.$configfile);
+		
+		//* Get the dovecot version
+		exec('dovecot --version',$tmp);
+		$parts = explode('.',trim($tmp[0]));
+		$dovecot_version = $parts[0];
+		unset($tmp);
+		unset($parts);
+		
+		//* Copy dovecot configuration file
+		if($dovecot_version == 2) {
+			copy('tpl/debian_dovecot2.conf.master',$config_dir.'/'.$configfile);
+		} else {
+			copy('tpl/debian_dovecot.conf.master',$config_dir.'/'.$configfile);
+		}
 
 		//* dovecot-sql.conf
 		$configfile = 'dovecot-sql.conf';
diff --git a/install/tpl/debian6_dovecot2.conf.master b/install/tpl/debian6_dovecot2.conf.master
new file mode 100644
index 0000000..bf37bd5
--- /dev/null
+++ b/install/tpl/debian6_dovecot2.conf.master
@@ -0,0 +1,42 @@
+protocols = imap pop3
+auth_mechanisms = plain login
+disable_plaintext_auth = no
+log_timestamp = "%Y-%m-%d %H:%M:%S "
+mail_privileged_group = vmail
+ssl_cert = </etc/postfix/smtpd.cert
+ssl_key = </etc/postfix/smtpd.key
+passdb {
+  args = /etc/dovecot/dovecot-sql.conf
+  driver = sql
+}
+userdb {
+  args = /etc/dovecot/dovecot-sql.conf
+  driver = sql
+}
+plugin {
+  quota = dict:user::file:/var/vmail/%d/%n/.quotausage
+  sieve=/var/vmail/%d/%n/.sieve
+}
+service auth {
+  unix_listener /var/spool/postfix/private/auth {
+    group = postfix
+    mode = 0660
+    user = postfix
+  }
+  unix_listener auth-userdb {
+    group = vmail
+    mode = 0600
+    user = vmail
+  }
+  user = root
+}
+protocol imap {
+  mail_plugins = quota imap_quota
+}
+protocol pop3 {
+  pop3_uidl_format = %08Xu%08Xv
+  mail_plugins = quota
+}
+protocol lda {
+  mail_plugins = sieve quota
+}
\ No newline at end of file
diff --git a/install/tpl/debian_dovecot2.conf.master b/install/tpl/debian_dovecot2.conf.master
new file mode 100644
index 0000000..bf37bd5
--- /dev/null
+++ b/install/tpl/debian_dovecot2.conf.master
@@ -0,0 +1,42 @@
+protocols = imap pop3
+auth_mechanisms = plain login
+disable_plaintext_auth = no
+log_timestamp = "%Y-%m-%d %H:%M:%S "
+mail_privileged_group = vmail
+ssl_cert = </etc/postfix/smtpd.cert
+ssl_key = </etc/postfix/smtpd.key
+passdb {
+  args = /etc/dovecot/dovecot-sql.conf
+  driver = sql
+}
+userdb {
+  args = /etc/dovecot/dovecot-sql.conf
+  driver = sql
+}
+plugin {
+  quota = dict:user::file:/var/vmail/%d/%n/.quotausage
+  sieve=/var/vmail/%d/%n/.sieve
+}
+service auth {
+  unix_listener /var/spool/postfix/private/auth {
+    group = postfix
+    mode = 0660
+    user = postfix
+  }
+  unix_listener auth-userdb {
+    group = vmail
+    mode = 0600
+    user = vmail
+  }
+  user = root
+}
+protocol imap {
+  mail_plugins = quota imap_quota
+}
+protocol pop3 {
+  pop3_uidl_format = %08Xu%08Xv
+  mail_plugins = quota
+}
+protocol lda {
+  mail_plugins = sieve quota
+}
\ No newline at end of file
diff --git a/install/tpl/fedora_dovecot2.conf.master b/install/tpl/fedora_dovecot2.conf.master
new file mode 100644
index 0000000..b45ef3d
--- /dev/null
+++ b/install/tpl/fedora_dovecot2.conf.master
@@ -0,0 +1,42 @@
+protocols = imap pop3
+auth_mechanisms = plain login
+disable_plaintext_auth = no
+log_timestamp = "%Y-%m-%d %H:%M:%S "
+mail_privileged_group = vmail
+ssl_cert = </etc/postfix/smtpd.cert
+ssl_key = </etc/postfix/smtpd.key
+passdb {
+  args = /etc/dovecot-sql.conf
+  driver = sql
+}
+userdb {
+  args = /etc/dovecot-sql.conf
+  driver = sql
+}
+plugin {
+  quota = dict:user::file:/var/vmail/%d/%n/.quotausage
+  sieve=/var/vmail/%d/%n/.sieve
+}
+service auth {
+  unix_listener /var/spool/postfix/private/auth {
+    group = postfix
+    mode = 0660
+    user = postfix
+  }
+  unix_listener auth-userdb {
+    group = vmail
+    mode = 0600
+    user = vmail
+  }
+  user = root
+}
+protocol imap {
+  mail_plugins = quota imap_quota
+}
+protocol pop3 {
+  pop3_uidl_format = %08Xu%08Xv
+  mail_plugins = quota
+}
+protocol lda {
+  mail_plugins = sieve quota
+}
\ No newline at end of file
diff --git a/install/tpl/opensuse_dovecot2.conf.master b/install/tpl/opensuse_dovecot2.conf.master
new file mode 100644
index 0000000..bf37bd5
--- /dev/null
+++ b/install/tpl/opensuse_dovecot2.conf.master
@@ -0,0 +1,42 @@
+protocols = imap pop3
+auth_mechanisms = plain login
+disable_plaintext_auth = no
+log_timestamp = "%Y-%m-%d %H:%M:%S "
+mail_privileged_group = vmail
+ssl_cert = </etc/postfix/smtpd.cert
+ssl_key = </etc/postfix/smtpd.key
+passdb {
+  args = /etc/dovecot/dovecot-sql.conf
+  driver = sql
+}
+userdb {
+  args = /etc/dovecot/dovecot-sql.conf
+  driver = sql
+}
+plugin {
+  quota = dict:user::file:/var/vmail/%d/%n/.quotausage
+  sieve=/var/vmail/%d/%n/.sieve
+}
+service auth {
+  unix_listener /var/spool/postfix/private/auth {
+    group = postfix
+    mode = 0660
+    user = postfix
+  }
+  unix_listener auth-userdb {
+    group = vmail
+    mode = 0600
+    user = vmail
+  }
+  user = root
+}
+protocol imap {
+  mail_plugins = quota imap_quota
+}
+protocol pop3 {
+  pop3_uidl_format = %08Xu%08Xv
+  mail_plugins = quota
+}
+protocol lda {
+  mail_plugins = sieve quota
+}
\ No newline at end of file

--
Gitblit v1.9.1