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