Subject: What is keeping Sieve WG chairs busy

From: Alexey Melnikov <[email-masked]>
Date: Tue, 30 May 2006 22:55:09 +0100

Just to update the WG on why chairs were so silent recently:

1). IMAP flags was submitted to IESG and received several comments (much 
more than the author originally anticipated). The comments were 
addressed, new revision was issues and the document got approved for 
publication.
2). IETF LC for subaddress has ended. Gen-Art review comments were 
received and we believe Ken has adequately responded to them. Ken will 
be publishing a new revision of the draft before it can be submitted to 
IESG.
3). Cyrus is slowly working on spamtest revision. Hopefully the next 
revision will be ready for IETF wide LC.
4). Alexey was making sure that draft-newman-i18n-comparator-11.txt 
doesn't break Sieve.
5). Cyrus and Alexey are getting ready for IESG writeup for 3028bis. 
List of issues to be resolved can be found here:
 <http://sieve.info/draft-3028bis>

Cyrus and Alexey

Date: Tue, 30 May 2006 22:55:09 +0100
From: Alexey Melnikov <[email-masked]>
To: [email-masked]
Subject: What is keeping Sieve WG chairs busy
Sender: [email-masked]

Just to update the WG on why chairs were so silent recently:

1). IMAP flags was submitted to IESG and received several comments (much 
more than the author originally anticipated). The comments were 
addressed, new revision was issues and the document got approved for 
publication.
2). IETF LC for subaddress has ended. Gen-Art review comments were 
received and we believe Ken has adequately responded to them. Ken will 
be publishing a new revision of the draft before it can be submitted to 
IESG.
3). Cyrus is slowly working on spamtest revision. Hopefully the next 
revision will be ready for IETF wide LC.
4). Alexey was making sure that draft-newman-i18n-comparator-11.txt 
doesn't break Sieve.
5). Cyrus and Alexey are getting ready for IESG writeup for 3028bis. 
List of issues to be resolved can be found here:
 <http://sieve.info/draft-3028bis>

Cyrus and Alexey

Date: Tue, 30 May 2006 18:57:59 +0100
From: Alexey Melnikov <[email-masked]>
To: Aaron Stone <[email-masked]>
CC: [email-masked]
Subject: Re: Status of Sieve Include extension
Sender: [email-masked]

Aaron Stone wrote:

>Hi folks,
>
>I'm going through the status of a couple of the Sieve extensions on my
>TODO list, and I haven't seen any updates to draft-daboo-sieve-include
>in a while. I think I might have asked about this sometime last year? I
>don't really recall. Anyways, what's the scoop on include?
>  
>
I am also interested in this work, even though it is not in the WG charter.

I think Cyrus is currently busy updating spamtest in preparation for 
submission to IESG.

To: [email-masked]
Date: Tue, 30 May 2006 10:08:23 -0700 (PDT)
From: Ned Freed <[email-masked]>
Subject: Minor issue in draft-ietf-sieve-spamtestbis-02.txt
Sender: [email-masked]

I just noticed that although the draft makes heavy use of the relational :value
match type, it says nothing about how :count should be handled. I suggest
adding a note to say that the "count value" is 1 if there's a spamtest or
virustest result to check, 0 otherwise.

				Ned

Cc: [email-masked]
To: Aaron Stone <[email-masked]>
Date: Tue, 30 May 2006 10:01:02 -0700 (PDT)
From: Ned Freed <[email-masked]>
Subject: Re: Status of Sieve Include extension
Sender: [email-masked]

> I'm going through the status of a couple of the Sieve extensions on my
> TODO list, and I haven't seen any updates to draft-daboo-sieve-include
> in a while. I think I might have asked about this sometime last year? I
> don't really recall. Anyways, what's the scoop on include?

I'm also curious about the status of the environment extension draft. Is
anyone working on it?

				Ned

Subject: Status of Sieve Include extension
From: Aaron Stone <[email-masked]>
To: [email-masked]
Date: Sat, 27 May 2006 15:06:37 -0700
Sender: [email-masked]

Hi folks,

I'm going through the status of a couple of the Sieve extensions on my
TODO list, and I haven't seen any updates to draft-daboo-sieve-include
in a while. I think I might have asked about this sometime last year? I
don't really recall. Anyways, what's the scoop on include?

Thanks,
Aaron

Date: Wed, 17 May 2006 14:54:17 -0600
From: Peter Saint-Andre <[email-masked]>
To: Dave Cridland <[email-masked]>
Cc: Alexey Melnikov <[email-masked]>, [email-masked]
Subject: Re: I-D ACTION:draft-ietf-sieve-notify-xmpp-00.txt
Sender: [email-masked]

This is a cryptographically signed message in MIME format.

--------------ms020804090003090204000000
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Dave Cridland wrote:
> 
> On Wed May 17 11:35:21 2006, Alexey Melnikov wrote:
>>>> Personally, I'd be happiest with a URI to the new message, where
>>>> possible, but i appreciate there's security concerns there.
>>>>    
>>> What form would such a URI take?
>>>  
>> Can be an IMAP (draft-ietf-lemonade-rfc2192bis-02.txt) or HTTP URL.
>>
>>
> Could reasonably be a mailto: URL, too, which might merely identify the
> email address the mail arrived at, as a fallback. 

True. Or, presumably, a pop: URI.

> (OMA's EMN format uses
> a non-IANA registered scheme for that kind of thing, too).

Non-IANA-registered schemes are scary to me.

>>> IMHO the account and message identification considerations belong in
>>> draft-ietf-sieve-notify rather than in the XMPP "profile" thereof (which
>>> would simply provide an instantiation of those considerations).
>>>  
>> Maybe you are right, but I don't think that draft-ietf-sieve-notify
>> can prescribe any particular URI type, because this would vary from
>> one deployment/implementation to another.

Sure. Presumably we can say that the account and message SHOULD be
identified by a URI, but that the scheme to use or prefer shall be
determined by local service policy.

> It could say "Notifications SHOULD include a URL for the recipient to
> use as a hint for locating the message. Where the nature of the
> notification allows, this SHOULD be marked in a machine-readable manner
> (such as an attribute in XML)."

I'd strike the parenthetical clause in sieve-notify and in the xmpp
profile say something about how to encapsulate such a URI in an
appropriate XMPP extension (e.g., JEP-0066).

Peter

- --
Peter Saint-Andre
Jabber Software Foundation
http://www.jabber.org/people/stpeter.shtml

--------------ms020804090003090204000000
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

--------------ms020804090003090204000000--

Date: Wed, 17 May 2006 14:19:17 +0100
Subject: Re: I-D ACTION:draft-ietf-sieve-notify-xmpp-00.txt
From: Dave Cridland <[email-masked]>
To: Alexey Melnikov <[email-masked]>
Cc: <[email-masked]>, Peter Saint-Andre <[email-masked]>
Sender: [email-masked]

On Wed May 17 11:35:21 2006, Alexey Melnikov wrote:
>>> Personally, I'd be happiest with a URI to the new message, where
>>> possible, but i appreciate there's security concerns there.
>>>    
>> What form would such a URI take?
>>  
> Can be an IMAP (draft-ietf-lemonade-rfc2192bis-02.txt) or HTTP URL.
> 
> 
Could reasonably be a mailto: URL, too, which might merely identify 
the email address the mail arrived at, as a fallback. (OMA's EMN 
format uses a non-IANA registered scheme for that kind of thing, too).

>> IMHO the account and message identification considerations belong 
>> in
>> draft-ietf-sieve-notify rather than in the XMPP "profile" thereof 
>> (which
>> would simply provide an instantiation of those considerations).
>>  
> Maybe you are right, but I don't think that draft-ietf-sieve-notify 
> can prescribe any particular URI type, because this would vary from 
> one deployment/implementation to another.
> 
> 
It could say "Notifications SHOULD include a URL for the recipient to 
use as a hint for locating the message. Where the nature of the 
notification allows, this SHOULD be marked in a machine-readable 
manner (such as an attribute in XML)."

Dave.
-- 
           You see things; and you say "Why?"
   But I dream things that never were; and I say "Why not?"
    - George Bernard Shaw

Date: Wed, 17 May 2006 11:35:21 +0100
From: Alexey Melnikov <[email-masked]>
To: Peter Saint-Andre <[email-masked]>
CC: Dave Cridland <[email-masked]>, [email-masked]
Subject: Re: I-D ACTION:draft-ietf-sieve-notify-xmpp-00.txt
Sender: [email-masked]

Peter Saint-Andre wrote:

>Dave Cridland wrote:
>
>>I think I might be the first person to comment about this on the list...
>>    
>>
>Quite possibly. :-)
>  
>
>>It seems odd that the XMPP message stanza used here has no obvious
>>identification as a notification 
>>    
>>
>Typically, notifications in XMPP are sent using type='headline'
>(indicating that no response is expected).
>  
>
>>specifically, XMPP, being XML based,
>>could hold (for instance) an OMA EMN, or some other XML element which
>>indicated that it was a notification, and ideally provided some
>>identification of what the account involved was.
>>    
>>
>Something like the following?
>
>imap:user@host
>  
>
IMAP-like URL

imap://user@host
?

