Web lists-archives.com

Re: Non-free RFCs in stretch

Philip Hands writes ("Re: Non-free RFCs in stretch"):
> I presume this issue arises because people (myself included) dislike the
> fact that in order to install some RFCs and/or GNU documentation one has
> to flick a switch that also opens the door to some thoroughly
> proprietary software.

This is indeed a bad problem.  I would like to be able to install
firmware for my wifi card, and GNU manuals, and the Common Lisp
hyperspec installer, and so on.  This is despite agreeing with the
classification of these things as non-free (or indeed contrib).

> I suppose it might be possible that we (as a project) could agree to
> some of these subsets being easier and/or harder to enable, and thus
> allow the FSF to feel more cheerful about the way we look at the world.

I have a suggestion for how this could be done.

We give each reason-why-a-package-might-be-nonfree-or-contrib
a name in the package namespace.  I'm going to call these packages

Each package in non-free or contrib must Recommend all the
antimetapackages which apply.

Sometimes a wrongness is a special case of another kind of wrongness.
In that case the more specific antimetapackage Recommends the less
specific one, and real packages can Recommend only the more specific.

We use Recommends because these are all policy decisions which the
user may wish to override on an individual basis.

All of these metapackages should live in contrib, because they
themselves contain nothing nonfree.  Installer packages in contrib
should be classified according to the thing they download, not the
content of the package itself.

With pattern match pinning, or other tooling, it then becomes possible
for a user to be specific about which compromises they which to make.

For example:

   Package: make-doc
   Recommends: nonfree-gfdl-invariant
   Section: non-free/doc

   Package: nonfree-gfdl-invariant
   Recommends: nonfree-documentation
   Section: contrib/antimetapackages
   Description: Problems with the GNU Free Documentation Licence
    This antimetapackage is a dependency for documentation,
    under the GNU Free Documentation Licence, containing
    invariant sections and/or front/back cover texts.
    Debian considers such documentation non-free because it
    cannot be freely modified.  (See the General Resolution in
    [etc. etc]

   Package: doc-rfc-std
   Recommends: nonfree-nonmodifiable-standards
   Section: non-free/doc

   Package: nonfree-nonmodifiable-standards
   Recommends: nonfree-documentation
   Section: contrib/antimetapackages
   Description: Problems with modifiability of standards docs
    This antimetapackage is a dependency for standards
    documents which are freely redistributable, but which
    do not freely permit modification outside the context
    of the standards-setting process.
    Debian consisders such standards documents non-free, because end
    users are not free to make and document unofficial modified
    versions of these standards and protocols.

   Package: hyperspec
   Section: contrib/doc
   Recommends: nonfree-documentation
   Description: The Common Lisp ANSI-standard Hyperspec
    This is a installer package [...]

   Package: nonfree-documentation
    This antimetapackage is a dependency for documentation
    which is not considered Free by Debian, for a variety
    of reasons.

   Package: nonfree-misc-nonfree
    This antimetapackage is a dependency for non-free software
    in Debian whose lack of freedom has not been classified, or
    which is not covered by any more specific antimetapackage.

Politics: the set of antimetapackages, and which of them must be
Recommended when, is ultimately in case of dispute the responsibility
of ftpmaster, and enforced by appropriate (auto)REJECTs.  But normally
decisions will be made by the maintainers (of the antimetapackage
source package, and of individual non-free and contrib packages), with
the existing approach of audit and review from appropriately zealous

Transition plan:

 1. Create the new metapackage, containing at least initially
    nonfree-misc-nonfree and nonfree-misc-contrib.

 2. Change policy to require the new Recommends

 3. File RC bugs against:
     - any package in non-free with no antimetapackage Recommends
     - any package in contrib with noo antimetapackage Recommends
       and older Standards-Version

 4. Anyone who wants, as a user, to make a compromise, which is not
    yet given a separate name, may propose this as a new
    antimetapackage.  The antimetapackage maintainers will accede to
    this request, and accept the appropriate patches, if the scope of
    the proposed new antimetapackage seems clear.  Maintainers of the
    affected packages should then expect patches to switch their
    (applicable) antimetapackage Recommends to the new one.  The
    antimetapackage source maintainers should probably help with
    providing an MBF template for this.

(Packages in contrib which Depend on (or Recommend) things in non-free
do not need their own Recommends; we use Standards-Version to tell if
they're updated.)