From 8b23f8271380f676c8e0e44c7cb8af1146a0e534 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Wed, 08 Jul 2015 09:28:26 -0400
Subject: [PATCH] moved dovecot-lmtpd from install/update to server-plugin to prevented dovecot-errors when using dovecot without dovecot-lmtpd

---
 install/lib/installer_base.lib.php                     |    8 ++++++++
 install/tpl/fedora_dovecot2.conf.master                |    2 +-
 install/dist/lib/fedora.lib.php                        |    8 ++++++++
 install/tpl/debian_dovecot2.conf.master                |    4 ++--
 install/tpl/opensuse_dovecot2.conf.master              |    4 ++--
 install/dist/lib/gentoo.lib.php                        |    8 ++++++++
 install/dist/lib/opensuse.lib.php                      |    8 ++++++++
 install/tpl/debian6_dovecot2.conf.master               |    4 ++--
 install/dist/lib/debian60.lib.php                      |    8 +++++++-
 server/plugins-available/postfix_server_plugin.inc.php |    5 +++++
 10 files changed, 51 insertions(+), 8 deletions(-)

diff --git a/install/dist/lib/debian60.lib.php b/install/dist/lib/debian60.lib.php
index 8c7f1ba..8f14f9b 100644
--- a/install/dist/lib/debian60.lib.php
+++ b/install/dist/lib/debian60.lib.php
@@ -35,6 +35,8 @@
 		global $conf;
 		
 		$virtual_transport = 'dovecot';
+
+		$configure_lmtp = false;
 		
 		// check if virtual_transport must be changed
 		if ($this->is_update) {
@@ -44,6 +46,7 @@
 			
 			if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') {
 				$virtual_transport = 'lmtp:unix:private/dovecot-lmtp';
+				$configure_lmtp = true;
 			}
 		}
 
@@ -114,7 +117,10 @@
 			}
 		}
 		
-		
+		//* dovecot-lmtpd
+		if($configure_lmtp) {
+			replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', 'protocols = imap pop3 lmtp', 1, 0);
+		}
 
 		//* dovecot-sql.conf
 		$configfile = 'dovecot-sql.conf';
diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php
index 5420925..cbc39de 100644
--- a/install/dist/lib/fedora.lib.php
+++ b/install/dist/lib/fedora.lib.php
@@ -334,6 +334,8 @@
 		global $conf;
 
 		$virtual_transport = 'dovecot';
+
+		$configure_lmtp = false;
 		
 		// check if virtual_transport must be changed
 		if ($this->is_update) {
@@ -343,6 +345,7 @@
 			
 			if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') {
 				$virtual_transport = 'lmtp:unix:private/dovecot-lmtp';
+				$configure_lmtp = true;
 			}
 		}
 
@@ -415,6 +418,11 @@
 			}
 		}
 
+		//* dovecot-lmtpd
+		if($configure_lmtp) {
+			replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', 'protocols = imap pop3 lmtp', 1, 0);
+		}
+
 		//* dovecot-sql.conf
 		$configfile = 'dovecot-sql.conf';
 		if(is_file("$config_dir/$configfile")){
diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php
index 6615dac..4e04e42 100644
--- a/install/dist/lib/gentoo.lib.php
+++ b/install/dist/lib/gentoo.lib.php
@@ -255,6 +255,8 @@
 		global $conf;
 
 		$virtual_transport = 'dovecot';
+
+		$configure_lmtp = false;
 		
 		// check if virtual_transport must be changed
 		if ($this->is_update) {
@@ -264,6 +266,7 @@
 			
 			if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') {
 				$virtual_transport = 'lmtp:unix:private/dovecot-lmtp';
+				$configure_lmtp = true;
 			}
 		}
 
@@ -312,6 +315,11 @@
 		$content = $this->get_template_file('dovecot.conf', true);
 		$this->write_config_file($configfile, $content);
 
+		//* dovecot-lmtpd
+		if($configure_lmtp) {
+			replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', 'protocols = imap pop3 lmtp', 1, 0);
+		}
+
 		//* dovecot-sql.conf
 		$configfile = $config_dir.'/dovecot-sql.conf';
 		$content = $this->get_template_file('debian_dovecot-sql.conf', true, true);
diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php
index 59124a5..06dc0e4 100644
--- a/install/dist/lib/opensuse.lib.php
+++ b/install/dist/lib/opensuse.lib.php
@@ -342,6 +342,8 @@
 		global $conf;
 
 		$virtual_transport = 'dovecot';
+
+		$configure_lmtp = false;
 		
 		// check if virtual_transport must be changed
 		if ($this->is_update) {
@@ -351,6 +353,7 @@
 			
 			if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') {
 				$virtual_transport = 'lmtp:unix:private/dovecot-lmtp';
+				$configure_lmtp = true;
 			}
 		}
 
@@ -419,6 +422,11 @@
 			}
 		}
 