>>Personally, I'd be happiest with a URI to the new message, where
>>possible, but i appreciate there's security concerns there.
>>    
>>
>What form would such a URI take?
>  
>
Can be an IMAP (draft-ietf-lemonade-rfc2192bis-02.txt) or HTTP URL.

>IMHO the account and message identification considerations belong in
>draft-ietf-sieve-notify rather than in the XMPP "profile" thereof (which
>would simply provide an instantiation of those considerations).
>  
>
Maybe you are right, but I don't think that draft-ietf-sieve-notify can 
prescribe any particular URI type, because this would vary from one 
deployment/implementation to another.

>>If such an XML element were to be put in place, I'd find it nicer it it
>>contained the urgency as a normal XML attribute, rather than SHIM. I
>>just don't like SHIM.
>>    
>>
>I would not have deep objections to coming up with a more XML-ish format
>(XMPP extension) for urgency.
>  
>

Date: Tue, 16 May 2006 16:55:54 -0600
From: Peter Saint-Andre <[email-masked]>
To: Dave Cridland <[email-masked]>
Cc: [email-masked]
Subject: Re: I-D ACTION:draft-ietf-sieve-notify-xmpp-00.txt
Sender: [email-masked]

This is a cryptographically signed message in MIME format.

--------------ms040805030305060607010701
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Dave Cridland wrote:
> 
> On Wed Jan 18 21:50:02 2006, [email-masked] wrote:
>>     Title        : Sieve Notification Mechanism: xmpp
>>     Author(s)    : P. Saint-Andre, A. Melnikov
>>     Filename    : draft-ietf-sieve-notify-xmpp-00.txt
>>     Pages        : 7
>>     Date        : 2006-1-18
> 
> I think I might be the first person to comment about this on the list...

Quite possibly. :-)

> It seems odd that the XMPP message stanza used here has no obvious
> identification as a notification 

Typically, notifications in XMPP are sent using type='headline'
(indicating that no response is expected).

> specifically, XMPP, being XML based,
> could hold (for instance) an OMA EMN, or some other XML element which
> indicated that it was a notification, and ideally provided some
> identification of what the account involved was.

Something like the following?

imap:user@host

> Personally, I'd be happiest with a URI to the new message, where
> possible, but i appreciate there's security concerns there.

What form would such a URI take?

IMHO the account and message identification considerations belong in
draft-ietf-sieve-notify rather than in the XMPP "profile" thereof (which
would simply provide an instantiation of those considerations).

> If such an XML element were to be put in place, I'd find it nicer it it
> contained the urgency as a normal XML attribute, rather than SHIM. I
> just don't like SHIM.

I would not have deep objections to coming up with a more XML-ish format
(XMPP extension) for urgency.

Peter

- --
Peter Saint-Andre
Jabber Software Foundation
http://www.jabber.org/people/stpeter.shtml

--------------ms040805030305060607010701
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

--------------ms040805030305060607010701--

Date: Tue, 16 May 2006 12:37:54 -0700
From: "Mark Davis" <[email-masked]>
To: "Arnt Gulbrandsen" <[email-masked]>
Subject: Re: draft-newman-i18n-collation-09.txt just posted
Cc: [email-masked], [email-masked], [email-masked]
Sender: [email-masked]

------=_Part_41077_30668366.1147808274668
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64
Content-Disposition: inline

------=_Part_41077_30668366.1147808274668
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: base64
Content-Disposition: inline

------=_Part_41077_30668366.1147808274668--

Date: Tue, 16 May 2006 20:25:19 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked], [email-masked]
Subject: Re: draft-newman-i18n-collation-09.txt just posted
Cc: Mark Davis <[email-masked]>, [email-masked]
Sender: [email-masked]

Arnt Gulbrandsen writes:
> Mark Davis writes:
>> ...
>> At a quick glance, it appears that a number of comments have been 
>> incorporated.
>
> It is possible that some of my changes don't satisfy you. I had 
> conflicting requests for many things. Feel free to repeat, rephrase 
> or add arguments.

In -10 (which I'll send off once I finish work this evening) I've made 
another few changes.

>>>       > 2.4 Sort Keys
>>>
>>> The use of the term "collation canonicalization" to refer to sort 
>>> keys is very misleading. ...
>
> Changed; the text now speaks of sort keys. I'm afraid there still are 
> instances of the old term around, I found one today.

In -10, all should be dead.

>>> The term 'error' is also problematic, since what is really at issue 
>>> is a question of domain. For all those strings in the domain, 
>>> either 'equal' or 'not_equal' should be returned from the equality 
>>> function. For any string not in the domain, 'undefined' should be 
>>> returned.
>
> Not changed. Back in February, I agreed that "error" was not ideal, 
> but did not see "undefined" as better, and could not find a really 
> apt term. The collations were a little too well-defined in the 
> "undefined" cases then.
>
> However, in -10, I think they really will be undefined outside their 
> domain, so I'll change to using "undefined" instead of "error". (I'm 
> removing the bits that fall back to i;octet.)

Changed. The fallback to i;octet is now in the server, if the protocol 
requires it.

This means that if a server can escape implementing i;octet, it can keep 
all its strings in UCS-2 or UCS-4 internally, even as it implements 
collations which are defined in terms of octets.

Arnt

Date: Tue, 16 May 2006 18:21:37 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked], [email-masked]
Subject: Re: draft-newman-i18n-collation-09.txt just posted
Cc: John Cowan <[email-masked]>, Mark Davis <[email-masked]>, [email-masked]
Sender: [email-masked]

John Cowan writes:
> Instead of the requestor sending the request to IANA, who sends it to 
> the Collation Reviewer for discussion on the list, and then the 
> Collation Reviewer sends it back to IANA for registration (or 
> doesn't), remove the first pass through IANA.

Fine. Done.

Arnt

Date: Sun, 14 May 2006 21:13:17 -0400
From: Tony Hansen <[email-masked]>
To: [email-masked]
Subject: Re: Port 2000
Sender: [email-masked]

#3.

Arnt Gulbrandsen wrote:
> 
> IANA registration is pending, or so the latest draft says. Well, what'll
> the draft say if IANA won't hand out port 2000?
> 
> I see three possibilities:
> 
> 1. Advise servers to listen to a standard port, and "MAY also listen to
> 2000 for legacy compatibility". Advise servers to try the standard port,
> then 2000?
> 
> 2. Advise servers to listen to a standard port, site admins to add a SRV
> record, and client to look for the SRV record and fall back to port 2000
> if there is none?
> 
> 3. Mention only the IANA-assigned port, not 2000, and pretend to ignore
> that all servers listen to port 2000 too, and every client falls back to
> 2000?

Date: Sat, 13 May 2006 21:50:31 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked]
Subject: Re: sieve/managesieve/time and ACL
Cc: Ned Freed <[email-masked]>
Sender: [email-masked]

Ned Freed writes, answering me:
>> I believe that managesieve, as well as pretty much every other piece 
>> of software, should perform all the sanity checks it easily can. If 
>> putscript can easily check more than just syntax, it should.
>
> Again, this check seems like it forces an unnecessary ordering on how 
> users set things up. I don't think that's a good idea.

I agree with you in general, or so I think, but this is a fairly extreme 
case. If you're uploading a sieve script that runs fileinto on someone 
else's mailbox, I don't think it's unreasonable to make that someone 
grant permission first.

A more regular case, such as fileinto a nonexistent mailbox in the 
user's own mailbox subtree, is different IMO. It's conveivable that the 
MUA issues PUTSCRIPT first, then uses IMAP to CREATE the necessary 
mailbox(es) if PUTSCRIPT goes through. It's also reasonable that the 
mailbox is created on delivery.

But the extreme case is different: It's difficult to conceive of an MUA 
that does PUTSCRIPT, then logs in via IMAP as a different user and does 
SETACL to grant permission.

I think that this applies to all circumstances which ensure that the 
sieve cannot work as specified if made active now and which cannot be 
corrected by the user within the system. Possible candiates (many of 
which are hard to test):
1. redirect to a nonexistent domain
2. redirect to a nonexistent local address
3. fileinto a mailbox with a name that the local software does not support
4. fileinto a mailbox to which the user does not have the insert right 
and to which the user cannot himself grant the insert right
5. fileinto a mailbox which does not exist and which cannot be created 
by the user

If the managesieve draft ends up mentioning checks on anything other 
than pure syntax, then I think no. 3 above is a good example.

>> Yes (in a more general form, ideally).
>
> In any case, some discussion of how to handle error conditions that 
> creep in between sieve evaluation and execution of the resulting 
> actions would be fine.

Do you mean evaluation by managesieve during putscript, or evaluation by 
the sieve processor when a message is received? I agree in either case.

Arnt

Cc: [email-masked], Ned Freed <[email-masked]>
To: Arnt Gulbrandsen <[email-masked]>
Date: Sat, 13 May 2006 07:27:10 -0700 (PDT)
From: Ned Freed <[email-masked]>
Subject: Re: sieve/managesieve/time and ACL
Sender: [email-masked]

> Ned Freed writes:
> > The implication here is that you might want to check fileinto validity
> > in managesieve.

> Right, with emphasis on the might. I'm all in favour if picking
> low-hanging fruit.

