Package: procmail Version: 3.24-1 Severity: normal I am very happy to see procmail upstream is now active again! Excellent news! I am a long time user and have quite a few mail filtering rules.
The recent upgrade to 3.24 broke using a pipe action to set a variable using stdin. Reverting to 3.22 restores correct functioning. For example due to UTF-8 subject encoding one might find a subject with this contrived and constructed example. Subject: =?utf-8?q?test-list_post_from_rwp=40proulx=2Ecom_require?= =?utf-8?q?s_approval?= I use the following idiomatic procmail expression to decode that subject and place it into a SUBJECT variable. This following from my .procmailrc file. # If the subject is encoded and needs decoding then... # extract the subject, decode it, store in the SUBJECT variable. :0h * ^Subject:.*=\? SUBJECT=|formail -cXSubject: | perl -MEncode -pe 'Encode::from_to($_,"MIME-Header","UTF-8");' # Store all remaining cases of Subject: into $SUBJECT. # E - only execute this recipe if previous recipe was not executed. :0hE SUBJECT=|formail -cXSubject: # Here forward SUBJECT contains the decoded text. # Match it using the variable ?? syntax. # * SUBJECT ?? ^Subject: blah blah blah Then I use it like this following to handle Mailman messages. :0 * ^X-BeenThere: * SUBJECT ?? ^Subject: .*mailing list memberships reminder$ mailman-reminders/ :0 * ^X-List-Administrivia: yes { :0 * 1^0 SUBJECT ?? ^Subject: Auto-discard notification * 1^0 SUBJECT ?? ^Subject: El envio a [-a-zA-Z0-9]+ de.*precisa.*de.*aprobacion * 1^0 SUBJECT ?? ^Subject: Uncaught bounce notification * 1^0 SUBJECT ?? ^Subject: [-a-zA-Z0-9]+ post from * 1^0 SUBJECT ?? ^Subject: [-a-zA-Z0-9]+ subscription notification * 1^0 SUBJECT ?? ^Subject: [-a-zA-Z0-9]+ unsubscribe notification list-administrivia/ } Unfortunately in 3.24 this functionality is broken. I see in the Testing migration "excuses" this "Too young, only 4 of 5 days old". Should severity be "important" in order to keep Testing from breaking? Some experiments show to try to bound the condition. It's around the use of stdin to the sub-process. This following works. This does not use stdin. SUBJECT=|echo hello SUBJECT=|echo hello | tee /tmp/pt.rwp.debug SUBJECT=|sh -c "echo hello | tee /tmp/pt.rwp.debug" But this fails. (Using a cat| pipe to ensure $SHELLMETAS are seen.) This fails to process stdin. SUBJECT=|tee /tmp/pt.rwp.debug SUBJECT=|cat | tee /tmp/pt.rwp.debug SUBJECT=|sh -c "tee /tmp/pt.rwp.debug" SUBJECT=|sh -c "cat | tee /tmp/pt.rwp.debug" Thank you for maintaining procmail! :-) Bob -- System Information: Debian Release: bookworm/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 6.1.0-1-amd64 (SMP w/2 CPU threads; PREEMPT) Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: sysvinit (via /sbin/init) Versions of packages procmail depends on: ii libc6 2.36-8 Versions of packages procmail recommends: ii postfix [mail-transport-agent] 3.7.3-2+b1 procmail suggests no packages. -- no debconf information