#1150589 doc-rfc: split DFSG-free Independent Submission RFCs into a new main package

#1150589#5
Date:
2026-10-11 08:02:10 UTC
From:
To:
Hi,

doc-rfc currently ships entirely under non-free/doc, but a real subset
of its content is DFSG-free and doesn't need to be there.

RFC Editor "Independent Submission" stream documents (as opposed to
IETF-stream documents) are granted unlimited derivative-work rights
under BCP 78 Sec. 4.2a(c) -- a strictly more permissive grant than
IETF-stream documents, whose authors are only required to permit
derivative works for use within the IETF standards process (BCP 78
Sec. 3.3). This distinction, and the exact wording of both grants, is
already explained in doc-rfc's own debian/copyright under "Permissions
for Derivative Works" -- the DFSG-free content was already documented
in the source package, just never split out.

Attached is a patch that:

- Extends debian/makestatus.py to read each RFC's <stream> element
  (not just its status), and routes RFC4000-and-later Independent
  Submissions into a new "independent" category, overriding whatever
  status-based category they'd otherwise land in (stream-based
  copyright classification is orthogonal to IETF lifecycle status --
  an obsoleted Independent Submission keeps its rights grant).

- Adds a new doc-rfc-independent binary package in Section: doc
  (main), with matching .install/.doc-base/.lintian-overrides files,
  wired into the doc-rfc metapackage's Depends so installing doc-rfc
  still gets everything it did before, just split across an extra
  free package.

- Documents the split and its exact scope in debian/copyright.

The subset is narrowed conservatively, in two ways, both verified
against the actual RFC text rather than assumed from metadata:

1. Only RFC4000 and later. Earlier Independent Submissions predate the
   Trust Legal Provisions boilerplate and typically carry only an
   ambiguous "Distribution of this memo is unlimited" notice, which
   says nothing about derivative works.

2. Independent Submissions that invoke BCP 78 Sec. 5.2a's "No
   Derivative Works" option (which independent submitters, unlike
   IETF-stream authors, may request) are excluded even when
   RFC4000+. I grepped every RFC4000+ Independent Submission in this
   snapshot for the standard NDW sentence ("This document may not be
   modified, and derivative works of it may not be created, except to
   format it for publication as an RFC or to translate it into
   languages other than English.") rather than trusting the stream tag
   alone. Nine documents carry it and are excluded: RFC 5513, 5564,
   5830, 5831, 5832, 6013, 7425, 7868, and 8216. I also confirmed the
   remaining 303 all carry the standard unrestricted BCP 78 boilerplate
   (none are silently missing it).

Verified:
- debian/makestatus.py produces exactly 303 "independent" entries
  against this snapshot's rfc-index.xml, none of which are the 9 NDW
  documents above.
- Ran the real debian/makelinks.pl end-to-end: 1021 real files (303
  RFCs across .txt/.html/.pdf/.json) land under
  debian/tmp/usr/share/doc/RFC/independent, and the 9 NDW documents
  land in their original (non-free) category directories instead, as
  they should.
- debian/control parses cleanly via Dpkg::Control::Info (10 binary
  packages).
- Patch applies with zero errors against a fresh pristine 20230121-1
  source tree (dpkg-source -x + patch -p1).

I'd rather raise this for discussion than force a full
dpkg-buildpackage + lintian pass on a package split I haven't
discussed with you first -- happy to do that round (and a real
`.deb`-level lintian run) if this direction looks right to you.

Changes:
- debian/changelog (new entry)
- debian/control (new doc-rfc-independent package, Section: doc)
- debian/copyright (new section documenting the split's scope)
- debian/makestatus.py (stream-aware categorization)
- debian/doc-rfc-independent.install (new)
- debian/doc-rfc-independent.doc-base.independent (new)
- debian/doc-rfc-independent.lintian-overrides (new)

Thanks,
Stefan Andrei Ionut