From 7c4633e4d74d50e1b79b6821ff099f25cb38fab1 Mon Sep 17 00:00:00 2001 From: trading-for-ben Date: Sun, 22 Feb 2026 16:43:52 +0000 Subject: [PATCH] Skip postfix installation when msmtp is enabled (avoid MTA conflict) When msmtp is enabled, base bundle will: - Not install postfix - Explicitly remove postfix if already installed Servers without msmtp continue using postfix as default MTA. --- bundles/base/metadata.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/bundles/base/metadata.py b/bundles/base/metadata.py index acc2d38..e5fe8ab 100644 --- a/bundles/base/metadata.py +++ b/bundles/base/metadata.py @@ -2,7 +2,7 @@ 'apt/packages', ) def install_apt_packages(metadata): - pkgs_install = ( + pkgs_install = [ 'augeas-tools', 'bash', 'bind9-dnsutils', @@ -18,7 +18,6 @@ def install_apt_packages(metadata): 'net-tools', 'nfs-common', 'openssh-client', - 'postfix', 'psmisc', 'python-is-python3', 'rsync', @@ -27,7 +26,12 @@ def install_apt_packages(metadata): 'vim', 'wget', 'zsh', - ) + ] + + # Only install postfix if msmtp is not enabled (avoid MTA conflict) + if not metadata.get('msmtp', {}).get('enabled', False): + pkgs_install.append('postfix') + result = { 'apt': { 'packages': {} @@ -37,6 +41,13 @@ def install_apt_packages(metadata): result['apt']['packages'][package_name] = { 'installed': True } + + # Explicitly remove postfix when msmtp is enabled + if metadata.get('msmtp', {}).get('enabled', False): + result['apt']['packages']['postfix'] = { + 'installed': False + } + return result