6

This question already has an answer here:

I took the C code from the png2theora example tool of Xiph.Org Theora which has a copyright header:

/********************************************************************
 *                                                                  *
 * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE.   *
 * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
 * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
 * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
 *                                                                  *
 * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009,2009           *
 * by the Xiph.Org Foundation and contributors http://www.xiph.org/ *
 *                                                                  *
 ********************************************************************

  function: example encoder application; makes an Ogg Theora
            file from a sequence of png images
  last mod: $Id$
             based on code from Vegard Nossum

 ********************************************************************/

The COPYING file points is a 3-clause BSD license.

I have taken the code apart into several pieces which I have rewritten in Vala code classes (so in a different programming language).

I also wrote several vapi files to bind to the C APIs (for libtheora, libogg and libpng).

I did several heavy changes to the code:

  • Replaced return code based error handling by exception handling
  • Rewrote command line parsing from getopt to GLib OptionGroup
  • Reorganized the code into several classes
  • Replaced stdio file functions by gio classes
  • Added some additional error handling

So I have almost completely rewritten the original code, but it should still work essentially like the original tool from the user perspective.

Now I would like to release this code (preferably under an AGPLv3 license).

How do I correctly attribute the original authors copyright / license in this case?

marked as duplicate by curiousdannii, Community Nov 5 '15 at 18:11

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • This isn't a duplicate. The other question is about porting MIT licensed code. The answer would be very different if this was asking about porting GPL code. – RubberDuck Nov 6 '15 at 10:59
3

Under some interpretations, re-writing code to a different language constitutes a derivative work. Under others it doesn't.

If you hold your work not to be a derivative work (in the copyright sense of the word), you're done; you don't have anything to do with the original work anymore, and you can license whichever way you like without attributing the original authors.

I you do hold your work to be a derivative work, which is the safer, and IMO correct route, you have to comply with the 3-clause BSD license. The first two are the most relevant:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

The most practical way to comply in my opinion is to include the BSD notice in the project, and have a central notice that remarks it was based on the original work, link to the original work and original authors file, and then do your standard stuff for the new license.

  • I have retained the BSD license, so am now viewing my rewrite as a derivative work: github.com/promi/png2theorav (I hope that I've done everything correctly) – Promi Nov 7 '15 at 17:14
  • @Promi if I were you I'd make it more clear that the BSD only counts for the original work. If I were to look for a license, I'd first look at the COPYING file, and it doesn't make it clear that that's only for the original work, not for this work. YMMV – Martijn Nov 7 '15 at 18:16
  • Thanks for the feedback, I've switched the naming scheme of the COPYING files around and updated the readme file. – Promi Nov 7 '15 at 21:57
  • Your opinion on the issue of it being or not a derivative work is completely irrelevant. The only valid opinion on the matter is the one of the court, in case you get dragged in front of one by a copyright owner who happens to disagree. – vonbrand Jan 16 '16 at 1:54

Not the answer you're looking for? Browse other questions tagged or ask your own question.