Bug#1109091: unblock: postfix/3.10.3-2
Package: release.debian.org
Severity: normal
X-Debbugs-Cc: postfix@packages.debian.org
Control: affects -1 + src:postfix
User: release.debian.org@packages.debian.org
Usertags: unblock
Please unblock package postfix
[ Reason ]
There's a new upstream stable/bugfix release, fixing two issues
with TLS-enabled SMTP client, introduced in 3.10 version.
Also, this upload includes pt debconf translation update.
[ Tests ]
I'm using the new postfix release in production now, with no issues.
Upstream is very cautious about breaking something, so it is to be
expected.
[ Risks ]
There should be no risk in letting postfix in, due to excellent
quality record of this software. If a problem occurs still, which
can happen obviously, we'll deal with it promptly.
[ Checklist ]
[x] all changes are documented in the d/changelog
[x] I reviewed all changes and I approve them
[x] attach debdiff against the package in testing
[ Other info ]
I'd rather keep postfix upstream bugfix series in debian stable
in the future.
The bulk of this update is the po translation update.
Debdiff is below.
Thanks,
/mjt
unblock postfix/3.10.3-2
diff -Nru postfix-3.10.2/HISTORY postfix-3.10.3/HISTORY
--- postfix-3.10.2/HISTORY 2025-04-22 15:06:24.000000000 +0300
+++ postfix-3.10.3/HISTORY 2025-07-10 00:56:05.000000000 +0300
@@ -29029,3 +29029,28 @@
add an extra newline character before appending the new
setting, causing information to become garbled. Fix by
Michael Tokarev. File: postconf/postconf_edit.c.
+
+20250619
+
+ Bugfix (defect introduced: Postfix-3.10, date 20250117):
+ include the current TLS security level in the SMTP connection
+ cache lookup key for lookups by next-hop destination. The
+ idea is that to deliver a message without "TLS-Required:
+ no" header, the Postfix SMTP client must not reuse a
+ connection that was created during a burst of deliveries
+ of messages with "TLS-Required: no" to the same destination.
+
+ Including the TLS security level in the SMTP connection
+ cache lookup key will also prevent false connection reuse
+ when any future feature is added that overrides the TLS
+ security level based on message content or envelope metadata.
+ Files: smtp/smtp.h.
+
+ Likewise, include the current TLS security level in the TLS
+ client serverid field. File: smtp/smtp_proto.c.
+
+ Bugfix (defect introduced: Postfix-3.10, date 20250117): the
+ Postfix SMTP client attempted to look up TLSA records even
+ with "TLS-Required: no". This could result in unnecessary
+ failures. Fix by Viktor Dukhovni & Wietse. Files: smtp/smtp.h,
+ smtp/smtp_policy.c, smtp/smtp_connect.c.
diff -Nru postfix-3.10.2/debian/changelog postfix-3.10.3/debian/changelog
--- postfix-3.10.2/debian/changelog 2025-04-23 11:42:50.000000000 +0300
+++ postfix-3.10.3/debian/changelog 2025-07-11 00:50:43.000000000 +0300
@@ -1,3 +1,32 @@
+postfix (3.10.3-2) unstable; urgency=medium
+
+ * d/changelog: fix wrongly formatted previous changelog entry (double email)
+ * update Portuguese translation (Closes: #1107436)
+
+ -- Michael Tokarev <mjt@tls.msk.ru> Fri, 11 Jul 2025 00:50:43 +0300
+
+postfix (3.10.3-1) unstable; urgency=medium
+
+ [ Michael Tokarev ]
+ * new upstream stable/bugfix release. From the release announcement:
+ This release fixes defects that were introduced in Postfix 3.10.
+ The defects exist only with the default configuration
+ "tls_required_enable = yes".
+ * Bugfix (defect introduced: Postfix-3.10, date 20250117): include
+ the current TLS security level in the SMTP connection cache
+ lookup key for lookups by next-hop destination, to avoid reusing
+ the same SMTP connection when sending messages with and without
+ a "TLS-Required: no" header. Likewise, include the current TLS
+ security level in the TLS session lookup key, to avoid reusing
+ the same TLS session info when sending messages with and without
+ a "TLS-Required: no" header.
+ * Bugfix (defect introduced: Postfix-3.10, date 20250117): the
+ Postfix SMTP client attempted to look up TLSA records even with
+ "TLS-Required: no". This could result in unnecessary failures.
+ Fix by Viktor Dukhovni & Wietse.
+
+ -- Michael Tokarev <mjt@tls.msk.ru> Fri, 11 Jul 2025 00:26:40 +0300
+
postfix (3.10.2-1) unstable; urgency=medium
[ Michael Tokarev ]
diff -Nru postfix-3.10.2/debian/po/pt.po postfix-3.10.3/debian/po/pt.po
--- postfix-3.10.2/debian/po/pt.po 2024-12-20 13:12:45.000000000 +0300
+++ postfix-3.10.3/debian/po/pt.po 2025-07-11 00:50:43.000000000 +0300
@@ -1,26 +1,30 @@
-# Portuguese translation for postfix's debconf messages
-# Copyright (C) 2006
+# Translation for postfix debconf messages to European Portuguese
+# Copyright (C) 2006 the postfix copyright holder
# This file is distributed under the same license as the postfix package.
-# Miguel Figueiredo <elmig@debianpt.org>, 2006-2016.
#
+#
+# Miguel Figueiredo <elmig@debianpt.org>, 2006-2016.
+# Américo Monteiro <a_monteiro@gmx.com>, 2025.
msgid ""
msgstr ""
-"Project-Id-Version: postfix\n"
+"Project-Id-Version: postfix 3.10.2-1\n"
"Report-Msgid-Bugs-To: postfix@packages.debian.org\n"
"POT-Creation-Date: 2024-12-13 00:06+0300\n"
-"PO-Revision-Date: 2017-01-04 22:46+0000\n"
-"Last-Translator: Miguel Figueiredo <elmig@debianpt.org>\n"
-"Language-Team: Portuguese <traduz@debianpt.org>\n"
+"PO-Revision-Date: 2025-06-07 17:15+0100\n"
+"Last-Translator: Américo Monteiro <a_monteiro@gmx.com>\n"
+"Language-Team: Portuguese <>\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Lokalize 22.12.3\n"
#. Type: boolean
#. Description
#: ../templates:1001
msgid "Ignore incorrect hostname entry?"
-msgstr "Ignorar a entrada com o hostname errada?"
+msgstr "Ignorar a entrada com o nome de máquina errada?"
#. Type: boolean
#. Description
@@ -41,16 +45,15 @@
"separated by full stops.'"
msgstr ""
"A RFC 1035 diz que 'cada componente tem de iniciar com um alfanumérico, "
-"terminar com um alfanumérico e conter apenas alfanuméricos e hifens. Os "
+"terminar com um alfanumérico e conter apenas alfanuméricos e hífens. Os "
"componentes têm de ser separados por pontos finais.'"
#. Type: boolean
#. Description
#: ../templates:1001
-#, fuzzy
#| msgid "Please choose whether you want to keep that choice anyway."
msgid "Please check and confirm if you want to keep your entry."
-msgstr "Por favor escolha se deseja manter, na mesma, essa escolha?"
+msgstr "Por favor verifique e confirme se deseja manter o que inseriu."
#. Type: select
#. Choices
@@ -62,7 +65,7 @@
#. this will break the choices shown to users
#: ../templates:2001
msgid "No configuration"
-msgstr "Sem configuração"
+msgstr "Nenhuma configuração"
#. Type: select
#. Choices
@@ -115,10 +118,9 @@
#. Type: select
#. Description
#: ../templates:2002
-#, fuzzy
#| msgid "General type of mail configuration:"
msgid "General mail configuration type:"
-msgstr "Tipo geral de configuração de mail:"
+msgstr "Tipo de configuração de mail geral:"
#. Type: select
#. Description
@@ -126,13 +128,12 @@
msgid ""
"Please select the mail server configuration type that best meets your needs."
msgstr ""
-"Por favor escolha o tipo de configuração do servidor de mail que melhor se "
-"adequa às suas necessidades."
+"Por favor escolha o tipo de configuração do servidor de mail melhor "
+"apropriado às suas necessidades."
#. Type: select
#. Description
#: ../templates:2002
-#, fuzzy
#| msgid ""
#| " No configuration:\n"
#| " Should be chosen to leave the current configuration unchanged.\n"
@@ -162,7 +163,7 @@
" The only delivered mail is the mail for local users. There is no\n"
" network."
msgstr ""
-" Sem configuração:\n"
+" Nenhuma configuração:\n"
" Deve ser escolhido para deixar a configuração actual inalterada.\n"
" Site Internet:\n"
" O mail é enviado e recebido directamente utilizando SMTP.\n"
@@ -170,10 +171,11 @@
" O mail é recebido directamente utilizando SMTP ou correndo um utilitário\n"
" como o fetchmail. O mail que sai é enviado utilizando um smarthost.\n"
" Sistema satélite\n"
-" Todo o mail é enviado para outra máquina, chamada \"smarthost\".\n"
-" Apenas entrega local:\n"
-" O único mail entregue é o mail para os utilizadores locais. Não existe "
-"rede."
+" Todo o mail é enviado para outra máquina, chamada \"smarthost\",\n"
+" para entrega.\n"
+" Apenas local:\n"
+" O único mail entregue é o mail para os utilizadores locais. Não existe\n"
+" nenhuma rede."
#. Type: error
#. Description
@@ -191,12 +193,12 @@
" - Editing /etc/postfix/main.cf to your liking;\n"
" - Running 'service postfix start'."
msgstr ""
-"Você escolheu 'Sem Configuração'. O Postfix não será configurado e, por "
-"omissão, não será iniciado. Por favor, posteriormente corra 'dpkg-"
+"Você escolheu 'Nenhuma Configuração'. O Postfix não será configurado e "
+"por predefinição não será iniciado. Por favor, posteriormente corra 'dpkg-"
"reconfigure postfix', ou configure-o você mesmo de uma das seguintes "
"formas:\n"
-" - Editar /etc/postfix/main.cf ao seu gosto;\n"
-" - Correr 'service postfix start'."
+" - Editando o /etc/postfix/main.cf a seu gosto;\n"
+" - Correndo 'service postfix start'."
#. Type: string
#. Description
@@ -207,7 +209,6 @@
#. Type: string
#. Description
#: ../templates:4001
-#, fuzzy
#| msgid ""
#| "The \"mail name\" is the domain name used to \"qualify\" _ALL_ mail "
#| "addresses without a domain name. This includes mail to and from <root>: "
@@ -219,7 +220,7 @@
"make your machine send out mail from root@example.org unless root@example."
"org has told you to."
msgstr ""
-"O \"nome de mail\" é o nome do domínio utilizado para \"qualificar\" _TODOS_ "
+"O 'nome de mail' é o nome do domínio utilizado para 'qualificar' _TODOS_ "
"os endereços de mail sem um nome de domínio. Isto inclui mail de e para "
"<root>: por favor não faça a sua máquina enviar mail de root@exemplo.org a "
"menos que root@exemplo.org lhe tenha dito para o fazer."
@@ -232,7 +233,7 @@
"fully qualified domain name (FQDN)."
msgstr ""
"Este nome será também utilizado por outros programas. Deve ser o único, nome "
-"de domínio completo (FQDN)."
+"de domínio totalmente qualificado (FQDN)."
#. Type: string
#. Description
@@ -250,7 +251,7 @@
#. Description
#: ../templates:5001
msgid "Other destinations to accept mail for (blank for none):"
-msgstr "Outros destinos para os quais aceitar mail? (vazio para nenhum):"
+msgstr "Outros destinos para os quais aceitar mail (vazio para nenhum):"
#. Type: string
#. Description
@@ -263,13 +264,13 @@
"Por favor forneça uma lista de domínios separados por vírgulas para os quais "
"esta máquina deve considerar-se ela própria como o destino final. Se é um "
"gateway de um domínio de mail, você provavelmente quer incluir o domínio de "
-"topo."
+"nível de topo."
#. Type: string
#. Description
#: ../templates:6001
msgid "SMTP relay host (blank for none):"
-msgstr "Host de relay SMTP? (vazio para nenhum):"
+msgstr "Máquina de relay SMTP? (vazio para nenhum):"
#. Type: string
#. Description
@@ -279,20 +280,19 @@
"the form [destination] to turn off MX lookups. Leave this blank for no relay "
"host."
msgstr ""
-"Especifique um domínio, máquina, máquina:port, [endereço] ou [endereço]:"
-"port. Utilize a forma [destino] para desligar as verificações de MX. Deixe "
+"Especifique um domínio, máquina, máquina:porto, [endereço] ou [endereço]:"
+"porto. Utilize a forma [destino] para desligar as verificações de MX. Deixe "
"isto em branco para nenhuma máquina de relay."
#. Type: string
#. Description
#: ../templates:6001
msgid "Do not specify more than one host."
-msgstr "Não especificar mais do que uma máquina."
+msgstr "Não especifique mais do que uma máquina."
#. Type: string
#. Description
#: ../templates:6001
-#, fuzzy
#| msgid ""
#| "The relayhost parameter specifies the default host to send mail to when "
#| "no entry is matched in the optional transport(5) table. When no relay "
@@ -302,10 +302,10 @@
"when no entry is matched in the optional transport(5) table. When no relay "
"host is given, mail is routed directly to the destination."
msgstr ""
-"O parâmetro relayhost especifica a máquina por omissão para enviar mail "
-"quando nenhuma entrada coincide na tabela opcional de transport(5). Quando "
-"não é dado nenhum relayhost, o mail é encaminhado directamente para o "
-"destino."
+"O parâmetro relayhost especifica a máquina externa predefinida para enviar "
+"mail quando nenhuma entrada coincide na tabela opcional de transport(5). "
+"Quando não é dado nenhum relayhost, o mail é encaminhado directamente "
+"para o destino."
#. Type: boolean
#. Description
@@ -363,9 +363,9 @@
"installation time will be used. You may override this default with any of "
"the following:"
msgstr ""
-"Por omissão, quaisquer que sejam os protocolos de Internet que estejam "
-"habilitados no sistema na altura da instalação. Você pode ultrapassar este "
-"comportamento por omissão com quaisquer dos seguintes:"
+"Por predefinição, quaisquer que sejam os protocolos de Internet que estejam "
+"habilitados no sistema na altura da instalação. Você pode ultrapassar esta "
+"predefinição com quaisquer dos seguintes:"
#. Type: select
#. Description
@@ -388,7 +388,6 @@
#. Type: string
#. Description
#: ../templates:9001
-#, fuzzy
#| msgid ""
#| "Please choose the character that will be used to define a local address "
#| "extension."
@@ -396,14 +395,14 @@
"Please choose a character used as recipient delimiter that will indicate a "
"local address extension."
msgstr ""
-"Por favor escolha qual o caractere que será utilizado para definir uma "
-"extensão de endereço local?"
+"Por favor escolha o caractere que será utilizado como delimitador de "
+"recipiente que irá indicar uma extensão de endereço local."
#. Type: string
#. Description
#: ../templates:9001
msgid "To not use address extensions, leave the string blank."
-msgstr "Deixar a string vazia, para não utilizar extensões de endereço."
+msgstr "Para não utilizar extensões de endereço, deixe a string vazia."
#. Type: error
#. Description
@@ -418,8 +417,8 @@
"The recipient delimiter must be a single character. '${enteredstring}' is "
"what you entered."
msgstr ""
-"O delimitador de recipiente tem de ser um único caractere. "
-"'${enteredstring}' é o que você introduziu."
+"O delimitador de recipiente tem de ser um caractere único. "
+"Você inseriu '${enteredstring}'."
#. Type: string
#. Description
@@ -437,10 +436,10 @@
"via one IP version, the unused value(s) may be removed."
msgstr ""
"Por favor especifique os blocos de rede para os quais esta máquina deve "
-"fazer relay ao mail? A pré-definição é apenas a máquina local, que é "
-"necessário a alguns clientes de mail. A pré-definição inclui a máquina local "
-"para IPv4 e IPv6, Se a ligação for apenas através de uma versão do protocolo "
-"IP, o(s) valor(es) não utilizado(s) poderão ser removidos."
+"fazer relay ao mail? A predefinição é apenas a máquina local, que é "
+"necessário a alguns clientes de mail. A predefinição inclui a máquina local "
+"para IPv4 e IPv6, Se a ligação for apenas feita através de uma versão do "
+"protocolo IP, os valores não utilizados podem ser removidos."
#. Type: string
#. Description
@@ -456,7 +455,6 @@
#. Type: string
#. Description
#: ../templates:11001
-#, fuzzy
#| msgid ""
#| "To use the postfix default (which is based on the connected subnets), "
#| "leave this blank."
@@ -464,8 +462,8 @@
"To use the Postfix default (which is based on the connected subnets), leave "
"this blank."
msgstr ""
-"Para utilizar a omissão do postfix (que é baseada em redes ligadas), deixe "
-"isto em branco."
+"Para utilizar a predefinição do Postfix (que é baseada nas sub-redes "
+"ligadas), deixe isto em branco."
#. Type: string
#. Description
@@ -476,7 +474,6 @@
#. Type: string
#. Description
#: ../templates:12001
-#, fuzzy
#| msgid ""
#| "Please specify the limit that Postfix should place on mailbox files to "
#| "prevent runaway software errors. A value of zero (0) means no limit. The "
@@ -488,16 +485,17 @@
"default is 51200000."
msgstr ""
"Por favor especifique o limite que o Postfix deve colocar nos ficheiros da "
-"mailbox para prevenir erros de software, Um valor de zero (0) significa sem "
-"limite. (A omissão do original é 51200000.)"
+"mailbox para restringir a utilização do sistema de ficheiros por um "
+"ficheiro único (potencialmente devido a abuso do mail ou erros do "
+"software). Um valor de zero (0) significa sem limite. A predefinição "
+"original do autor é 51200000."
#. Type: string
#. Description
#: ../templates:13001
-#, fuzzy
#| msgid "Root and postmaster mail recipient:"
msgid "Recipient for root and postmaster mail:"
-msgstr "Destinatário do mail para root e postmaster:"
+msgstr "Recipiente para mail de root e postmaster:"
#. Type: string
#. Description
@@ -507,7 +505,7 @@
"redirected to the user account of the actual system administrator."
msgstr ""
"O mail para o 'postmaster', 'root' e outras contas de sistema necessitam ser "
-"redireccionadas para a conta do utilizador do administrador de sistema."
+"redirecionadas para a conta do utilizador do administrador de sistema real."
#. Type: string
#. Description
@@ -528,7 +526,6 @@
#. Type: string
#. Description
#: ../templates:13001
-#, fuzzy
#| msgid ""
#| "If you already have a /etc/aliases file and it does not have an entry for "
#| "root, then you should add this entry. Leave this blank to not add one."
@@ -538,426 +535,3 @@
msgstr ""
"Se já tem um ficheiro /etc/aliases e não tiver uma entrada para root, então "
"deverá acrescentar esta entrada. Deixe em branco para não acrescentar uma."
-
-#~ msgid "Update configuration to avoid compatibility warnings?"
-#~ msgstr "Actualizar a configuração para evitar avisos de compatibilidade?"
-
-#, fuzzy
-#~| msgid ""
-#~| "This upgrade of postfix changes some default values in the "
-#~| "configuration. As part of this upgrade, the following will be changed: "
-#~| "(1) chrooted components will be changed from '-' to 'y' in master.cf, "
-#~| "and (2) myhostname will be set to a fully-qualified domain name if it is "
-#~| "not already such. The install will be aborted if you do not allow the "
-#~| "change."
-#~ msgid ""
-#~ "This upgrade of Postfix changes some default values in the configuration. "
-#~ "As part of this upgrade, the following will be changed: (1) chrooted "
-#~ "components will be changed from '-' to 'y' in master.cf, and (2) "
-#~ "myhostname will be set to a fully-qualified domain name if it is not "
-#~ "already such. The install will be aborted if you do not allow the change."
-#~ msgstr ""
-#~ "Esta actualização do postfix altera alguns valores predefinidos na "
-#~ "configuração. Como parte desta actualização, o seguinte será alterado: "
-#~ "(1) os componentes chrooted irão mudar de '-' para 'y' no master.cf, e "
-#~ "(2) myhostname será definido para um nome de domínio totalmente "
-#~ "qualificado se ainda não o for. A instalação irá abortar se não permitir "
-#~ "a alteração."
-
-#~ msgid "Update main.cf for daemon_directory change?"
-#~ msgstr "Actualizar o main.cf para a alteração daemon_directory?"
-
-#, fuzzy
-#~| msgid ""
-#~| "This upgrade of postfix changes where daemons are located, and your "
-#~| "postfix configuration explicitly specifies the old location. The "
-#~| "install will be aborted if you do not allow the change."
-#~ msgid ""
-#~ "This upgrade of Postfix changes where daemons are located, and your "
-#~ "Postfix configuration explicitly specifies the old location. The install "
-#~ "will be aborted if you do not allow the change."
-#~ msgstr ""
-#~ "Esta actualização do postfix altera onde estão localizados os daemons, e "
-#~ "a sua configuração do postfix especifica explicitamente a antiga "
-#~ "localização. A instalação será abortada se não permitir a alteração."
-
-#~ msgid "Update dynamicmaps.cf for 3.0?"
-#~ msgstr "Actualizar dynamicmaps.cf para 3.0?"
-
-#, fuzzy
-#~| msgid ""
-#~| "Postfix version 3.0 changes how dynamic maps are delivered, and your "
-#~| "dynamicmaps.cf does not reflect that. Accept this option to convert "
-#~| "dynamicmaps.cf to the version required for 3.0."
-#~ msgid ""
-#~ "Postfix version 3.0 changes how dynamic maps are delivered, and your "
-#~ "dynamicmaps.cf does not reflect that. Accept this option to convert "
-#~ "dynamicmaps.cf to the version required for 3.0."
-#~ msgstr ""
-#~ "O Postfix versão 3.0 altera como são entregues os dynamic maps, e o seu "
-#~ "dynamicmaps.cf não reflecte isso. Aceite esta opção para converter o "
-#~ "dynamicmaps.cf para a versão necessária para a versão 3.0."
-
-#~ msgid "Add a 'mydomain' entry in main.cf for upgrade?"
-#~ msgstr "Acrescentar uma entrada 'mydomain' no main.cf para a actualização?"
-
-#~ msgid ""
-#~ "Postfix version 2.3.3-2 and later require changes in main.cf. "
-#~ "Specifically, mydomain must be specified, since hostname(1) is not a "
-#~ "fully qualified domain name (FQDN)."
-#~ msgstr ""
-#~ "As versões 2.3.3-2 e posteriores do Postfix necessitam de alterações no "
-#~ "main.cf. Especificamente, o mydomain tem de ser especificado, já que o "
-#~ "hostname(1) não é um nome de domínio totalmente qualificado (FQDN)."
-
-#~ msgid ""
-#~ "Failure to fix this will result in a broken mailer. Decline this option "
-#~ "to abort the upgrade, giving you the opportunity to add this "
-#~ "configuration yourself. Accept this option to automatically set mydomain "
-#~ "based on the FQDN of the machine."
-#~ msgstr ""
-#~ "Falhar corrigir isto resultará num mailer estragado. Rejeite esta opção "
-#~ "para abortar a actualização, dando-lhe a oportunidade de acrescentar você "
-#~ "mesmo esta configuração. Aceite esta opção para definir automaticamente "
-#~ "o mydomain baseado no FQDN da máquina."
-
-#~ msgid "Set smtpd_relay_restrictions in main.cf for upgrade?"
-#~ msgstr "Definir smtpd_relay_restrictions no main.cf na actualização?"
-
-#~ msgid ""
-#~ "Postfix version 2.10 adds smtpd_relay_restrictions, to separate relaying "
-#~ "restrictions from recipient restrictions, and you have a non-default "
-#~ "value for smtpd_recipient_restrictions."
-#~ msgstr ""
-#~ "O Postfix versão 2.10 acrescenta smtpd_relay_restriction, para separar as "
-#~ "restrições de relay das restricões dos destinatários, e você tem um valor "
-#~ "não pré-definido para smtpd_recipient_restrictions."
-
-#~ msgid ""
-#~ "Failure to do this may result in deferred or bounced mail after the "
-#~ "upgrade. Accept this option to set smtpd_relay_restrictions equal to "
-#~ "smtpd_recipient_restrictions."
-#~ msgstr ""
-#~ "Falhar fazer isto pode resultar em mail atrasado ou não entregue após a "
-#~ "actualização. Aceite esta opção para definir smtpd_relay_restrictions "
-#~ "igual a smtpd_recipient_restrictions."
-
-#~ msgid "Update master.cf for merged lmtp/smtp binary?"
-#~ msgstr "Actualizar o master.cf para binário de lmtp/smtp fundidos?"
-
-#~ msgid ""
-#~ "This upgrade of postfix drops the \"lmtp\" symlink, and your "
-#~ "configuration (master.cf) refers to it: lmtp was merged into smtp long "
-#~ "ago. The install will be aborted if you do not allow the change."
-#~ msgstr ""
-#~ "Esta actualização do postfix larga o symlink \"lmtp\", e a sua "
-#~ "configuração (master.cf) refere-se a ele:o lmtp foi junto a smtp à muito "
-#~ "tempo. A instalação será abortada se não permitir a alteração."
-
-#~ msgid "Add 'sqlite' entry to dynamicmaps.cf?"
-#~ msgstr "Acrescentar a entrada 'sqlite' a dynamicmaps.cf?"
-
-#~ msgid ""
-#~ "Postfix version 2.9 adds sqlite support to maps, but your dynamicmaps.cf "
-#~ "does not reflect that. Accept this option to add support for sqlite maps."
-#~ msgstr ""
-#~ "O Postfix 2.9 acrescenta suporte para sqlite em mapas, mas o seu "
-#~ "dynamicmaps.cf não o reflecte. Aceite esta opção se desejar acrescentar "
-#~ "suporte para mapas sqlite."
-
-#~ msgid "Install postfix despite an unsupported kernel?"
-#~ msgstr "Instalar o postfix apesar de um kernel não suportado?"
-
-#~ msgid ""
-#~ "Postfix uses features that are not found in kernels prior to 2.6. If you "
-#~ "proceed with the installation, Postfix will not run."
-#~ msgstr ""
-#~ "O Postfix utiliza funcionalidades que não se encontram em kernels "
-#~ "anteriores ao 2.6. Se continuar com a instalação, o Postfix não irá "
-#~ "correr."
-
-#~ msgid "Correct retry entry in master.cf for upgrade?"
-#~ msgstr "Corrigir a entrada 'retry' no master.cf para a actualização?"
-
-#~ msgid ""
-#~ "Postfix version 2.4 requires that the retry service be added to master.cf."
-#~ msgstr ""
-#~ "O Postfix versão 2.4 necessita que o serviço retry seja acrescentado ao "
-#~ "master.cf."
-
-#~ msgid ""
-#~ "Failure to fix this will result in a broken mailer. Decline this option "
-#~ "to abort the upgrade, giving you the opportunity to add this "
-#~ "configuration yourself. Accept this option to automatically make master."
-#~ "cf compatible with Postfix 2.4 in this respect."
-#~ msgstr ""
-#~ "Falhar corrigir isto resultará num mailer estragado. Rejeite esta opção "
-#~ "para abortar a actualização, dando-lhe a oportunidade de acrescentar você "
-#~ "mesmo esta configuração. Aceite esta opção para tornar automaticamente o "
-#~ "master.cf compatível nesse aspecto com o Postfix 2.4."
-
-#~ msgid "Correct tlsmgr entry in master.cf for upgrade?"
-#~ msgstr "Corrigir a entrada de tlsmgr no master.cf para a actualização?"
-
-#~ msgid "Postfix version 2.2 has changed the invocation of tlsmgr."
-#~ msgstr "O Postfix versão 2.2 mudou a invocação de tlsmgr."
-
-#~ msgid ""
-#~ "Failure to fix this will result in a broken mailer. Decline this option "
-#~ "to abort the upgrade, giving you the opportunity to add this "
-#~ "configuration yourself. Accept this option to automatically make master."
-#~ "cf compatible with Postfix 2.2 in this respect."
-#~ msgstr ""
-#~ "Falhar corrigir isto resultará num mailer estragado. Rejeite esta opção "
-#~ "para abortar a actualização, dando-lhe a oportunidade de acrescentar você "
-#~ "mesmo esta configuração. Aceite esta opção para tornar automaticamente o "
-#~ "master.cf compatível nesse aspecto com o Postfix 2.2."
-
-#~ msgid ""
-#~ "Postfix version 2.0.2 and later require changes in dynamicmaps.cf. "
-#~ "Specifically, wildcard support is gone, and with it, %s expansion. Any "
-#~ "changes that you made to dynamicmaps.cf that relied on these features "
-#~ "will need to be fixed by you. Failure to correct these will result in a "
-#~ "broken mailer."
-#~ msgstr ""
-#~ "As versões 2.0.2 e posteriores do postfix necessitam de alterações em "
-#~ "dynamicmaps.cf. Especificamente, os wildcards já não são suportados, e "
-#~ "também, a expansão %s. Quaisquer alterações que você faça a dynamicmaps."
-#~ "cf que sejam baseadas nessas habilidades têm de ser corrigidas agora por "
-#~ "si. Falhar corrigir isso resultará num mailer estragado."
-
-#~ msgid ""
-#~ "Should dynamicmaps.cf be automatically changed? Decline this option to "
-#~ "abort the upgrade, giving you the opportunity to eliminate wildcard and "
-#~ "%s-expansion-dependent configuration. Accept this option if you have no "
-#~ "such configuration, and automatically make dynamicmaps.cf compatible with "
-#~ "Postfix 2.0.2 in this respect."
-#~ msgstr ""
-#~ "Deve o dynamicmaps.cf ser modificado automaticamente? Rejeite esta opção "
-#~ "para cancelar a actualização, dando a oportunidade de eliminar wildcards "
-#~ "e configuração dependente da expansão-%s. Aceite esta opção se não tem "
-#~ "tal configuração, e neste aspecto tornar automaticamente o dynamicmaps.cf "
-#~ "compatível com o Postfix 2.0.2."
-
-#~ msgid "Correct master.cf for upgrade?"
-#~ msgstr "Corrigir msster.cf para a actualização?"
-
-#~ msgid ""
-#~ "Should this configuration be automatically added to master.cf? Decline "
-#~ "this option to abort the upgrade, giving you the opportunity to add this "
-#~ "configuration yourself. Accept this option to automatically make master."
-#~ "cf compatible with Postfix 2.1 in this respect."
-#~ msgstr ""
-#~ "Deve esta configuração ser automaticamente acrescentada a master.cf? "
-#~ "Rejeite esta opção para cancelar a actualização, ficando com a "
-#~ "oportunidade de acrescentar esta configuração você mesmo. Aceite esta "
-#~ "opção para automaticamente tornar neste aspecto o master.cf compatível "
-#~ "com o Postfix 2.1."
-
-#~ msgid ""
-#~ "Postfix version 2.1 renamed \"nqmgr\" to \"qmgr\", and you are using "
-#~ "\"nqmgr\"."
-#~ msgstr ""
-#~ "O Postfix versão 2.1 renomeou \"nqmgr\" para \"qmgr\", e você está a "
-#~ "utilizar \"nqmgr\"."
-
-#~ msgid ""
-#~ "Failure to fix this will result in a broken mailer. Decline this option "
-#~ "to abort the upgrade, giving you the opportunity to add this "
-#~ "configuration yourself. Accept this option to automatically make master."
-#~ "cf compatible with Postfix 2.1 in this respect."
-#~ msgstr ""
-#~ "Falhar corrigir isto resultará num mailer estragado. Rejeite esta opção "
-#~ "para cancelar a actualização, dando-lhe a oportunidade de acrescentar "
-#~ "você mesmo esta configuração. Aceite esta opção para tornar "
-#~ "automaticamente o master.cf compatível nesse aspecto com o Postfix 2.1."
-
-#~ msgid "Should Postfix upgrade hash and btree maps?"
-#~ msgstr "Deve o Postfix actualizar os mapas hash e btree?"
-
-#~ msgid ""
-#~ "Postfix has switched to db4, and this may require maps to be upgraded."
-#~ msgstr ""
-#~ "O Postfix mudou para db4, isto pode necessitar de que os mapas sejam "
-#~ "actualizados."
-
-#~ msgid "Do you want to automatically attempt the conversion?"
-#~ msgstr "Deseja tentar a conversão automaticamente?"
-
-#~ msgid "Transport map incompatibility"
-#~ msgstr "Incompatibilidade de mapa de transporte"
-
-#~ msgid ""
-#~ "You have a transport map defined, and there is an incompatible change in "
-#~ "how transport maps are used. Postfix will not be restarted automatically."
-#~ msgstr ""
-#~ "Você tem o mapa de transporte definido, e existe uma alteração "
-#~ "incompatível em como são utilizados os mapas de transporte. O Postfix "
-#~ "não será automaticamente reiniciado."
-
-#~ msgid ""
-#~ "Transport map entries override $mydestination. If you use transport "
-#~ "maps, it is better to always have explicit entries for all domain names "
-#~ "you have in $mydestination. See the html/faq.html sections for firewalls "
-#~ "and intranets. If you have transport entries for parent domains of "
-#~ "anything delivered locally, you will probably need to add specific "
-#~ "entries for the destination domains before you restart Postfix."
-#~ msgstr ""
-#~ "As entradas de mapa de transporte sobrepõem-se a $mydestination. Se você "
-#~ "utiliza mapas de transporte, é melhor ter sempre entradas explícitas para "
-#~ "todos os nomes de domínios que tem em $mydestination. Veja as secções "
-#~ "para firewalls e intranets em html/faq.html. Se você tem entradas de "
-#~ "transporte para domínios-pai de qualquer coisa entregue localmente, você "
-#~ "irá provavelmente necessitar de acrescentar entradas específicas para os "
-#~ "domínios de destino antes de reiniciar o Postfix."
-
-#~ msgid "The string you have entered"
-#~ msgstr "A string que introduziu"
-
-#~ msgid "\"${enteredstring}\""
-#~ msgstr "\"${enteredstring}\""
-
-#~ msgid ""
-#~ "No configuration, Internet Site, Internet with smarthost, Satellite "
-#~ "system, Local only"
-#~ msgstr ""
-#~ "Sem configuração, Site Internet, Internet com smarthost, sistema "
-#~ "Satélite, apenas Local"
-
-#~ msgid ""
-#~ "You have several choices for general configuration at this point. If you "
-#~ "have your debconf priority set to 'low' or 'medium', you will be asked "
-#~ "more questions later. You can always run \"dpkg-reconfigure --"
-#~ "priority=low postfix\" at a later point if you want to see these "
-#~ "questions again."
-#~ msgstr ""
-#~ "Nesta altura você tem várias escolhas para a configuração geral. Se tem a "
-#~ "prioridade do seu debconf definida para 'baixa' ou 'média', ser-lhe-ão "
-#~ "feitas mais questões posteriormente. Mais tarde, se desejar ver as "
-#~ "questões novamente você pode sempre correr \"dpkg-reconfigure --"
-#~ "priority=low postfix\"."
-
-#~ msgid ""
-#~ "No configuration - IF YOU WANT THE INSTALL TO LEAVE YOUR CONFIG ALONE, "
-#~ "CHOOSE THIS OPTION. No configuration changes will be done now: If you "
-#~ "have not already configured Postfix, your mail system will be broken and "
-#~ "should not be used. You must then do the configuration yourself by "
-#~ "editing /usr/share/postfix/main.cf.dist and saving your changes as /etc/"
-#~ "postfix/main.cf, or by running dpkg-reconfigure Postfix. main.cf will "
-#~ "not be modified by the Postfix install process."
-#~ msgstr ""
-#~ "Sem configuração - SE DESEJA QUE A INSTALAÇÃO NÂO TOQUE NA SUA "
-#~ "CONFIGURAÇÃO, ESCOLHA ESTA OPÇÃO. Por agora não serão feitas alterações à "
-#~ "configuração: Se ainda não configurou o Postfix, o seu sistema de mail "
-#~ "não estará funcional e não deve ser utilizado. Deve ser você a "
-#~ "configurar, para isso editar /usr/share/postfix/main.cf.dist e guardar as "
-#~ "alterações como /etc/postfix/main.cf, ou correr dpkg-reconfigure "
-#~ "postfix. O main.cf não será modificado pelo processo de instalação do "
-#~ "Postfix."
-
-#~ msgid ""
-#~ "Internet site - mail is sent and received directly using SMTP. If your "
-#~ "needs don't fit neatly into any category, you probably want to start with "
-#~ "this one and then edit the config file by hand."
-#~ msgstr ""
-#~ "Site de Internet - o mail é enviado e recebido directamente através de "
-#~ "SMTP. Se as suas necessidades não encaixam exactamente nesta categoria, "
-#~ "provavelmente você irá querer começar com este e editar manualmente o "
-#~ "ficheiro de configuração."
-
-#~ msgid ""
-#~ "Internet site using smarthost - You receive Internet mail on this "
-#~ "machine, either directly by SMTP or by running a utility such as "
-#~ "fetchmail. Outgoing mail is sent using a smarthost. optionally with "
-#~ "addresses rewritten. This is probably what you want for a dialup system."
-#~ msgstr ""
-#~ "Site de Internet com smarthost - Você recebe mail da Internet nesta "
-#~ "máquina, quer directamente por SMTP ou correndo um utilitário como o "
-#~ "fetchmail. O mail que sai é enviado utilizando um smarthost, "
-#~ "opcionalmente com os endereços re-escritos. Isto é provavelmente o que "
-#~ "você quer para um sistema dialup."
-
-#~ msgid ""
-#~ "Satellite system - All mail is sent to another machine, called a \"smart "
-#~ "host\" for delivery. No mail is received locally."
-#~ msgstr ""
-#~ "Sistema Satélite - Todo o mail para entrega é enviado para outra máquina, "
-#~ "chamada de \"smart host\". Não é recebido nenhum mail localmente."
-
-#~ msgid ""
-#~ "Local delivery only - You are not on a network. Mail for local users is "
-#~ "delivered."
-#~ msgstr ""
-#~ "Apenas entrega Local - Você não está numa rede. É entregue o mail para "
-#~ "utilizadores locais."
-
-#~ msgid "1) Editing /etc/postfix/main.cf to your liking"
-#~ msgstr "1) Editar ao seu gosto /etc/postfix/main.cf"
-
-#~ msgid "2) Running /etc/init.d/postfix start"
-#~ msgstr "2) Correr /etc/init.d/postfix start"
-
-#~ msgid "Mail name?"
-#~ msgstr "Nome de Mail?"
-
-#~ msgid ""
-#~ "Your `mail name' is the hostname portion of the address to be shown on "
-#~ "outgoing news and mail messages (following the username and @ sign)."
-#~ msgstr ""
-#~ "O seu `nome de mail' é a porção do endereço do hostname a ser mostrado "
-#~ "nas mensagens de news e de mail enviado (seguidos do nome do utilizador e "
-#~ "o símbolo @)."
-
-#~ msgid "all, ipv6, ipv4"
-#~ msgstr "todos, ipv6, ipv4"
-
-#~ msgid "all - use both ipv4 and ipv6 addresses"
-#~ msgstr "todos - escutar ambos endereços ipv4 e ipv6"
-
-#~ msgid "ipv6 - listen only on ipv6 addresses"
-#~ msgstr "ipv6 - escutar apenas endereços ipv6"
-
-#~ msgid "ipv4 - listen only on ipv4 addresses"
-#~ msgstr "ipv4 - escutar apenas endereços ipv4"
-
-#~ msgid "The default is \"no\"."
-#~ msgstr "Por omissão é \"no\"."
-
-#~ msgid "Where should mail for root go"
-#~ msgstr "Para onde deve ir o mail para o root"
-
-#~ msgid ""
-#~ "The user root (and any other users with a uid of 0) must have mail "
-#~ "redirected via an alias, or their mail may be delivered to /var/mail/"
-#~ "nobody. This is by design: mail is not delivered to external delivery "
-#~ "agents as root."
-#~ msgstr ""
-#~ "O utilizador root (e quaisquer outros utilizadores com um uid 0) têm de "
-#~ "ter o mail redireccionado através de um alias, ou o seu mail entregue em /"
-#~ "var/mail/nobody. Isto é do design: o mail não é entregue a agentes de "
-#~ "entrega externos como root."
-
-#~ msgid ""
-#~ "What address should be added to /etc/aliases, if the file is created? "
-#~ "(Leave this blank to not add one.)"
-#~ msgstr ""
-#~ "Que endereço deve acrescentado a /etc/aliases, se o ficheiro for criado? "
-#~ "(Deixe isto em branco para não adicionar nenhum.)"
-
-#~ msgid "+"
-#~ msgstr "+"
-
-#~ msgid "false"
-#~ msgstr "falso"
-
-#~ msgid "127.0.0.0/8"
-#~ msgstr "127.0.0.0/8"
-
-#~ msgid "0"
-#~ msgstr "0"
-
-#~ msgid "NONE"
-#~ msgstr "NENHUM"
-
-#~ msgid "Bad entry, try again?"
-#~ msgstr "Má entrada, tentar novamente?"
diff -Nru postfix-3.10.2/src/global/mail_version.h postfix-3.10.3/src/global/mail_version.h
--- postfix-3.10.2/src/global/mail_version.h 2025-04-22 18:14:49.000000000 +0300
+++ postfix-3.10.3/src/global/mail_version.h 2025-07-10 00:54:38.000000000 +0300
@@ -20,8 +20,8 @@
* Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only.
*/
-#define MAIL_RELEASE_DATE "20250422"
-#define MAIL_VERSION_NUMBER "3.10.2"
+#define MAIL_RELEASE_DATE "20250710"
+#define MAIL_VERSION_NUMBER "3.10.3"
#ifdef SNAPSHOT
#define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE
diff -Nru postfix-3.10.2/src/smtp/smtp.h postfix-3.10.3/src/smtp/smtp.h
--- postfix-3.10.2/src/smtp/smtp.h 2024-10-11 01:15:24.000000000 +0300
+++ postfix-3.10.3/src/smtp/smtp.h 2025-07-10 00:22:54.000000000 +0300
@@ -59,6 +59,9 @@
VSTRING *host; /* hostname or empty */
VSTRING *addr; /* printable address or empty */
unsigned port; /* network byte order or null */
+#ifdef USE_TLS
+ int tlsreqno; /* "TLS-Required: no" */
+#endif
struct DNS_RR *rr; /* DNS resource record or null */
struct DNS_RR *mx; /* DNS resource record or null */
/* Private members. */
@@ -66,11 +69,18 @@
struct SMTP_STATE *parent; /* parent linkage */
} SMTP_ITERATOR;
+#ifdef USE_TLS
+#define IF_USE_TLS(...) (__VA_ARGS__)
+#else
+#define IF_USE_TLS(...)
+#endif
+
#define SMTP_ITER_INIT(iter, _dest, _host, _addr, _port, state) do { \
vstring_strcpy((iter)->dest, (_dest)); \
vstring_strcpy((iter)->host, (_host)); \
vstring_strcpy((iter)->addr, (_addr)); \
(iter)->port = (_port); \
+ IF_USE_TLS((iter)->tlsreqno = 0); \
(iter)->mx = (iter)->rr = 0; \
vstring_strcpy((iter)->saved_dest, ""); \
(iter)->parent = (state); \
@@ -728,7 +738,7 @@
*/
#define SMTP_KEY_MASK_SCACHE_DEST_LABEL \
(SMTP_KEY_FLAG_SERVICE | COND_SASL_SMTP_KEY_FLAG_SENDER \
- | SMTP_KEY_FLAG_REQ_NEXTHOP)
+ | SMTP_KEY_FLAG_REQ_NEXTHOP | SMTP_KEY_FLAG_TLS_LEVEL)
/*
* Connection-cache endpoint lookup key. The SENDER, CUR_NEXTHOP, HOSTNAME,
diff -Nru postfix-3.10.2/src/smtp/smtp_connect.c postfix-3.10.3/src/smtp/smtp_connect.c
--- postfix-3.10.2/src/smtp/smtp_connect.c 2025-02-02 00:06:57.000000000 +0300
+++ postfix-3.10.3/src/smtp/smtp_connect.c 2025-07-10 00:22:54.000000000 +0300
@@ -508,6 +508,24 @@
SMTP_TLS_POLICY *tls = state->tls;
/*
+ * If the message contains a "TLS-Required: no" header, update the
+ * iterator to limit the policy at TLS_LEV_MAY.
+ *
+ * We must do this early to avoid possible failure if TLSA record lookups
+ * fail, or if TLSA records are found, but can't be activated because the
+ * security level has been reset to "may".
+ *
+ * Note that the REQUIRETLS verb in ESMTP overrides the "TLS-Required: no"
+ * header.
+ */
+#ifdef USE_TLS
+ if (var_tls_required_enable
+ && (state->request->sendopts & SOPT_REQUIRETLS_HEADER)) {
+ iter->tlsreqno = 1;
+ }
+#endif
+
+ /*
* Determine the TLS level for this destination.
*/
if (!smtp_tls_policy_cache_query(why, tls, iter)) {
@@ -530,16 +548,6 @@
#endif
/*
- * Otherwise, if the TLS level is not TLS_LEV_NONE or some non-level, and
- * the message contains a "TLS-Required: no" header, limit the level to
- * TLS_LEV_MAY.
- */
- else if (var_tls_required_enable && tls->level > TLS_LEV_NONE
- && (state->request->sendopts & SOPT_REQUIRETLS_HEADER)) {
- tls->level = TLS_LEV_MAY;
- }
-
- /*
* Success.
*/
return (1);
diff -Nru postfix-3.10.2/src/smtp/smtp_proto.c postfix-3.10.3/src/smtp/smtp_proto.c
--- postfix-3.10.2/src/smtp/smtp_proto.c 2025-01-14 01:40:09.000000000 +0300
+++ postfix-3.10.3/src/smtp/smtp_proto.c 2025-07-10 00:21:02.000000000 +0300
@@ -926,13 +926,16 @@
* XXX: The TLS library will salt the serverid with further details of the
* protocol and cipher requirements including the server ehlo response.
* Deferring the helo to the digested suffix results in more predictable
- * SSL session lookup key lengths.
+ * SSL session lookup key lengths. Add the current TLS security level to
+ * account for TLS level overrides based on message content or envelope
+ * metadata.
*/
serverid = vstring_alloc(10);
smtp_key_prefix(serverid, "&", state->iterator, SMTP_KEY_FLAG_SERVICE
| SMTP_KEY_FLAG_CUR_NEXTHOP /* With port */
| SMTP_KEY_FLAG_HOSTNAME
- | SMTP_KEY_FLAG_ADDR);
+ | SMTP_KEY_FLAG_ADDR
+ | SMTP_KEY_FLAG_TLS_LEVEL);
if (state->tls->conn_reuse) {
TLS_CLIENT_PARAMS tls_params;
diff -Nru postfix-3.10.2/src/smtp/smtp_tls_policy.c postfix-3.10.3/src/smtp/smtp_tls_policy.c
--- postfix-3.10.2/src/smtp/smtp_tls_policy.c 2024-10-24 22:01:42.000000000 +0300
+++ postfix-3.10.3/src/smtp/smtp_tls_policy.c 2025-07-10 00:22:54.000000000 +0300
@@ -651,7 +651,12 @@
tls->level = global_tls_level();
site_level = TLS_LEV_NOTFOUND;
- if (tls_policy) {
+ if (iter->tlsreqno) {
+ if (msg_verbose)
+ msg_info("%s: no tls policy lookup", __func__);
+ if (tls->level > TLS_LEV_MAY)
+ tls->level = TLS_LEV_MAY;
+ } else if (tls_policy) {
tls_policy_lookup(tls, &site_level, dest, "next-hop destination");
} else if (tls_per_site) {
tls_site_lookup(tls, &site_level, dest, "next-hop destination");
Reply to: