sieve plugin editheader not found
Hey folks,
ive already made a bug report in the gentoo bugtracker last year. In the meantime after some releases the error persists with the current dovecot and pigeonhole versions.
Please see my bug report at gentoo mailinglist:
https://bugs.gentoo.org/show_bug.cgi?id=522148
Okay, here are some informations:
Steps to Reproduce:
add "editheader" to sieve options or "sievec" a file that need the extension
if header :matches "Something" "*" { addheader "Anything" "${1}"; deleteheader "Something"; }
sievec mod_header.sieve sievec(root): Fatal: Plugin 'editheader' not found from directory /usr/lib64/dovecot/sieve
dovecot --version 2.2.16
pigeonhole-0.4.7 sources got downloaded and used in the build process
dovecot -n
# 2.2.16: /etc/dovecot/dovecot.conf # Pigeonhole version 0.4.7 # OS: Linux 2.6.32-openvz-042stab102.9-amd64 x86_64 Gentoo Base System release 2.2 auth_mechanisms = plain login auth_socket_path = /var/run/dovecot/auth-userdb auth_verbose = yes dict { quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext } disable_plaintext_auth = no imap_capability = CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=ORDEREDSUBJECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED CONTEXT=SEARCH LIST-STATUS SPECIAL-USE XLIST QUOTA info_log_path = syslog login_log_format_elements = user=<%u> method=%m ip=%r mpid=%e mail_location = maildir:%h/.maildir mail_plugins = quota managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include body enotify environment mailbox date index ihave duplicate imapflags notify namespace compat { alias_for = hidden = yes inbox = no list = no location = prefix = INBOX. separator = . } namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = separator = / } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { args = /etc/dovecot/dovecot-sql.conf.ext quota = maildir quota_rule2 = trash:storage=+150M quota_warning = storage=95%% quota-warning 95 %u quota_warning2 = storage=80%% quota-warning 80 %u sieve = ~/.dovecot.sieve sieve_dir = ~/sieve sieve_extensions = +notify +imapflags sieve_global_extensions = variables } postmaster_address = mailer-daemon@dev.someserver service auth { unix_listener /var/spool/postfix/private/auth { group = mail mode = 0660 user = postfix } unix_listener auth-userdb { group = mail mode = 0660 user = postfix } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } service quota-warning { executable = script /etc/postfix/quota-warning.sh unix_listener quota-warning { group = hosting mode = 0660 user = postfix } user = postfix } ssl_cert = </etc/ssl/dovecot/server.pem ssl_key = </etc/ssl/dovecot/server.key userdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } protocol lda { mail_plugins = quota sieve postmaster_address = mailer-daemon@dev.someserver } protocol imap { mail_plugins = quota imap_quota } protocol pop3 { mail_plugins = quota } protocol lmtp { hostname = dev.someserver mail_plugins = quota sieve postmaster_address = postmaster@dev.someserver }
Please let me know if you need any additional informations, build logs ( log from 2.213 attached at bugs.gentoo.org ) or whatever may be helpful to track this down.
On 04/08/2015 05:53 PM, Patrick Lion wrote:
Hey folks,
ive already made a bug report in the gentoo bugtracker last year. In the meantime after some releases the error persists with the current dovecot and pigeonhole versions.
Please see my bug report at gentoo mailinglist:
https://bugs.gentoo.org/show_bug.cgi?id=522148
Okay, here are some informations:
Steps to Reproduce:
add "editheader" to sieve options or "sievec" a file that need the extension
if header :matches "Something" "*" { addheader "Anything" "${1}"; deleteheader "Something"; }
sievec mod_header.sieve sievec(root): Fatal: Plugin 'editheader' not found from directory /usr/lib64/dovecot/sieve
dovecot --version 2.2.16
pigeonhole-0.4.7 sources got downloaded and used in the build process
dovecot -n
# 2.2.16: /etc/dovecot/dovecot.conf # Pigeonhole version 0.4.7 # OS: Linux 2.6.32-openvz-042stab102.9-amd64 x86_64 Gentoo Base System release 2.2 auth_mechanisms = plain login auth_socket_path = /var/run/dovecot/auth-userdb auth_verbose = yes dict { quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext } disable_plaintext_auth = no imap_capability = CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=ORDEREDSUBJECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED CONTEXT=SEARCH LIST-STATUS SPECIAL-USE XLIST QUOTA info_log_path = syslog login_log_format_elements = user=<%u> method=%m ip=%r mpid=%e mail_location = maildir:%h/.maildir mail_plugins = quota managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include body enotify environment mailbox date index ihave duplicate imapflags notify namespace compat { alias_for = hidden = yes inbox = no list = no location = prefix = INBOX. separator = . } namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = separator = / } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { args = /etc/dovecot/dovecot-sql.conf.ext quota = maildir quota_rule2 = trash:storage=+150M quota_warning = storage=95%% quota-warning 95 %u quota_warning2 = storage=80%% quota-warning 80 %u sieve = ~/.dovecot.sieve sieve_dir = ~/sieve sieve_extensions = +notify +imapflags sieve_global_extensions = variables } postmaster_address = mailer-daemon@dev.someserver service auth { unix_listener /var/spool/postfix/private/auth { group = mail mode = 0660 user = postfix } unix_listener auth-userdb { group = mail mode = 0660 user = postfix } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } service quota-warning { executable = script /etc/postfix/quota-warning.sh unix_listener quota-warning { group = hosting mode = 0660 user = postfix } user = postfix } ssl_cert = </etc/ssl/dovecot/server.pem ssl_key = </etc/ssl/dovecot/server.key userdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } protocol lda { mail_plugins = quota sieve postmaster_address = mailer-daemon@dev.someserver } protocol imap { mail_plugins = quota imap_quota } protocol pop3 { mail_plugins = quota } protocol lmtp { hostname = dev.someserver mail_plugins = quota sieve postmaster_address = postmaster@dev.someserver }
Please let me know if you need any additional informations, build logs ( log from 2.213 attached at bugs.gentoo.org ) or whatever may be helpful to track this down.
I'm not using gentoo, but here on Debian everything works as expected.
eugene@hopper[pts/4]:~> locate editheader /usr/share/doc/dovecot-core/sieve/extensions/editheader.txt
That is a txt version of http://wiki2.dovecot.org/Pigeonhole/Sieve/Extensions/Editheader
eugene@hopper[pts/4]:~> doveconf -a | grep sieve sieve = ~/.sieve/.current sieve_dir = ~/.sieve sieve_global_dir = /etc/dovecot/sieve mail_plugins = " sieve
eugene@hopper[pts/4]:~> cat test.sieve require ["editheader"];
if header :matches "Something" "*" { addheader "Anything" "${1}"; deleteheader "Something"; }
Notice that require line.
eugene@hopper[pts/4]:~> sievec -d -x +editheader test.sieve -
- Script metadata (block: 0):
class = file class.version = 0 location = /home/eugene/test.sieve
Required extensions (block: 1):
0: editheader (id: 30)
Main program (block: 2):
Address Line Code 00000000: DEBUG BLOCK: 3 00000001: EXTENSIONS [1]: 00000002: editheader 00000003: 3: HEADER 00000006: match type: matches 00000009: header names: STR[9] "Something" 00000015: key list: STR[1] "*" 00000019: 3: JMPFALSE 39 [00000041] 0000001e: 4: addheader 00000020: field-name: STR[8] "Anything" 0000002b: value: STR[4] "${1}" 00000032: 5: DELETEHEADER 00000034: field name: STR[9] "Something" 00000041: 5: [End of code]
-- Eugene Paskevich | *==)----------- | Plug me into eugene@raptor.kiev.ua | -----------(==* | The Matrix
On 4/8/2015 4:53 PM, Patrick Lion wrote:
Hey folks,
ive already made a bug report in the gentoo bugtracker last year. In the meantime after some releases the error persists with the current dovecot and pigeonhole versions.
Please see my bug report at gentoo mailinglist:
https://bugs.gentoo.org/show_bug.cgi?id=522148
Okay, here are some informations:
Steps to Reproduce:
add "editheader" to sieve options or "sievec" a file that need the extension
What exactly do you mean by 'sieve options' ? What is your sievec command line?
if header :matches "Something" "*" { addheader "Anything" "${1}"; deleteheader "Something"; }
sievec mod_header.sieve sievec(root): Fatal: Plugin 'editheader' not found from directory /usr/lib64/dovecot/sieve
This indicates that sievec is looking for a plugin called 'editheader' (there is no such thing). That is strange unless you've configured sieve_plugins (I don't see that in your config) or you provide a -P option to sievec.
Regards,
Stephan.
Hi Eugene and Stephan,
doveconf -a | grep sieve
managesieve(root): Fatal: Plugin 'editheader' not found from directory /usr/lib64/dovecot/sieve doveconf: Error: managesieve-login: dump-capability process returned 89 managesieve_client_workarounds = managesieve_implementation_string = Dovecot Pigeonhole managesieve_logout_format = bytes=%i/%o managesieve_max_compile_errors = 5 managesieve_max_line_length = 65536 managesieve_sieve_capability = sieve = ~/.dovecot.sieve sieve_dir = ~/sieve sieve_extensions = +notify +imapflags sieve_global_extensions = variables sieve_plugins = editheader service managesieve-login { executable = managesieve-login inet_listener sieve { protocol = sieve service managesieve { executable = managesieve protocol = sieve unix_listener login/sieve { mail_plugins = quota sieve mail_plugins = quota sieve
sievec -d -x +editheader /etc/postfix/sieve_add_xorg.sieve sievec(root): Fatal: Plugin 'editheader' not found from directory /usr/lib64/dovecot/sieve
( with added "require ["editheader"]" in my sieve file )
find / -type f -name editheader.txt /opt/dovecot-2.2-pigeonhole-0.4.3/doc/extensions/editheader.txt /opt/_dovecot-2.2-pigeonhole-0.4.3/doc/extensions/editheader.txt
( these are files from tests i did with manual compiling the pigeonhole sources, not used at all and deleted in the meantime).
Stephan, i was testing some things and the general mail delivery fails when loading the plugin like you can see in this doveconf output. So in my first mail it wasnt present at specific time, but it is for sure and giving me same error over and over again with failing mail delivery.
Thanks in advance.
On 04/11/2015 04:26 PM, Patrick Lion wrote:
sieve_extensions = +notify +imapflags sieve_plugins = editheader
Editheader is not a plugin. It's an extension. Ergo, if you put +editheader into sieve_extensions sievec -x flag won't be necessary. Require line will be though.
-- Eugene Paskevich | *==)----------- | Plug me into eugene@raptor.kiev.ua | -----------(==* | The Matrix
participants (3)
-
Eugene Paskevich
-
Patrick Lion
-
Stephan Bosch