[usefor] [Errata Verified] RFC5536 (5116)

RFC Errata System <rfc-editor@rfc-editor.org> Wed, 27 September 2017 17:23 UTC

Return-Path: <wwwrun@rfc-editor.org>
X-Original-To: usefor@ietfa.amsl.com
Delivered-To: usefor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 58E6E134E98; Wed, 27 Sep 2017 10:23:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level:
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9MrMQjKQ2wi7; Wed, 27 Sep 2017 10:23:50 -0700 (PDT)
Received: from rfc-editor.org (rfc-editor.org [4.31.198.49]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C345B134E90; Wed, 27 Sep 2017 10:23:50 -0700 (PDT)
Received: by rfc-editor.org (Postfix, from userid 30) id B684BB80379; Wed, 27 Sep 2017 10:23:23 -0700 (PDT)
To: pkyzivat@alum.mit.edu, murch@andrew.cmu.edu, chl@clerew.man.ac.uk, dan@dankohn.com
X-PHP-Originating-Script: 30:errata_mail_lib.php
From: RFC Errata System <rfc-editor@rfc-editor.org>
Cc: aamelnikov@fastmail.fm, iesg@ietf.org, usefor@ietf.org, rfc-editor@rfc-editor.org
Content-Type: text/plain; charset="UTF-8"
Message-Id: <20170927172323.B684BB80379@rfc-editor.org>
Date: Wed, 27 Sep 2017 10:23:23 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/usefor/_EOw2wmtY89vCf6--2XfjGREHr8>
Subject: [usefor] [Errata Verified] RFC5536 (5116)
X-BeenThere: usefor@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "Ongoing discussion of usefor issues." <usefor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/usefor>, <mailto:usefor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/usefor/>
List-Post: <mailto:usefor@ietf.org>
List-Help: <mailto:usefor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/usefor>, <mailto:usefor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 27 Sep 2017 17:23:52 -0000

The following errata report has been verified for RFC5536,
"Netnews Article Format". 

--------------------------------------
You may review the report below and at:
http://www.rfc-editor.org/errata/eid5116

--------------------------------------
Status: Verified
Type: Technical

Reported by: Paul Kyzivat <pkyzivat@alum.mit.edu>
Date Reported: 2017-09-14
Verified by: Alexey Melnikov (IESG)

Section: 3

Original Text
-------------
   fields          =/ *( approved /
                         archive /
                         control /
                         distribution /
                         expires /
                         followup-to /
                         injection-date /
                         injection-info /
                         lines /
                         newsgroups /
                         organization /
                         path /
                         summary /
                         supersedes /
                         user-agent /
                         xref )


Corrected Text
--------------
   optional-field  = <see RFC 5322 Section 3.6.8>

   news-fields     =  approved /
                      archive /
                      control /
                      distribution /
                      expires /
                      followup-to /
                      injection-date /
                      injection-info /
                      lines /
                      newsgroups /
                      organization /
                      path /
                      summary /
                      supersedes /
                      user-agent /
                      xref

   optional-field  =/    news-fields


Notes
-----
In Section 3 of RFC5536, the ABNF syntax provided does not do what is clearly intended. What is specified is:

    fields          =/ *( approved /
                          archive /
                          control /
                          distribution /
                          expires /
                          followup-to /
                          injection-date /
                          injection-info /
                          lines /
                          newsgroups /
                          organization /
                          path /
                          summary /
                          supersedes /
                          user-agent /
                          xref )

and that extends RFC5322:

    fields          =   *(trace
                          *optional-field /
                          *(resent-date /
                           resent-from /
                           resent-sender /
                           resent-to /
                           resent-cc /
                           resent-bcc /
                           resent-msg-id))
                        *(orig-date /
                        from /
                        sender /
                        reply-to /
                        to /
                        cc /
                        bcc /
                        message-id /
                        in-reply-to /
                        references /
                        subject /
                        comments /
                        keywords /
                        optional-field)

    message         =   (fields / obs-fields)
                        [CRLF body]

The problem is with the way things are grouped. Let me give a simpler example:

    foo = *("a" / "b") / *("c" / "d")

This means the following are valid: ab aabb bab cd ccdd dcd
But the following are not: abcd ac

I think it is clear that the latter is intended to be valid, for which the syntax would be:

    foo = *("a" / "b" / "c" / "d")

It isn't easy to do a valid syntax extension that achieves this effect 
because of way the ABNF of RFC5322 is structured. However, after offline 
discussion, we realized that RFC5322 already has an extension point for 
new headers via the <optional-field> rule. Along with that, RFC3864 
established a process for registering header fields with IANA.

The above fix is based on discussion with Pete Resnick (editor of RFC 5322), Julien ÉLIE, Alexey Melnikov and Paul Kyzivat.

An alternative fix from Paul Kyzuvat is:

So, my recommendation is that to fix this, remove from section 3 the 
extension of the <fields> rule:

    fields          =/ *( approved / ...
                          xref )

Instead, simply rely on the text to specify the newly defined header 
fields, and the IANA registration to link them to RFC5322.


--------------------------------------
RFC5536 (draft-ietf-usefor-usefor-12)
--------------------------------------
Title               : Netnews Article Format
Publication Date    : November 2009
Author(s)           : K. Murchison, Ed., C. Lindsey, D. Kohn
Category            : PROPOSED STANDARD
Source              : Usenet Article Standard Update
Area                : Applications
Stream              : IETF
Verifying Party     : IESG