+		//* dovecot-lmtpd
+		if($configure_lmtp) {
+			replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', 'protocols = imap pop3 lmtp', 1, 0);
+		}
+
 		//* dovecot-sql.conf
 		$configfile = 'dovecot-sql.conf';
 		if(is_file("$config_dir/$configfile")){
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 49545c8..2ddea5e 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -999,6 +999,8 @@
 		global $conf;
 		
 		$virtual_transport = 'dovecot';
+
+		$configure_lmtp = false;
 		
 		// check if virtual_transport must be changed
 		if ($this->is_update) {
@@ -1008,6 +1010,7 @@
 			
 			if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') {
 				$virtual_transport = 'lmtp:unix:private/dovecot-lmtp';
+				$configure_lmtp = true;
 			}
 		}
 
@@ -1078,6 +1081,11 @@
 			}
 		}
 
+		//* dovecot-lmtpd
+		if($configure_lmtp) {
+			replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', 'protocols = imap pop3 lmtp', 1, 0);
+		}
+
 		//* dovecot-sql.conf
 		$configfile = 'dovecot-sql.conf';
 		if(is_file($config_dir.'/'.$configfile)) {
diff --git a/install/tpl/debian6_dovecot2.conf.master b/install/tpl/debian6_dovecot2.conf.master
index ee77f4e..82c7e47 100644
--- a/install/tpl/debian6_dovecot2.conf.master
+++ b/install/tpl/debian6_dovecot2.conf.master
@@ -1,5 +1,5 @@
 listen = *,[::]
-protocols = imap pop3 lmtp
+protocols = imap pop3
 auth_mechanisms = plain login
 disable_plaintext_auth = no
 log_timestamp = "%Y-%m-%d %H:%M:%S "
@@ -61,4 +61,4 @@
 protocol lmtp {
   postmaster_address = webmaster@localhost
   mail_plugins = quota sieve
-}
\ No newline at end of file
+}
diff --git a/install/tpl/debian_dovecot2.conf.master b/install/tpl/debian_dovecot2.conf.master
index 39cf60f..a753433 100644
--- a/install/tpl/debian_dovecot2.conf.master
+++ b/install/tpl/debian_dovecot2.conf.master
@@ -1,5 +1,5 @@
 listen = *,[::]
-protocols = imap pop3 lmtp
+protocols = imap pop3
 auth_mechanisms = plain login
 disable_plaintext_auth = no
 log_timestamp = "%Y-%m-%d %H:%M:%S "
@@ -62,4 +62,4 @@
 protocol lmtp {
   postmaster_address = webmaster@localhost
   mail_plugins = quota sieve
-}
\ No newline at end of file
+}
diff --git a/install/tpl/fedora_dovecot2.conf.master b/install/tpl/fedora_dovecot2.conf.master
index 9fca319..a527676 100644
--- a/install/tpl/fedora_dovecot2.conf.master
+++ b/install/tpl/fedora_dovecot2.conf.master
@@ -1,5 +1,5 @@
 listen = *,[::]
-protocols = imap pop3 lmtp
+protocols = imap pop3
 auth_mechanisms = plain login
 disable_plaintext_auth = no
 log_timestamp = "%Y-%m-%d %H:%M:%S "
diff --git a/install/tpl/opensuse_dovecot2.conf.master b/install/tpl/opensuse_dovecot2.conf.master
index 1b9d9dc..8deb305 100644
--- a/install/tpl/opensuse_dovecot2.conf.master
+++ b/install/tpl/opensuse_dovecot2.conf.master
@@ -1,5 +1,5 @@
 listen = *,[::]
-protocols = imap pop3 lmtp
+protocols = imap pop3
 auth_mechanisms = plain login
 disable_plaintext_auth = no
 log_timestamp = "%Y-%m-%d %H:%M:%S "
@@ -59,4 +59,4 @@
 protocol lmtp {
   postmaster_address = webmaster@localhost
   mail_plugins = quota sieve
-}
\ No newline at end of file
+}
diff --git a/server/plugins-available/postfix_server_plugin.inc.php b/server/plugins-available/postfix_server_plugin.inc.php
index f6a55f5..15accbf 100644
--- a/server/plugins-available/postfix_server_plugin.inc.php
+++ b/server/plugins-available/postfix_server_plugin.inc.php
@@ -166,6 +166,8 @@
 			if($app->system->is_installed('dovecot')) {
 				exec("postconf -e 'virtual_transport = lmtp:unix:private/dovecot-lmtp'");
 				exec('postfix reload');
+				$app->system->replaceLine("/etc/dovecot/dovecot.conf", "protocols = imap pop3", "protocols = imap pop3 lmtp");
+				exec($conf['init_scripts'] . '/' . 'dovecot restart');
 			}
 		}
 		else {
@@ -173,8 +175,11 @@
 			if($app->system->is_installed('dovecot')) {
 				exec("postconf -e 'virtual_transport = dovecot'");
 				exec('postfix reload');
+				$app->system->replaceLine("/etc/dovecot/dovecot.conf", "protocols = imap pop3 lmtp", "protocols = imap pop3");
+				exec($conf['init_scripts'] . '/' . 'dovecot restart');
 			}
 		}
+print_r($mail_config);
 
 		exec("postconf -e 'mailbox_size_limit = ".intval($mail_config['mailbox_size_limit']*1024*1024)."'");
 		exec("postconf -e 'message_size_limit = ".intval($mail_config['message_size_limit']*1024*1024)."'");

--
Gitblit v1.9.1