Subject: Re: [RFC PATCH v7 6/9] gitweb/lib - Simple output capture by redirecting STDOUT to file

From: Jakub Narebski <[email-masked]>
Date: Mon, 27 Dec 2010 00:03:22 +0100

On Fri, 24 Dec 2010, Jonathan Nieder wrote:
> Jakub Narebski wrote:
> 
> > This patch was based on "gitweb: add output buffering and associated
> > functions" patch by John 'Warthog9' Hawley (J.H.) in "Gitweb caching v7"
> > series, and on code of Capture::Tiny by David Golden (Apache License 2.0).
> 
> Micronit: if the license of Capture::Tiny were relevant then we would be
> in trouble, I think.  (Apache-2.0 and GPLv2 aren't compatible licenses.)

Damn, I have thought that Apache-2.0 and GPLv2 are compatibile.  This is
the only reason that I explicitely mentioned the license (that and it is
not usual "licensed like Perl", i.e. dual Artistic Perl License / GPL 
licensed).  I should have checked that Apache and GPLv2 are compatibile.

> Luckily
> 
> [...]
> > +# taken from Capture::Tiny by David Golden, Apache License 2.0
> > +# with debugging stripped out
> > +sub _relayer {
> > +	my ($fh, $layers) = @_;
> > +
> > +	my %seen = ( unix => 1, perlio => 1); # filter these out
> > +	my @unique = grep { !$seen{$_}++ } @$layers;
> > +
> > +	binmode($fh, join(":", ":raw", @unique));
> > +}
> 
> looks trivial enough.  Maybe either avoiding mention of the license or
> clarifying that that is not intended to be the sole license for the
> stripped-down code would help?

You are right.  I have done similar thing for PerlIO::Util based capture,
though I didn't know about the 'binmode($fh, join(":", ":raw", @unique));'
trick.

So I think we would be in the clear by changing the comment to read:

  +# see also _relayer in Capture::Tiny by David Golden

or something like that.

Or we can try to change gitweb license to GPLv3 / AGPLv3, which is
compatibile (one way only) with Apache-2.0... just kidding :-)
-- 
Jakub Narebski
Poland