> >  I'm very dubious about this being a good idea - in addition to ACLs
> > changing after the fact, there's also the issue of uploading the
> > sieve referring to the mailbox before the mailbox is created.

> I believe that managesieve, as well as pretty much every other piece of
> software, should perform all the sanity checks it easily can. If
> putscript can easily check more than just syntax, it should.

Again, this check seems like it forces an unnecessary ordering on how users
set things up. I don't think that's a good idea.

> > I also suspect that in many architectures it would be quite difficult
> > to perform such a check. It certainly is next to impossible to do a
> > meaningful check of this sort in ours.

> Then don't do it ;)

I wouldn't even if it was easy to do.

> >> What should happen when a message arrives and the script wants to
> >> fileinto? I can't find any mention at all of access control in 3028bis,
> >> far less of access control which changes after the sieve is blessed by
> >> managesieve.

> > We handle this case essentially by converting the fileinto into a
> > keep. I don't thinking requiring such behavior is a good idea,
> > however, we might want to point out the issue and suggest this as one
> > way to deal with it.

> Yes (in a more general form, ideally).

In any case, some discussion of how to handle error conditions that creep
in between sieve evaluation and execution of the resulting actions would
be fine.

				Ned

To: [email-masked]
Cc: [email-masked]
From: [email-masked]
Subject: I-D ACTION:draft-ietf-sieve-imapflags-05.txt 
Date: Fri, 12 May 2006 15:50:01 -0400
Sender: [email-masked]

--NextPart

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Sieve Mail Filtering Language Working Group of the IETF.

	Title		: SIEVE Email Filtering: IMAP flag Extension
	Author(s)	: A. Melnikov
	Filename	: draft-ietf-sieve-imapflags-05.txt
	Pages		: 0
	Date		: 2006-5-12
	
Recent discussions have shown that it is desirable to set different
   IMAP (RFC 3501) flags on message delivery.  This can be done, for
   example, by a Sieve interpreter that works as a part of a Mail
   Delivery Agent.

   This document describes an extension to the Sieve mail filtering
   language for setting IMAP flags. The extension allows to set both
   IMAP system flags and IMAP keywords.

A URL for this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-sieve-imapflags-05.txt

To remove yourself from the I-D Announcement list, send a message to 
[email-masked] with the word unsubscribe in the body of the message.  
You can also visit https://www1.ietf.org/mailman/listinfo/I-D-announce 
to change your subscription settings.

Internet-Drafts are also available by anonymous FTP. Login with the username
"anonymous" and a password of your e-mail address. After logging in,
type "cd internet-drafts" and then
	"get draft-ietf-sieve-imapflags-05.txt".

A list of Internet-Drafts directories can be found in
http://www.ietf.org/shadow.html 
or ftp://ftp.ietf.org/ietf/1shadow-sites.txt

Internet-Drafts can also be obtained by e-mail.

Send a message to:
	[email-masked].
In the body type:
	"FILE /internet-drafts/draft-ietf-sieve-imapflags-05.txt".
	
NOTE:	The mail server at ietf.org can return the document in
	MIME-encoded form by using the "mpack" utility.  To use this
	feature, insert the command "ENCODING mime" before the "FILE"
	command.  To decode the response(s), you will need "munpack" or
	a MIME-compliant mail reader.  Different MIME-compliant mail readers
	exhibit different behavior, especially when dealing with
	"multipart" MIME messages (i.e. documents which have been split
	up into multiple messages), so check your local documentation on
	how to manipulate these messages.

Below is the data which will enable a MIME compliant mail reader
implementation to automatically retrieve the ASCII version of the
Internet-Draft.

--NextPart
Content-Type: Multipart/Alternative; Boundary="OtherAccess"

--OtherAccess
Content-Type: Message/External-body;
	access-type="mail-server";
	server="[email-masked]"

Content-Type: text/plain
Content-ID:	<[email-masked]>

ENCODING mime
FILE /internet-drafts/draft-ietf-sieve-imapflags-05.txt

--OtherAccess
Content-Type: Message/External-body;
	name="draft-ietf-sieve-imapflags-05.txt";
	site="ftp.ietf.org";
	access-type="anon-ftp";
	directory="internet-drafts"

Content-Type: text/plain
Content-ID:	<[email-masked]>

--OtherAccess--

--NextPart--

Date: Fri, 12 May 2006 19:59:59 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked]
Subject: Re: sieve/managesieve/time and ACL
Cc: Ned Freed <[email-masked]>
Sender: [email-masked]

Ned Freed writes:
> The implication here is that you might want to check fileinto validity 
> in managesieve.

Right, with emphasis on the might. I'm all in favour if picking 
low-hanging fruit.

>  I'm very dubious about this being a good idea - in addition to ACLs 
> changing after the fact, there's also the issue of uploading the 
> sieve referring to the mailbox before the mailbox is created.

I believe that managesieve, as well as pretty much every other piece of 
software, should perform all the sanity checks it easily can. If 
putscript can easily check more than just syntax, it should.

> I also suspect that in many architectures it would be quite difficult 
> to perform such a check. It certainly is next to impossible to do a 
> meaningful check of this sort in ours.

Then don't do it ;)

>> What should happen when a message arrives and the script wants to
>> fileinto? I can't find any mention at all of access control in 3028bis,
>> far less of access control which changes after the sieve is blessed by
>> managesieve.
>
> We handle this case essentially by converting the fileinto into a 
> keep. I don't thinking requiring such behavior is a good idea, 
> however, we might want to point out the issue and suggest this as one 
> way to deal with it.

Yes (in a more general form, ideally).

Arnt

Cc: Ned Freed <[email-masked]>, Arnt Gulbrandsen <[email-masked]>, [email-masked]
To: Cyrus Daboo <[email-masked]>
Date: Fri, 12 May 2006 08:22:01 -0700 (PDT)
From: Ned Freed <[email-masked]>
Subject: Re: sieve/managesieve/time and ACL
Sender: [email-masked]

> Hi Ned,

> --On May 12, 2006 7:57:53 AM -0700 Ned Freed <[email-masked]> wrote:

> >> What should happen when a message arrives and the script wants to
> >> fileinto? I can't find any mention at all of access control in 3028bis,
> >> far less of access control which changes after the sieve is blessed by
> >> managesieve.
> >
> > We handle this case essentially by converting the fileinto into a keep.
> > I don't thinking requiring such behavior is a good idea, however, we might
> > want to point out the issue and suggest this as one way to deal with it.

> That was better than simply treating the fileinto as a run time error and
> doing an implicit keep?

Actually, yes, it is better, since the runtime error would prevent other
actions from being taken.

In any case, turning this into a runtime error is not an option since sieve
execution is completed long before any sort of check of mailbox validity is
possible.

				Ned

Reply-To: [email-masked]
From: "[email-masked]" <[email-masked]>
To: [email-masked], [email-masked], [email-masked]
Date: Fri, 12 May 2006 11:23:25 -0400
Subject: Re: sieve/managesieve/time and ACL
Sender: [email-masked]

Hi Folks,
I don't know how I ended up on your email list, but can you please take me
off today.
thank you and let me know.
[email-masked]

Original Message:
-----------------
From: Cyrus Daboo [email-masked]
Date: Fri, 12 May 2006 10:36:36 -0400
To: [email-masked], [email-masked]
Subject: Re: sieve/managesieve/time and ACL

Hi Arnt,

--On May 12, 2006 4:33:40 PM +0200 Arnt Gulbrandsen 
<[email-masked]> wrote:

> suppose I upload a script to the server using managesieve. A perfectly
> fine script which contain only a fileinto command for the mailbox
> /mumble/stumble. The next day, someone who doesn't like me changes the
> ACL on /mumble/stumble such that I no longer have the right to insert
> messages into it.
>
> What should happen when a message arrives and the script wants to
> fileinto? I can't find any mention at all of access control in 3028bis,
> far less of access control which changes after the sieve is blessed by
> managesieve.

If fileinto fails an implicit keep occurs - so it will end up in your INBOX.

-- 
Cyrus Daboo

--------------------------------------------------------------------
mail2web - Check your email from the web at
http://mail2web.com/ .

Date: Fri, 12 May 2006 11:18:54 -0400
From: Cyrus Daboo <[email-masked]>
To: Ned Freed <[email-masked]>, Arnt Gulbrandsen <[email-masked]>
cc: [email-masked]
Subject: Re: sieve/managesieve/time and ACL
Sender: [email-masked]

Hi Ned,

--On May 12, 2006 7:57:53 AM -0700 Ned Freed <[email-masked]> wrote:

>> What should happen when a message arrives and the script wants to
>> fileinto? I can't find any mention at all of access control in 3028bis,
>> far less of access control which changes after the sieve is blessed by
>> managesieve.
>
> We handle this case essentially by converting the fileinto into a keep.
> I don't thinking requiring such behavior is a good idea, however, we might
> want to point out the issue and suggest this as one way to deal with it.

That was better than simply treating the fileinto as a run time error and 
doing an implicit keep?

-- 
Cyrus Daboo

Cc: [email-masked]
To: Arnt Gulbrandsen <[email-masked]>
Date: Fri, 12 May 2006 07:57:53 -0700 (PDT)
From: Ned Freed <[email-masked]>
Subject: Re: sieve/managesieve/time and ACL
Sender: [email-masked]

