Re: libpng license 2.0
Cosmin Truta <[email protected]> Thu, 6 Sep 2018 21:54:40 -0400
| Newsgroups | gmane.comp.graphics.png.devel |
|---|---|
| Message-ID | <CAAoVtZwkbP6=KL9pnHW8t5si0Mz2j+=2rxhggnKSTdNWpk4__g@mail.gmail.com> |
Greetings!
I received the following message from Glenn:
"I have reviewed it and it looks OK to me."
Ok, we're one step closer. I'm about to finalize the request for
license review at OSI.
Marcus Johnson wrote:
> I understand this is a problem, LLVM is currently going through this
> issue, but I think it's worth at least considering it instead of just
> dismissing it as infeasible off hand.
I feel that an important clarification is needed here:
Using the zlib license, or a zlib-like license, instead of others, is
not a problem that would need fixing.
It's the wish of the original authors of both zlib and libpng. They
wrote the license in this way, because they wanted it this way. Glenn
also wanted it this way. Last but not least, honestly, I also like it
and want it in this way.
"It's not a bug, it's a feature."
Consider the first two clauses:
> 1. The origin of this software must not be misrepresented; you
> must not claim that you wrote the original software.
>
> 2. Altered source versions must be plainly marked as such, and must
> not be misrepresented as being the original software.
Which one of the more famous licenses require altered source versions
to be plainly marked as such?
The zlib license may not be the only one, but it is the simplest,
clearest, and, really, the most popular OSI-approved license that does
so, as far as I know.
I voluntarily released my own software, OptiPNG, under the zlib
license, because I firmly believe in its 2nd clause. I personally
consider it a moral obligation to acknowledge intellectual
contributions, including modifications in source code, on one hand;
and to disclose, in any way possible, that an altered version is an
altered version and not an original, on the other hand.
OptiPNG can be compiled either with the original zlib library, or with
an OptiPNG-specific modification of the zlib library that improves
compression by a small amount. And the user will know.
C:\>optipng.exe -v
OptiPNG version 0.7.7
Copyright (C) 2001-2017 Cosmin Truta and the Contributing Authors.
[...]
Using libpng version 1.6.34 and zlib version 1.2.11-optipng
I am both obligated (by the license) and willing (on my own
conviction) to state that I am using an altered version of the zlib
library, if that's indeed the case. There are further mentions of my
changes in the OptiPNG-specific local fork of zlib. I can't upstream
those changes because, while they're good for PNG, they're bad for
most or all of other zlib use cases. So I'm keeping the modified zlib
around, with the modification notes, instead.
The same goes with OptiPNG's use of libpng, whenever applicable. Here
is another example from another version:
C:\>optipng.exe -v
OptiPNG version 0.7.5
Copyright (C) 2001-2014 Cosmin Truta and the Contributing Authors.
[...]
Using libpng version 1.6.10-optipng and zlib version 1.2.8-optipng
See the difference? At least in its Windows build, optipng.exe version
0.7.7 uses libpng version 1.6.34 (original source), while optipng.exe
version 0.7.5 uses libpng version 1.6.10-optipng (OptiPNG-specific
altered source).
Over time, I found various forks of OptiPNG (which was ok), made
available on their own web sites and via their own distribution
channels (which was ok), some of which indicated "Copyright (C) Cosmin
Truta [...] Modified by John Doe" (which was ok); but one of them, at
one time, *altered version* with *altered behavior* and yet
indistinguishable from the original, with no way for the user to tell
the difference in any easy way, binary executable or documentation or
anything else (which was *not* ok). Eventually, that one fork
disappeared. Problem gone.
I'm not claiming that the zlib license is my all-time favorite
silver-bullet license. Depending on the kind of the project, I
sometimes favor publishing new code under the MIT license. Other
times, BSD makes more sense; and other times yet, Apache or MPLv2 or
GNU GPLv2 (it depends) make more sense.
However, I concur with my predecessors that the spirit (if not the
letter) of the zlib license is still the way to go for libpng.
Sincerely,
Cosmin
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot