Discussion:
Replacing gkermit with ekermit
Alan Barrett
2014-08-07 07:14:39 UTC
Permalink
I would like to remove gkermit (GPLv2) and add a BSD-licenced
kermit implementation such as E-Kermit (very small, see
<http://www.kermitproject.org/ek.html>) or C-Kermit (much larger,
see <http://www.kermitproject.org/ck90.html>). Read on for
details.

In 2006, we imported the "gkermit" program, which is a lightweight
implementation of the Kermit file transfer protocol, with a
GPLv2 licence. This was intended to be useful for transferring
files over a console port to aid in system recovery. It was
even added to /rescue because of its usefulness in system
recovery, but was then removed due to licencing concrns. See
<http://mail-index.netbsd.org/tech-userlevel/2006/10/29/0020.html>
for an example of a use case for a small Kermit
implementation in the base system and in /rescue,
and search for "gkermit" in the index page at
<http://mail-index.netbsd.org/tech-userlevel/2006/10/oindex.html>
to find other other messages in the discussion from 2006.

At that time (2006), most Kermit implementations had a licence
that prohibited copying for commercial use, but C-Kermit had a
licence exemption that allowed inclusion in a "Free UNIX" or
other Open Source operating-system distribution, and gkermit had
a GPL licence. The C-Kermit licence would not not have allowed
inclusion in products shipped by vendors who use NetBSD, so (back
in 1999 when Columbia University added the licence exemption)
NetBSD chose not to include C-Kermit.

In 2011, Columbia University re-licenced most Kermit
implementations under a revised 3-clause BSD licence,
terminated their Kermit project, and transferred
Kermit development to an open source project. See
<http://www.columbia.edu/kermit/index.html>.

Today, gkermit remains under a GPLv2 licence, while the very small
E-Kermit and the much larger C-Kermit have BSD licences.

E-Kermit (see <http://www.kermitproject.org/ek.html>) is
intended as a small library for embedding in other programs or
products, but it has a simple commandline wrapper. C-Kermit (see
<http://www.kermitproject.org/ck90.html>) has many more features
and an interactive user interface.

I would like to replace the small GPL-licenced gkermit in the
NetBSD base system with the small BSD-licenced E-Kermit. E-Kermit
can also be added to /rescue without any licencing concerns.
Users who want all the extra features in C-Kermit may install
it from pkgsrc, while users who need only a minimalistic file
transfer facility may use ekermit in the base system.

I have already done most of the work that would be required to
import E-Kermit; it was just a reachiver Makefile and a few small
patches to silence compiler warnings.

I could possibly be persuaded to import C-Kermit instead of
E-Kermit, but I have not even looked at how difficult that might
be.

--apb (Alan Barrett)
Greg Troxel
2014-08-07 10:53:26 UTC
Permalink
I would like to remove gkermit (GPLv2) and add a BSD-licenced kermit
implementation such as E-Kermit (very small, see
<http://www.kermitproject.org/ek.html>) or C-Kermit (much larger, see
<http://www.kermitproject.org/ck90.html>). Read on for details.
I had no idea gkermit was in base :-)

You mention "licensing concerns" about GPL code in /rescue. Presumably
that's about the combined binary which can then only be distributed
under the GPL, or the problem where the BSD advertising clause and the
GPL are incompatible so that the crunched binary cannot be distributed
at all? Regardless, I agree that it's better to use a simple
BSD-licensed version, as long as it works ok.

I don't see any justification for a more complex implementation; the use
case Thor provided seems like the one that justifies base system
inclusion. Using NetBSD to fix or deal with some embedded device can be
done with pkgsrc.

So, all in all your proposal sounds reasonable and I think you should do
it.

Loading...