> Hi,

> suppose I upload a script to the server using managesieve. A perfectly
> fine script which contain only a fileinto command for the mailbox
> /mumble/stumble. The next day, someone who doesn't like me changes the
> ACL on /mumble/stumble such that I no longer have the right to insert
> messages into it.

The implication here is that you might want to check fileinto validity
in managesieve. I'm very dubious about this being a good idea - in addition
to ACLs changing after the fact, there's also the issue of uploading the
sieve referring to the mailbox before the mailbox is created.

I also suspect that in many architectures it would be quite difficult to
perform such a check. It certainly is next to impossible to do a meaningful
check of this sort in ours.

> What should happen when a message arrives and the script wants to
> fileinto? I can't find any mention at all of access control in 3028bis,
> far less of access control which changes after the sieve is blessed by
> managesieve.

We handle this case essentially by converting the fileinto into a keep.
I don't thinking requiring such behavior is a good idea, however, we might
want to point out the issue and suggest this as one way to deal with it.

				Ned

Date: Fri, 12 May 2006 10:36:36 -0400
From: Cyrus Daboo <[email-masked]>
To: Arnt Gulbrandsen <[email-masked]>, [email-masked]
Subject: Re: sieve/managesieve/time and ACL
Sender: [email-masked]

Hi Arnt,

--On May 12, 2006 4:33:40 PM +0200 Arnt Gulbrandsen 
<[email-masked]> wrote:

> suppose I upload a script to the server using managesieve. A perfectly
> fine script which contain only a fileinto command for the mailbox
> /mumble/stumble. The next day, someone who doesn't like me changes the
> ACL on /mumble/stumble such that I no longer have the right to insert
> messages into it.
>
> What should happen when a message arrives and the script wants to
> fileinto? I can't find any mention at all of access control in 3028bis,
> far less of access control which changes after the sieve is blessed by
> managesieve.

If fileinto fails an implicit keep occurs - so it will end up in your INBOX.

-- 
Cyrus Daboo

Date: Fri, 12 May 2006 16:33:40 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked]
Subject: sieve/managesieve/time and ACL
Sender: [email-masked]

Hi,

suppose I upload a script to the server using managesieve. A perfectly 
fine script which contain only a fileinto command for the mailbox 
/mumble/stumble. The next day, someone who doesn't like me changes the 
ACL on /mumble/stumble such that I no longer have the right to insert 
messages into it.

What should happen when a message arrives and the script wants to 
fileinto? I can't find any mention at all of access control in 3028bis, 
far less of access control which changes after the sieve is blessed by 
managesieve.

Arnt

Date: Fri, 12 May 2006 14:28:14 +0100
From: Alexey Melnikov <[email-masked]>
To: Arnt Gulbrandsen <[email-masked]>
CC: [email-masked]
Subject: Re: Port 2000
Sender: [email-masked]

Arnt Gulbrandsen wrote:

> IANA registration is pending, or so the latest draft says. Well, 
> what'll the draft say if IANA won't hand out port 2000?

I assume you are talking about Manage Sieve protocol.

> I see three possibilities:
>
> 1. Advise servers to listen to a standard port, and "MAY also listen 
> to 2000 for legacy compatibility". Advise servers to try the standard 
> port, then 2000?
>
> 2. Advise servers to listen to a standard port, site admins to add a 
> SRV record, and client to look for the SRV record and fall back to 
> port 2000 if there is none?
>
> 3. Mention only the IANA-assigned port, not 2000, and pretend to 
> ignore that all servers listen to port 2000 too, and every client 
> falls back to 2000?

Either 1 or 2 would work for me.

Date: Fri, 12 May 2006 15:19:10 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked]
Subject: Port 2000
Sender: [email-masked]

IANA registration is pending, or so the latest draft says. Well, what'll 
the draft say if IANA won't hand out port 2000?

I see three possibilities:

1. Advise servers to listen to a standard port, and "MAY also listen to 
2000 for legacy compatibility". Advise servers to try the standard 
port, then 2000?

2. Advise servers to listen to a standard port, site admins to add a SRV 
record, and client to look for the SRV record and fall back to port 
2000 if there is none?

3. Mention only the IANA-assigned port, not 2000, and pretend to ignore 
that all servers listen to port 2000 too, and every client falls back 
to 2000?

Arnt

Date: Thu, 11 May 2006 09:38:01 -0400
To: Arnt Gulbrandsen <[email-masked]>
Cc: [email-masked], [email-masked], Mark Davis <[email-masked]>, [email-masked]
Subject: Re: draft-newman-i18n-collation-09.txt just posted
From: John Cowan <[email-masked]>
Sender: [email-masked]

I propose that the procedure specified in draft-newman-i18n-collation-09
for getting new collations approved should be changed to the procedure
used for new language tags.  Instead of the requestor sending the
request to IANA, who sends it to the Collation Reviewer for discussion
on the list, and then the Collation Reviewer sends it back to IANA for
registration (or doesn't), remove the first pass through IANA.

Have people post directly to the list and work out the details.  When the
requestor thinks it's ready, the Collation Reviewer wakes up and then
either sends the latest draft of the request to IANA or else sends a
rejection (with reasons) to the list.  This lowers the load on IANA.

This scheme has worked very well for [email-masked] for the
past 11 years.

-- 
John Cowan  [email-masked]   http://ccil.org/~cowan
"The exception proves the rule."  Dimbulbs think: "Your counterexample proves
my theory."  Latin students think "'Probat' means 'tests': the exception puts
the rule to the proof."  But legal historians know it means "Evidence for an
exception is evidence of the existence of a rule in cases not excepted from."

Date: Wed, 10 May 2006 23:22:59 +0100
Subject: Re: comparators and "error"
From: Dave Cridland <[email-masked]>
To: Arnt Gulbrandsen <[email-masked]>
Cc: Alexey Melnikov <[email-masked]>, <[email-masked]>
Sender: [email-masked]

On Wed May 10 20:09:17 2006, Arnt Gulbrandsen wrote:
> 
> Dave Cridland writes:
>> I'm really not so sure. On the face of it, it sounds like bad 
>> design, but I think there's at least two cases here - an attempt 
>> to compare "fish" and "bicycle", and an attempt to compare "fish" 
>> and "2". I have a feeling this is an important distinction.
> 
> It is precisely the distinction between "neither input is valid" 
> and "one input is valid, the other not".
> 
>> Arguably, "fish" is equal in numeric value to "bicycle" - they 
>> both have no numeric value, so it's the same as comparing NIL and 
>> NIL with "i;octet".
> 
> Or as comparing null with null in SQL.
> 
>> Equally, "2" has a numeric value of 2, whereas "fish" does not, so 
>> they are unequal - like comparing NIL and an existing string with 
>> "i;octet".
> 
> Or as comparing 2 with null in SQL. And wouldn't you know, SQL is 
> different from ACAP in this respect.

Good for SQL... ACAP's definitions regarding this are a lot less 
clear.

> I'd rather not venture into this dark and confusing maze of 
> null/nil semantics. These are choices for the protocol to make, say 
> I.
> 
> 
I think - but I'm not absolutely sure - that the question has already 
been settled.

In RFC2244, section 3.4, which is the authoritative definition of 
comparators:

1) "i;octet" specifically states that NIL is equal only to itself. 
(Second paragraph in its definition, last sentence)

2) "i;ascii-casemap" specifically states that it applies a mapping 
then does "i;octet". So NIL==NIL again.

3) "i;ascii-numeric" then complicates my argument, because "All 
values which do not begin with a US-ASCII digit are considered equal 
with an ordinal value higher than all non-NIL single-valued 
attributes" - that certainly seems to mean "fish" == "bicycle", but 
I'm not sure if it means "fish" != NIL or "fish" == NIL. It says 
nothing to me about whether NIL == NIL.

> Instead, I think I'll add a fourth operator, valid, which indicates 
> whether a given string is valid input for the collation. It's not 
> really necessary. indomain(a) is true if and only if a=a. But it 
> sounds sensible. Permits protocols to differentiate between one and 
> two invalid inputs if they want to, without resorting to hacks like 
> a=a.

I'm entirely happy to have an additional operator, however, I'd 
prefer to standardize the behaviour somewhat. In particular, I'd 
quite like it settled as to whether NIL==NIL in general, and whether 
invalid input is equal to NIL - at the very least as a default.

Dave.
-- 
           You see things; and you say "Why?"
   But I dream things that never were; and I say "Why not?"
    - George Bernard Shaw

Date: Wed, 10 May 2006 21:09:17 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked]
Subject: Re: comparators and "error"
Cc: Alexey Melnikov <[email-masked]>, Dave Cridland <[email-masked]>
Sender: [email-masked]

Dave Cridland writes:
> I'm really not so sure. On the face of it, it sounds like bad design, 
> but I think there's at least two cases here - an attempt to compare 
> "fish" and "bicycle", and an attempt to compare "fish" and "2". I 
> have a feeling this is an important distinction.

It is precisely the distinction between "neither input is valid" and 
"one input is valid, the other not".

> Arguably, "fish" is equal in numeric value to "bicycle" - they both 
> have no numeric value, so it's the same as comparing NIL and NIL with 
> "i;octet".

