Re: [Tools-discuss] [rfc-i] What do do about SVG

Phillip Hallam-Baker <phill@hallambaker.com> Tue, 18 May 2021 15:22 UTC

Return-Path: <hallam@gmail.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 816C83A16FB for <tools-discuss@ietfa.amsl.com>; Tue, 18 May 2021 08:22:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.4
X-Spam-Level:
X-Spam-Status: No, score=-1.4 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.248, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no 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 b5nmrlybIEnj for <tools-discuss@ietfa.amsl.com>; Tue, 18 May 2021 08:22:01 -0700 (PDT)
Received: from mail-yb1-f175.google.com (mail-yb1-f175.google.com [209.85.219.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 864993A16FA for <tools-discuss@ietf.org>; Tue, 18 May 2021 08:22:01 -0700 (PDT)
Received: by mail-yb1-f175.google.com with SMTP id y2so13744800ybq.13 for <tools-discuss@ietf.org>; Tue, 18 May 2021 08:22:01 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=xcDvyPVTKgDMDJkfzVZ2gwGdaopJA5yVHJlXJ8Im338=; b=QhXDtl6p3Rgc0Ttnys8FtHRZt6zY6F2e+F/dKgZMCarIJzOSRjTNCeG0f4rsnYjj6w dcZVZzTsr/9eT1WHKF1WAsflpmsJdwimtizuQJSBiFxZZgC0KfZCgnySd703gT1ig3AZ WpCKy4m9EOwxA/2Xb+fOaRt6mwuWBaO4W4I/8vGDcXURozyG+O0ss8IV3cGvE56h3FjU /qu3uBuzVKUeZOB37kP3HN7FMU9ovMvgIZIbIzUhDbaunpI7NqGSAT+zjeW3JL3sYN4U HqJsd1YvVUjn2hyUCFGiExCr/t4BZJgWkVSbsWUfnLp6424z4nxg6owq5nBeb5zKk8Ep zMjg==
X-Gm-Message-State: AOAM533RrxyCRMAfijnPZ2TQoTO9tm+P/T8J5i0B9pt7zXx7lfFVjlgd FKMPs8cwEcfCiNA79KI0LQiFL26VPbikDMaT1GQ=
X-Google-Smtp-Source: ABdhPJzf4T63+kgsUBcnVVRdz6Xc0r+BgzkPseQ8wryE+ttnfGfbBMIBon6o1QUWD1MQkXnBo/7EnPb9ODaaPTXHsOo=
X-Received: by 2002:a25:ca92:: with SMTP id a140mr8554407ybg.273.1621351320397; Tue, 18 May 2021 08:22:00 -0700 (PDT)
MIME-Version: 1.0
References: <f564019-d8b1-76c2-2768-c135d834dc32@iecc.com> <763b8195-6139-fb20-aa4e-2b4d89b5681c@gmail.com> <75d1b100-e761-e9bb-2ae0-02266c86b499@it.aoyama.ac.jp> <6BDFA0EA-D6F1-4443-B771-9B1A0AD56713@tzi.org> <c6dc75da-0b88-bc68-39fe-17887411b97f@gmail.com> <550c00a4-171d-bf12-b1f5-51dcc639359c@gmail.com> <53663307-FFA6-487F-98C4-B9EFAAD69E05@att.com>
In-Reply-To: <53663307-FFA6-487F-98C4-B9EFAAD69E05@att.com>
From: Phillip Hallam-Baker <phill@hallambaker.com>
Date: Tue, 18 May 2021 11:21:48 -0400
Message-ID: <CAMm+LwjrZkJwCpiJfmR0gRcoRJPJFpn-MBfeAVabHYeYYPJW3Q@mail.gmail.com>
To: "HANSEN, TONY L" <tony@att.com>
Cc: Brian E Carpenter <brian.e.carpenter@gmail.com>, Carsten Bormann <cabo@tzi.org>, Tools Team Discussion <tools-discuss@ietf.org>, RFC Interest <rfc-interest@rfc-editor.org>
Content-Type: multipart/alternative; boundary="000000000000822ce605c29c45f0"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/_2eaNvHSPx2RZk0ptSE9Y_OjHz8>
Subject: Re: [Tools-discuss] [rfc-i] What do do about SVG
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 18 May 2021 15:22:07 -0000

On Thu, May 13, 2021 at 8:28 AM HANSEN, TONY L <tony@att.com> wrote:

> On 5/13/2021, 12:24 AM, "rfc-interest on behalf of Brian E Carpenter" <
> rfc-interest-bounces@rfc-editor.org on behalf of
> brian.e.carpenter@gmail.com> wrote:
>
>     After some investigation, I've understood that this particular problem
>     is because svgcheck doesn't allow <style> as a child of <svg>. Nor,
> after
>     some experiments, as a child of <path>, even though the RelaxNG in
>     RFC7996 appears to allow it. (Also, when <style> defines a color, and
>     I patch svgcheck/word_properties.py to allow <style>, svgcheck doesn't
>     seem to detect the color elements inside <style>.)
>
>     In the course of this I found another instance of a particular
>     bug in svgcheck (failure to increment errorCount).
>
>     So we have the facts that
>     (a) svgcheck is buggy;
>     (b) it doesn't implement the RelaxNG in RFC7996;
>     (c) sadly, we lost the maintainer of the code;
>     (d) our subset of TinySVG is very hard to generate with most drawing
> tools;
>     (e) experience shows that special SVG mangling programs are needed to
> prepare files for inclusion in RFCs;
>     (f) we've been told that TinySVG is no longer alive at W3C;
>     (g) browsers appear to be fully competent at interpreting full SVG.
>
>     How can we make progress on resolving this?
>
> As an FYI, I see three maintainers listed for svgcheck at
> https://pypi.org/project/svgcheck/. Can we poke them to address some of
> these issues, in particular a&b? Or provide them pull requests for the code?
>
> d,e,f are somewhat intractable unless we throw it out entirely and move to
> full SVG. g is one argument for that.
>
> However, there were several reasons behind going with a subset, laid out
> in section 2 of RFC 7996 and section 3.2 of RFC 6949. Any movement to
> support a larger version of SVG needs to address these requirements first.
>

I pointed out these issues over three years ago. This group has shown zero
interest in making any change. So no,  three more years of arguing over
which subset to pick is not an acceptable approach. I suggest:

1) Pick a deadline for making a decision. No more than six months.
2) Begin with the standard SVG and only eliminate what is absolutely
necessary to remove.
3) Make conformance with popular commercial drawing tools a requirement.
4) Consider the checker to be a support tool rather than an enforcement
mechanism. It is really not that difficult breaking out of the sandbox of
the current tools.

Alternatively, since W3C face the same need with respect to scripting in
documents as we do, perhaps we should just ask them what they do in this
regard. Dave Ragget's tiny was used to strip down HTML at one point, I bet
they have the same for SVG.

W3C has vastly more expertise in document formats than we do in IETF or
could ever hope to have. HTML and SVG were explicitly designed with
archival considerations in mind. Trillions of documents in these formats
exist. They are at this point just as established as ASCII or UNICODE as a
permanent infrastructure. If humanity loses the knowledge of how to
interpret HTML+SVG docs, it has probably forgotten how to interpret binary
data.

If people do want a custom approach, the way to go about it is to start
with the SVG DTD and remove elements. Checking an image is then merely a
matter of applying the modified DTD. RelaxNG has its place but that place
is not enforcing restrictions on a specification written in another schema
language.