Or as comparing null with null in SQL.

> Equally, "2" has a numeric value of 2, whereas "fish" does not, so 
> they are unequal - like comparing NIL and an existing string with 
> "i;octet".

Or as comparing 2 with null in SQL. And wouldn't you know, SQL is 
different from ACAP in this respect.

x=> select 42 as answer where 2=2;
  answer
--------
      42
(1 row)

x=> select 42 as answer where 2!=0;
  answer
--------
      42
(1 row)

Makes sense so far? Let's compare things with null a little:

x=> select 42 as answer where 2=null;
  answer
--------
(0 rows)

x=> select 42 as answer where 2!=null;
  answer
--------
(0 rows)

x=> select 42 as answer where not(2=null);
  answer
--------
(0 rows)

x=> select 42 as answer where null=null;
  answer
--------
(0 rows)

I'd rather not venture into this dark and confusing maze of null/nil 
semantics. These are choices for the protocol to make, say I.

Instead, I think I'll add a fourth operator, valid, which indicates 
whether a given string is valid input for the collation. It's not 
really necessary. indomain(a) is true if and only if a=a. But it sounds 
sensible. Permits protocols to differentiate between one and two 
invalid inputs if they want to, without resorting to hacks like a=a.

Arnt

Date: Wed, 10 May 2006 18:30:19 +0100
Subject: Re: comparators and "error"
From: Dave Cridland <[email-masked]>
To: Alexey Melnikov <[email-masked]>
Cc: <[email-masked]>, Arnt Gulbrandsen <[email-masked]>
Sender: [email-masked]

On Wed May 10 15:02:40 2006, Alexey Melnikov wrote:
> 
> Arnt Gulbrandsen wrote:
> 
>> I've been doing some editing on the draft, trying out how some 
>> things suggested look in prose.
>> 
>> 1. It seems useful to me that e.g. ascii-numeric can distinguish 
>> between comparing nonequal numbers and comparing out-of-scope 
>> input.
>> 
>> Take the equality operation as an example:
>> 
>> "Match" means that the collation knows how to work on the input, 
>> and the two inputs are equal as defined by the collation.
>> "No-match" means that the collation knows how, and the two are 
>> unequal.
>> "Error" means that it doesn't know how to.
>> 
>> Conflating the two latter cases smells of bad design to me, even 
>> though the difference may not be useful in every case.
> 
> I agree.
> 
> 
I'm really not so sure. On the face of it, it sounds like bad design, 
but I think there's at least two cases here - an attempt to compare 
"fish" and "bicycle", and an attempt to compare "fish" and "2". I 
have a feeling this is an important distinction.

Arguably, "fish" is equal in numeric value to "bicycle" - they both 
have no numeric value, so it's the same as comparing NIL and NIL with 
"i;octet".

Equally, "2" has a numeric value of 2, whereas "fish" does not, so 
they are unequal - like comparing NIL and an existing string with 
"i;octet".

Dave.
-- 
           You see things; and you say "Why?"
   But I dream things that never were; and I say "Why not?"
    - George Bernard Shaw

Date: Wed, 10 May 2006 16:20:46 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked]
Subject: Re: comparators and "error"
Cc: Alexey Melnikov <[email-masked]>
Sender: [email-masked]

Alexey Melnikov writes:
> Arnt Gulbrandsen wrote:
>> 2. Even though a collation specification distinguishes between 
>> "no-match" and "error", there's no requirement that all protocols 
>> must. If the distinction between "no-match" and "error" is pointless 
>> in e.g. sieve, can't simply sieve treat the two as equal? Ie. 
>> "match" is true, "no-match" is false and "error" is false?
>
> Yes, that is a possibility.
>
> Maybe we should add a new match type :failedmatch which can help 
> distinguish the no-match case from the error?

Mark Davis suggested renaming "error" as "undefined". I disagreed then, 
but I think I agree now.

Arnt

Date: Wed, 10 May 2006 15:02:40 +0100
From: Alexey Melnikov <[email-masked]>
To: Arnt Gulbrandsen <[email-masked]>
CC: [email-masked]
Subject: Re: comparators and "error"
Sender: [email-masked]

Arnt Gulbrandsen wrote:

> I've been doing some editing on the draft, trying out how some things 
> suggested look in prose.
>
> 1. It seems useful to me that e.g. ascii-numeric can distinguish 
> between comparing nonequal numbers and comparing out-of-scope input.
>
> Take the equality operation as an example:
>
> "Match" means that the collation knows how to work on the input, and 
> the two inputs are equal as defined by the collation.
> "No-match" means that the collation knows how, and the two are unequal.
> "Error" means that it doesn't know how to.
>
> Conflating the two latter cases smells of bad design to me, even 
> though the difference may not be useful in every case.

I agree.

> 2. Even though a collation specification distinguishes between 
> "no-match" and "error", there's no requirement that all protocols 
> must. If the distinction between "no-match" and "error" is pointless 
> in e.g. sieve, can't simply sieve treat the two as equal? Ie. "match" 
> is true, "no-match" is false and "error" is false?

Yes, that is a possibility.

Maybe we should add a new match type :failedmatch which can help 
distinguish the no-match case from the error?

Date: Wed, 10 May 2006 15:08:53 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked], [email-masked]
Subject: Re: draft-newman-i18n-collation-09.txt just posted
Cc: Mark Davis <[email-masked]>, [email-masked]
Sender: [email-masked]

Mark Davis writes:
> The release of this is timely (we didn't get notified of a 07 or 08 
> draft), since the Unicode Technical Committee is meeting next week, 
> and can discuss it.
>
> Could you indicate which of the items raised in the email of 
> 2006-02-21 from the Unicode Technical Committee have been addressed 
> in this release (and if not accepted then why)? That would help 
> greatly with the review. (I couldn't find any archive for discussion 
> of draft-newman-i18n-comparator where that email could be publicly 
> linked from, so I am appending it at the end of this message.) At a 
> quick glance, it appears that a number of comments have been 
> incorporated.

Lots. Some not. See below.

It is possible that some of my changes don't satisfy you. I had 
conflicting requests for many things. Feel free to repeat, rephrase or 
add arguments.

> Mark
>
> BTW, despite the subject of the message, the document is at 
> http://www.ietf.org/internet-drafts/draft-newman-i18n-comparator-09.txt. 
> It helps to send out a link, especially if the name (comparator vs 
> collation) is wrong ;-)

Mea culpa. My apologies.

...
>> To:   Network Working Group
>> Re:   draft-newman-i18n-comparator
>> Date:         2006-02-21
>> From:         Unicode Technical Committee
>>
>> The Unicode Technical Committee has reviewed the document 
>> http://www.ietf.org/internet-drafts/draft-newman-i18n-comparator-06.txt. 
>> While UTC is in favor of the goal, there are a number of problems 
>> with the document. The main problems are outlined below. Once these 
>> are addressed, then further review can continue.
>>
>>     Details
>>
>>       > 2.1 Definitions
>>
>>         Content
>>
>> The document needs to include the definitions of the technical terms 
>> used in the document,  including all those that may not be familiar 
>> to implementers, such as "trichotomous" and "collation identifiers". 
>> In particular, the notion of a substring is /prima facie/ quite 
>> simple, but there are complications that require a clear definition. 
>> The text in the document does not make clear that there may be more 
>> than one match for a substring in a string, and that the matches can 
>> overlap. It says "the starting offset", for example, when there may 
>> be multiple ones.

Changed.

>> Moreover, language sensitive matches have additional complications 
>> which need to be called out. For more information, see 
>> http://www.unicode.org/reports/tr10/#Searching

Not really changed. As I recall, I added a little bit of text.

>>         Format
>>
>> If there is a "Definitions" section, readers have a reasonable 
>> expectation that that section should contain all the required 
>> definitions. However, a number of definitions are scattered within 
>> the text. One of two approaches should be taken
>>
>>    1. Move all the definitions into this section.
>>    2. Remove the definitions section, but clearly call out in the text
>>       the definitions of  each terms on its own line.
>>
>> Mixing these two styles is needlessly confusing for readers.

Not changed; I'm going by what confuses reviewers.

>>       > 2.4 Sort Keys
>>
>> The use of the term "collation canonicalization" to refer to sort 
>> keys is very misleading. ...

Changed; the text now speaks of sort keys. I'm afraid there still are 
instances of the old term around, I found one today.

>> > 3.2
>>
>> This specifies that clients that support disconnected operation 
>> should not use wildcards while clients that provide collation 
>> operations only when connected to the server may use wildcards.

This restrinction has been lifted.

>> The EBNF syntax shown in section 3.2 says that the collation-wild 
>> must not exceed 255 characters total while the section 3.1 specifies 
>> that the collation name must not exceed 254 characters.

Brought into sync.

>> It seems having the same maximum possible length for both collation 
>> name and wildcard string would be desirable for actual 
>> implementations.

I picked 254, not 255, but I confess I cannot remember why.

>>       > 4.2.1 Equality
>>
>> It needs to be made clear that the return values are not physically 
>> the strings "match", etc. but enumerated values such as /equal/ and  
>> /not_equal/.

Changed. Also other similar changes.

>> One extremely important point is that for a given comparator, the 
>> equality function must be synchronized with the ordering function.

I've done this and all the other equivalences/connections/implications I 
could see.

>> The term 'error' is also problematic, since what is really at issue 
>> is a question of domain. For all those strings in the domain, either 
>> 'equal' or 'not_equal' should be returned from the equality 
>> function. For any string not in the domain, 'undefined' should be 
>> returned.

Not changed. Back in February, I agreed that "error" was not ideal, but 
did not see "undefined" as better, and could not find a really apt 
term. The collations were a little too well-defined in the "undefined" 
cases then.

However, in -10, I think they really will be undefined outside their 
domain, so I'll change to using "undefined" instead of "error". (I'm 
removing the bits that fall back to i;octet.)

>> There is a typo at the 4'th line of the second paragraph of the 
>> section 4.2 saying "... For example, an collation" which should be 
>> changed to "... For example, a collation" instead.

Fixed.

>>       > 4.2.2 Substring
>>
>> Prefix and suffix matching are not fully spelled out.

I think they are now.

>> The operations and their results must be clarified. And as noted 
>> before, it is very important to precisely define the substring 
>> operations, especially the starting offset and ending offset. It 
>> also must be clarified whether what is being asked for is the first 
>> possible matching location in the string, the last, or the nth one.

Partly changed. I didn't do the bits you ask for in the last sentence. I 
can add an open issue.

>>       > 4.3.3 Ordering
>>
>> > It MUST be transitive and trichotomous.
>>
>> As above, these should be defined.

I did not, since I think this document is the wrong place to define 
these terms.

>> The exposition in this section would be simpler if you also defined 
>> "reversible", whereby f(a,b) = less iff f(b,a) = greater.

The exposition changed enough as a result of other commens that I 
isregarded this comment.

>> An 'undefined' value can be allowed if, as per equality above, it 
>> means that at least one of the operands is outside of the domain. 
>> The function then imposes a total order on all strings in the 
>> domain; moreover, a wrapper can easily convert the function to a 
>> total order over all strings by putting all items outside the domain 
>> either below or above the ones in the domain -- or even excluding 
>> them,/ at its choice./

I'm doing something like this in -10. (Removing the fallback to i;octet.)

>> [Note: it is very important to avoid the confusion between 
>> "identical" and "equal". According to a caseless compare, "Mark" and 
>> "mark" are equal; however, the strings are not identical.]

Changed all over the place.

>> [Either 'ordering function' or 'comparison function' should be used 
>> consistently, not sometimes 'collations'].

Changed.

>>       > 4.3.  Internal Canonicalization Algorithm
>>
>> This section is difficult to understand.

Changed; I hope the new text is better.

>>       > 4.4.  Use of Lookup Tables
>>
>> It is not at all clear what is meant by "customizable lookup tables".

Clarified and partly removed.

>>       > 4.5.  Multi-Value Attributes
>>
>> This is very unclear.

Deleted.

>> This is a very important feature that needs to be spelled out in 
>> detail, and clearly reflected in the template for registration. In 
>> particular, the template should have provision for multiple 
>> attributes, with the ability to specify the acceptable operands for 
>> that attribute. (See below). The specification of the operands could 
>> be either a list of values, or a regular expression (with the former 
>> preferred). Suggested regular expression syntax would be Perl or XML 
>> Schema.

I asked Martin Dürst and you to provide a new DTD. Martin said okay, I 
don't remember whether you answered. I think the DTD should come before 
this.

>>       > 5.1Character Encoding
>>
>>    The protocol specification has to make sure that it is clear on which
>>    characters (rather than just octets) the collations are used.  This
>>    can be done by specifying the protocol itself in terms of characters
>>    (e.g. in the case of a query language), by specifying a single
>>    character encoding for the protocol (e.g.  UTF-8 [3]), or by
>>    carefully describing the relevant issues of character encoding
>>    labeling and conversion.  In the later case, details to consider
>>    include how to handle unknown charsets, any charsets which are
>>    mandatory-to-implement, any issues with byte-order that might apply,
>>    and any transfer encodings which need to be supported.
>>
>> If a collation is able to advertise itself as being able to handle, 
>> say, SJIS and UTF-8, then there should a required description of a 
>> protocol for indicating that and for communicating which encodings 
>> are handled, and how it handles error conditions (such as a charset 
>> outside of those it can handle. Otherwise, it is difficult to 
>> understand how this paragraph would be applied in practice.
>>
>>       > 5.3
>>
>> The section 5.3 specifies:
>>
>>     The protocol MUST specify how comparisons behave in the absence of
>>     explicit collation negotiation or when a collation of "*" is
>>     requested. The protocol MAY specify that the default collation
>>     used in such circumstances is sensitive to server configuration.
>>
>> and the section 3.2 specifies:
>>
>>     ... If the wildcard string matches multiple collations, the server
>>     SHOULD select the collation with the broadest scope (preferably
>>     international scope), the most recent table versions and the
>>     greatest number of supported operations. A single wildcard
>>     character ("*") refers to the application protocol collation
>>     behavior that would occur if no explicit negotiation were used.
>>
>> These appear inconsistent.

Changed.

>>       7.5.  Example Initial Registry Summary
>>
>> The sample registry would suffer a combinatorial explosion if 
>> parameters are not handled differently.
...

This is the DTD issue.

>> > 11.  Security Considerations
>>
>> This is insufficient. It should at least point to the problems 
>> related in UCA and in 
>> http://www.unicode.org/reports/tr36/tr36-4.html (note that that 
>> document has been approved by the UTC and will be posted as an 
>> approved version soon.)

It now refers.

>>     General
>>
>> One of the real problems with the IANA character registry is that the 
>> entries are underspecified. It quite often occurs that two vendors 
>> implement the same IANA charset conversion different ways, leading 
>> to significant interoperability problems and text corruption. See, 
>> for example, 
>> http://www.w3.org/Submission/japanese-xml/#ambiguity_of_yen.
>>
>> We have the real concern that this registry could lead down the same path.

Noted.

>> > collation, it has to say so
>>
>> There are places where the text should be clarified, as to whether a 
>> MUST or SHOULD is implied; this is just an example.
>>
>> > "comparator" vs "collator"
>>
>> Either one term or the other should be used consistently.

Collator, now.

>> > Unicode 3.2
>>
>> Unicode 3.2 is obsolete; the the reference versions for the Collation 
>> Registry should be Unicode 5.0 and UCA 5.0, since those will be 
>> approved and published by the time the Internet Application Protocol 
>> Collation Registry has completed its review and been approved.

I'll update to the then-current versions immediately before submitting 
the final draft as an RFC.

>> Because of the use of NamePrep, it is probably the case that Unicode 
>> 3.2 also needs to be included, but strongly recommended for usage 
>> only by protocols or systems dependent on NamePrep. Note that as of 
>> UCA 4.0 and beyond, the version number of UCA is guaranteed to be 
>> identical with the version number of Unicode that it is defined for.
>>
>> > Versioning
>>
>> This is tricky, and should be clarified. In many instances, it is 
>> sufficient to use an unversioned collator, such as simply "UCA". In 
>> other cases, there are requirements to use a specific version, or a 
>> version of at least X. This needs to be described.

IETF documents should have only immutable references. Thus, I can 
reference "UCAv14", but not "UCA", because the latter moves to v15, v16 
and onwards.

Arnt

Date: Wed, 10 May 2006 00:47:22 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked], [email-masked]
Subject: Re: draft-newman-i18n-collation-09.txt just posted
Cc: John Cowan <[email-masked]>, [email-masked]
Sender: [email-masked]

John Cowan writes:
> Arnt Gulbrandsen scripsit:
>>  As far as I know, this addresses, ignores or adds open issues for 
>>  all requests. If something is ignored, that's because other people 
>>  wanted the opposite, or because I overlooked it when I went over 
>>  all the mail this week. I'm sorry about it in either case.
>>
>>  Review, please.
>
> Posted where? Neither rfc-editor.org nor ietf.org seems to have it.

http://www.ietf.org/internet-drafts/draft-newman-i18n-comparator-09.txt 
has it. Sorry. I posted that only an hour or two after the i-d editor 
told me it was posted (at that URL), which must have been too quickly 
for most mirrors.

Arnt

Date: Tue, 09 May 2006 15:43:23 -0700
From: Mark Davis <[email-masked]>
To: Arnt Gulbrandsen <[email-masked]>
CC: [email-masked], [email-masked], [email-masked]
Subject: Re: draft-newman-i18n-collation-09.txt just posted
Sender: [email-masked]

The release of this is timely (we didn't get notified of a 07 or 08 
draft), since the Unicode Technical Committee is meeting next week, and 
can discuss it.

Could you indicate which of the items raised in the email of 2006-02-21 
from the Unicode Technical Committee have been addressed in this release 
(and if not accepted then why)? That would help greatly with the review. 
(I couldn't find any archive for discussion of 
draft-newman-i18n-comparator where that email could be publicly linked 
from, so I am appending it at the end of this message.) At a quick 
glance, it appears that a number of comments have been incorporated.

Mark

BTW, despite the subject of the message, the document is at 
http://www.ietf.org/internet-drafts/draft-newman-i18n-comparator-09.txt. 
It helps to send out a link, especially if the name (comparator vs 
collation) is wrong ;-)

BTW, it was pointed out to us that the original email shouldn't have 
been sent to "Network Working Group", even though that is the name at 
the top of 
http://www.ietf.org/internet-drafts/draft-newman-i18n-comparator-09.txt

Arnt Gulbrandsen wrote:
>
> As far as I know, this addresses, ignores or adds open issues for all 
> requests. If something is ignored, that's because other people wanted 
> the opposite, or because I overlooked it when I went over all the mail 
> this week. I'm sorry about it in either case.
>
> Review, please.
>
> Arnt

=================

Mark Davis wrote:
> To: 	Network Working Group
> Re: 	draft-newman-i18n-comparator
> Date: 	2006-02-21
> From: 	Unicode Technical Committee
>
> The Unicode Technical Committee has reviewed the document 
> http://www.ietf.org/internet-drafts/draft-newman-i18n-comparator-06.txt. 
> While UTC is in favor of the goal, there are a number of problems with 
> the document. The main problems are outlined below. Once these are 
> addressed, then further review can continue.
>
>
>     Details
>
>
>       > 2.1 Definitions
>
>
>         Content
>
> The document needs to include the definitions of the technical terms 
> used in the document,  including all those that may not be familiar to 
> implementers, such as "trichotomous" and "collation identifiers". In 
> particular, the notion of a substring is /prima facie/ quite simple, 
> but there are complications that require a clear definition. The text 
> in the document does not make clear that there may be more than one 
> match for a substring in a string, and that the matches can overlap. 
> It says "the starting offset", for example, when there may be multiple 
> ones.
>
> Moreover, language sensitive matches have additional complications 
> which need to be called out. For more information, see 
> http://www.unicode.org/reports/tr10/#Searching
>
>
>         Format
>
> If there is a "Definitions" section, readers have a reasonable 
> expectation that that section should contain all the required 
> definitions. However, a number of definitions are scattered within the 
> text. One of two approaches should be taken
>
>    1. Move all the definitions into this section.
>    2. Remove the definitions section, but clearly call out in the text
>       the definitions of  each terms on its own line.
>
> Mixing these two styles is needlessly confusing for readers.
>
>
>       > 2.4 Sort Keys
>
> The use of the term "collation canonicalization" to refer to sort keys 
> is very misleading. The term "canonicalization" implies that the 
> results are still text in some fashion, whereas a sortkey is simply a 
> string of octets generated from a given string by a specific 
> comparator, whereby the binary comparison (ordering) of two sort keys 
> is guaranteed to match *that* comparator's compare function for the 
> original strings. The octets may have no readily discernable relation 
> to the original text. For example, the ICU sort keys generated for the 
> following strings are:
>
> cote 	2c 44 4e 30 01 08 01 08 00
> cÃ´tÃ© 	2c 44 4e 30 01 85 93 85 8d 01 0a 00
> Î‘ÏÎ±Î²Î¹ÎºÎ¬ 	5c 20 52 20 22 36 3a 20 01 80 8d 01 8f 0b 00
>
> See 
> http://www-950.ibm.com/software/globalization/icu/demo/locales/en/?_=el&d_=en&x=col 
> <http://www-950.ibm.com/software/globalization/icu/demo/locales/en/?_=el&d_=en&x=col> 
> for other examples.
>
> > 3.2
>
> This specifies that clients that support disconnected operation should 
> not use wildcards while clients that provide collation operations only 
> when connected to the server may use wildcards.
>
> It appears the restrictions are may not be really needed and the 
> restrictions may need to be deleted from the draft. Otherwise, it 
> would really helpful if the rationale behind the restrictions are 
> provided at the draft.
>
> The EBNF syntax shown in section 3.2 says that the collation-wild must 
> not exceed 255 characters total while the section 3.1 specifies that 
> the collation name must not exceed 254 characters.
>
> It seems having the same maximum possible length for both collation 
> name and wildcard string would be desirable for actual implementations.
>
>
>       > 4.2.1 Equality
>
> It needs to be made clear that the return values are not physically 
> the strings "match", etc. but enumerated values such as /equal/ and  
> /not_equal/. The document could describe a notation used for them, 
> such as single quotes, since italic is not available in RFCs. 
> Similarly, the results of the ordering function should be specified as 
> an enumeration with three values: /less/, /equal/, /greater./ The 
> mapping actual API return values in implementations to these 
> enumerated values can be outside of the scope of this document. For 
> example, the mapping might take -1 onto /less/ in one implementation, 
> or anything negative onto /less/ in another implementation.
>
> One extremely important point is that for a given comparator, the 
> equality function must be synchronized with the ordering function. 
> That is, it must return 'equal' if and only if the ordering function 
> returns 'equal'. Otherwise any coordinated usage of the functions will 
> fail. This also implies that either 'error' is allowed for both 
> functions or for neither.
>
> The term 'error' is also problematic, since what is really at issue is 
> a question of domain. For all those strings in the domain, either 
> 'equal' or 'not_equal' should be returned from the equality function. 
> For any string not in the domain, 'undefined' should be returned. That 
> avoids coherency problems. Then the requirements are clear:
>
>     * if A and B are in the domain, then the result of an equality
>       test is either /equal/ or /not_equal/
>     * if A or B (or both) are not in the domain, then the result of an
>       equality test is /undefined/.
>
> There is a typo at the 4'th line of the second paragraph of the 
> section 4.2 saying "... For example, an collation" which should be 
> changed to "... For example, a collation" instead.
>
>
>       > 4.2.2 Substring
>
> Prefix and suffix matching are not fully spelled out. The operations 
> and their results must be clarified. And as noted before, it is very 
> important to precisely define the substring operations, especially the 
> starting offset and ending offset. It also must be clarified whether 
> what is being asked for is the first possible matching location in the 
> string, the last, or the nth one.
>
>
>       > 4.3.3 Ordering
>
> > It MUST be transitive and trichotomous.
>
> As above, these should be defined. The exposition in this section 
> would be simpler if you also defined "reversible", whereby f(a,b) = 
> less iff f(b,a) = greater. Then the statement would be:
>
>     It MUST be transitive, trichotomous, and reversible.
>
> >When the collation is used with a
>    "-" prefix, the result of the ordering function of the collation MUST
>    be reversed.
>
> => When the collation is used with a
>    "-" prefix, the result of the ordering function of the collation 
> when applied to two strings A and B  MUST
>    be the same as the result with a "+" prefix applied to B and A.
>
> An 'undefined' value can be allowed if, as per equality above, it 
> means that at least one of the operands is outside of the domain. The 
> function then imposes a total order on all strings in the domain; 
> moreover, a wrapper can easily convert the function to a total order 
> over all strings by putting all items outside the domain either below 
> or above the ones in the domain -- or even excluding them,/ at its 
> choice./
>
>  > In general, collations SHOULD NOT return "0" unless the two strings 
> are identical.
>
> => The ordering function MUST return 'equal' if and only if the equality function returns 'equal'
>
> [Note: it is very important to avoid the confusion between "identical" 
> and "equal". According to a caseless compare, "Mark" and "mark" are 
> equal; however, the strings are not identical.]
>
> [Either 'ordering function' or 'comparison function' should be used 
> consistently, not sometimes 'collations'].
>
>
>       > 4.3.  Internal Canonicalization Algorithm
>
> This section is difficult to understand. It appears that goal is that 
> any registration must specify sufficient detail, both data and 
> algorithm, so as to enable someone to reproduce the results. But it is 
> not at all clear that that is the goal. And that would make the 
> registration require, in some cases, a huge accompanying document. To 
> duplicate the results of CLDR collators, for example, would require 
> the UCA specification, plus the LDML specification, plus all the 
> relevant data in the CLDR repository.
>
>
>       > 4.4.  Use of Lookup Tables
>
> It is not at all clear what is meant by "customizable lookup tables".
>
>
>       > 4.5.  Multi-Value Attributes
>
> This is very unclear. It describes attributes as applying to only 
> equality (since it only refers to "match" vs "no-match" (and 
> forgetting "error")).
>
> This is a very important feature that needs to be spelled out in 
> detail, and clearly reflected in the template for registration. In 
> particular, the template should have provision for multiple 
> attributes, with the ability to specify the acceptable operands for 
> that attribute. (See below). The specification of the operands could 
> be either a list of values, or a regular expression (with the former 
> preferred). Suggested regular expression syntax would be Perl or XML 
> Schema.
>
>
>       > 5.1Character Encoding
>
>    The protocol specification has to make sure that it is clear on which
>    characters (rather than just octets) the collations are used.  This
>    can be done by specifying the protocol itself in terms of characters
>    (e.g. in the case of a query language), by specifying a single
>    character encoding for the protocol (e.g.  UTF-8 [3]), or by
>    carefully describing the relevant issues of character encoding
>    labeling and conversion.  In the later case, details to consider
>    include how to handle unknown charsets, any charsets which are
>    mandatory-to-implement, any issues with byte-order that might apply,
>    and any transfer encodings which need to be supported.
>
> If a collation is able to advertise itself as being able to handle, 
> say, SJIS and UTF-8, then there should a required description of a 
> protocol for indicating that and for communicating which encodings are 
> handled, and how it handles error conditions (such as a charset 
> outside of those it can handle. Otherwise, it is difficult to 
> understand how this paragraph would be applied in practice.
>
>
>       > 5.3
>
> The section 5.3 specifies:
>
>     The protocol MUST specify how comparisons behave in the absence of
>     explicit collation negotiation or when a collation of "*" is
>     requested. The protocol MAY specify that the default collation
>     used in such circumstances is sensitive to server configuration.
>
> and the section 3.2 specifies:
>
>     ... If the wildcard string matches multiple collations, the server
>     SHOULD select the collation with the broadest scope (preferably
>     international scope), the most recent table versions and the
>     greatest number of supported operations. A single wildcard
>     character ("*") refers to the application protocol collation
>     behavior that would occur if no explicit negotiation were used.
>
> These appear inconsistent.
>
>
>       7.5.  Example Initial Registry Summary
>
> The sample registry would suffer a combinatorial explosion if 
> parameters are not handled differently. For example, with CLDR 
> collations, there can be hundreds of locales, six different strength 
> settings; four different case-first settings; three different 
> alternate settings, backwards settings, normalization settings, case 
> level settings, hiragana settings, and numeric settings; plus a 
> variable-top setting which has a string as an operand. Registering the 
> combinations that people are allowed to use would be untenable.
>
> http://www.unicode.org/draft/reports/tr35/tr35.html#Setting_Options
>
> Instead, as remarked above, the allowable attribute values need to be 
> associated with the registered name in a machine-readable form.
>
> > 11.  Security Considerations
>
> This is insufficient. It should at least point to the problems related 
> in UCA and in http://www.unicode.org/reports/tr36/tr36-4.html (note 
> that that document has been approved by the UTC and will be posted as 
> an approved version soon.)
>
>
>     General
>
> One of the real problems with the IANA character registry is that the 
> entries are underspecified. It quite often occurs that two vendors 
> implement the same IANA charset conversion different ways, leading to 
> significant interoperability problems and text corruption. See, for 
> example, http://www.w3.org/Submission/japanese-xml/#ambiguity_of_yen.
>
> We have the real concern that this registry could lead down the same path.
>
> > collation, it has to say so
>
> There are places where the text should be clarified, as to whether a 
> MUST or SHOULD is implied; this is just an example.
>
> > "comparator" vs "collator"
>
> Either one term or the other should be used consistently.
>
> > Unicode 3.2
>
> Unicode 3.2 is obsolete; the the reference versions for the Collation 
> Registry should be Unicode 5.0 and UCA 5.0, since those will be 
> approved and published by the time the Internet Application Protocol 
> Collation Registry has completed its review and been approved.
>
> Because of the use of NamePrep, it is probably the case that Unicode 
> 3.2 also needs to be included, but strongly recommended for usage only 
> by protocols or systems dependent on NamePrep. Note that as of UCA 4.0 
> and beyond, the version number of UCA is guaranteed to be identical 
> with the version number of Unicode that it is defined for.
>
> > Versioning
>
> This is tricky, and should be clarified. In many instances, it is 
> sufficient to use an unversioned collator, such as simply "UCA". In 
> other cases, there are requirements to use a specific version, or a 
> version of at least X. This needs to be described.
>

Date: Tue, 9 May 2006 16:45:02 -0400
To: Arnt Gulbrandsen <[email-masked]>
Cc: [email-masked], [email-masked], [email-masked]
Subject: Re: draft-newman-i18n-collation-09.txt just posted
From: John Cowan <[email-masked]>
Sender: [email-masked]

Arnt Gulbrandsen scripsit:

> As far as I know, this addresses, ignores or adds open issues for all 
> requests. If something is ignored, that's because other people wanted 
> the opposite, or because I overlooked it when I went over all the mail 
> this week. I'm sorry about it in either case.
> 
> Review, please.

Posted where?  Neither rfc-editor.org nor ietf.org seems to have it.

-- 
John Cowan  [email-masked]  http://ccil.org/~cowan
The penguin geeks is happy / As under the waves they lark
The closed-source geeks ain't happy / They sad cause they in the dark
But geeks in the dark is lucky / They in for a worser treat
One day when the Borg go belly-up / Guess who wind up on the street.

Date: Tue, 9 May 2006 22:14:28 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked], [email-masked], [email-masked]
Subject: draft-newman-i18n-collation-09.txt just posted
Sender: [email-masked]

As far as I know, this addresses, ignores or adds open issues for all 
requests. If something is ignored, that's because other people wanted 
the opposite, or because I overlooked it when I went over all the mail 
this week. I'm sorry about it in either case.

Review, please.

Arnt

To: IETF-Announce <[email-masked]>
From: The IESG <[email-masked]>
Subject: Last Call: 'Sieve Email Filtering -- Subaddress Extension' to Proposed  Standard (draft-ietf-sieve-rfc3598bis) 
Reply-to: [email-masked]
CC: <[email-masked]>
Date: Tue, 09 May 2006 10:43:15 -0400
Sender: [email-masked]

The IESG has received a request from the Sieve Mail Filtering Language WG to 
consider the following document:

- 'Sieve Email Filtering -- Subaddress Extension '
   <draft-ietf-sieve-rfc3598bis-04.txt> as a Proposed Standard

The IESG plans to make a decision in the next few weeks, and solicits
final comments on this action.  Please send any comments to the
[email-masked] or [email-masked] mailing lists by 2006-05-23.

The file can be obtained via
http://www.ietf.org/internet-drafts/draft-ietf-sieve-rfc3598bis-04.txt

Date: Thu, 04 May 2006 20:35:51 +0100
Subject: Re: I-D ACTION:draft-ietf-sieve-notify-xmpp-00.txt 
From: Dave Cridland <[email-masked]>
To: <[email-masked]>
Sender: [email-masked]

On Wed Jan 18 21:50:02 2006, [email-masked] wrote:
> 	Title		: Sieve Notification Mechanism: xmpp
> 	Author(s)	: P. Saint-Andre, A. Melnikov
> 	Filename	: draft-ietf-sieve-notify-xmpp-00.txt
> 	Pages		: 7
> 	Date		: 2006-1-18

I think I might be the first person to comment about this on the 
list...

It seems odd that the XMPP message stanza used here has no obvious 
identification as a notification - specifically, XMPP, being XML 
based, could hold (for instance) an OMA EMN, or some other XML 
element which indicated that it was a notification, and ideally 
provided some identification of what the account involved was.

Personally, I'd be happiest with a URI to the new message, where 
possible, but i appreciate there's security concerns there.

If such an XML element were to be put in place, I'd find it nicer it 
it contained the urgency as a normal XML attribute, rather than SHIM. 
I just don't like SHIM.

Dave.
-- 
           You see things; and you say "Why?"
   But I dream things that never were; and I say "Why not?"
    - George Bernard Shaw

Date: Tue, 02 May 2006 20:49:48 +0100
Subject: Re: comparators and "error"
From: Dave Cridland <[email-masked]>
To: Arnt Gulbrandsen <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

On Tue May  2 16:43:44 2006, Arnt Gulbrandsen wrote:
> 2. Even though a collation specification distinguishes between 
> "no-match" and "error", there's no requirement that all protocols 
> must. If the distinction between "no-match" and "error" is 
> pointless in e.g. sieve, can't simply sieve treat the two as equal? 
> Ie. "match" is true, "no-match" is false and "error" is false?

I need to think on your argument some more, but note that there's two 
forms of "error"

A) You tried to compare a valid input string against an invalid input 
string.

B) You tried to compare two invalid input strings.

It's only case A that's really occured much in the wild, and that's 
because only one mechanism - Sieve variables - allows for that case 
to happen except in moments of silliness.

Specifically, one operand for a comparator is usually provided by the 
client (in ACAP) or the script creator (in Sieve). With Sieve 
variables, both can be derived from the message, which presumably 
isn't known in advance.

I suspect that for Sieve, case A is obviously not a fatal error, and 
probably indicates a non-match. Case B is a little trickier - there's 
a reasonable argument that it ought to result in a match. ("Blue" and 
"Yellow" do have equally non-existent numeric value, after all, and 
they collate equally at the end, and "i;octet" has that funny bit 
about the equality of two NIL values in ACAP, which of course you're 
all familiar with.)

Dave.
-- 
           You see things; and you say "Why?"
   But I dream things that never were; and I say "Why not?"
    - George Bernard Shaw

Date: Tue, 2 May 2006 17:43:44 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked]
Subject: comparators and "error"
Sender: [email-masked]

I've been doing some editing on the draft, trying out how some things 
suggested look in prose.

1. It seems useful to me that e.g. ascii-numeric can distinguish between 
comparing nonequal numbers and comparing out-of-scope input.

Take the equality operation as an example:

"Match" means that the collation knows how to work on the input, and the 
two inputs are equal as defined by the collation.
"No-match" means that the collation knows how, and the two are unequal.
"Error" means that it doesn't know how to.

Conflating the two latter cases smells of bad design to me, even though 
the difference may not be useful in every case.

2. Even though a collation specification distinguishes between 
"no-match" and "error", there's no requirement that all protocols must. 
If the distinction between "no-match" and "error" is pointless in e.g. 
sieve, can't simply sieve treat the two as equal? Ie. "match" is true, 
"no-match" is false and "error" is false?

Arnt