He has also filed a counterclaim with GitHub [2]
[0] https://twitter.com/mperham/status/519164948887257090
[1] https://twitter.com/mperham/status/519165523473358848
[2] https://github.com/github/dmca/blob/master/2014-10-06-tildes...
Because of this, I have put the code back up, please consult https://github.com/evanphx/inspeqtor vs http://mmonit.com/monit/dist/monit-5.9.tar.gz
> The work, Inspeqtor which is hosted at GitHub, is far from a “clean-room” implementation. This is basically a rewrite of Monit in Go, even using the same configuration language that is used in Monit, verbatim.
There is no concept of "clean room" in copyright law, the only issue is whether or not substantial copying has occurred. While it may be easier for the author to avoid accidental copying if he has never looked at the Monit source code, having seen it, being inspired by its design, or deliberately building a compatible system do not constitute copying. The notion that it must be copying simply because it uses the same configuration language is without merit, due to the fact that the configuration language itself is not a creative work and is not eligible for copyright protection, in the same way that an API or a programming language is not eligible for such protection: it is a medium for expression, not an expression in itself - otherwise all programs written in a given programming language would be a derivative work!
I suspect that it is this misunderstanding that has led the authors of Monit to file this DMCA takedown, and that they have acted in good faith, but with an insufficient understanding of the limits of what copyright protects.
> a. [private] himself admits that Inspeqtor is "heavily influenced“ by Monit
Being heavily influenced is not the same as copying. OpenOffice Writer is heavily influenced by Microsoft Word, and can even open the same file format, but it does not copy any of Microsoft's source code.
> b. This tweet by [private] demonstrate intent. "OSS nerds: redesign and build monit in Go. Sell it commercially. Make $$$$. I will be your first customer.”
The quote was "redesign and build Monit in Go" which does not show intent to engage in substantial copying of Monit's source code. If anything, it suggests an intent to write a new, redesigned system with its own source code but compatibility with monit.
Without looking at the source code, it's hard to say more, if the author simply ported the source code of Monit to Go then it would certainly be a derived work, but the DMCA claim doesn't mention any such copying. It's important to remember that compatibility is not copying and that only the source code to a computer program is covered by copyright - its architecture, design, and even APIs (see Oracle vs Google) are not protected by copyright, because otherwise the copyright claim would effectively behave like a patent, preventing anybody else from creating something conceptually similar.
Sure there is. "Clean room" just means you have good legal evidence that you created an original work not a derivative one. It is a bit like having an alibi during a murder trial. There is no law that says you must have an alibi to not be convicted of murder, just like there is no law requiring clean room to dodge the copyright bullet, but having one is strong evidence that you are not guilty.
even APIs (see Oracle vs Google) are not protected by copyright
You need to check the news more. The Federal Circuit Court ruled APIs are copyright able, and handed it back to the lower court to rule on fair use. https://www.eff.org/deeplinks/2014/05/dangerous-ruling-oracl...
Oracle vs Google is complex and I reluctantly chose to gloss over the details. The case still has some appeals to go yet, posssiby to the supreme court. While the difference between APIs being copyrightable vs fair use is important, the practical impact should be negligible: if an API as large as the JDK can be copied without permission, then any API can.
Derivative work is not a factual statement of a work, but a narrative statement in how it came to be. It helps to look at other arts (film, books, music) in order to examine the legal theory as it is used.
Lets take a manga comic written in Japanese language, using Japanese culture in order to express a story. That is then rewritten into a movie script for an American audience, using language and culture that is familiar with that market. The two works might in the end share nothing substantial in common, but the narrative defines the movie as a derivative of the written manga.
For books, fan fiction is simply defined as derivative works. The word itself defines a narrative that do not include copying but a process which bases one work on an other.
For music, style from a couple of notes has been know as enough for derivative work to trigger. If a song provide an association of someone else song, the narrative has an implied infringement on the original work. Copying as an act is more or less completely absent from those cases.
So for all the different copyrightable arts, software seems to have the most narrow interpretation of derivative work. Look and feel was dismissed in a US court a while back, and API was thankfully also dismissed. My guess is that the beneficial effect a weaker copyright has on the software market is favored by the courts compared to the arts of films, books and music. That said, only looking at copying as the defining factor is unlikely to yield the correct conclusion. I do think inspeqtor has a decent defense. Since look and feel is not enough for software, Monit will have a uphill battle to claim a narrative that defines inspeqtor as based on Monit. The twitter statement seems to hint towards it, but a court might very likely want more to find inspeqtor guilty.
I'm far from a copyright expert, but I think there is. The equivalent of a clean room implementation would be "I read your cover text, and then wrote my own book". What Monit claims what happend would be the equivalent "I read your book in language $x, I translated it to language $y and change a few details to better target audience $z". (What Disney did, but with public domain works). That latter is relevant for copyright.
1) inspeqtor is written in Go and shares no code with Monit anyway.
2) The takedown claims violation of license. Licenses only apply to code, so patents and similar are out of this game.
1+2 don't stay together. How is a code license violated if the code is totally different between the two projects? I believe this is something that can be easily fixed with a good lawyer.
inspeqtor would likely argue that the programming language is different and no copying happened, while monit will compare it to a translated book. Which argument will be strongest, and what will be the central question of a lawsuit? Would art, interface, configuration language and API affect the question? Is the Twitter message relevant for the narrative?
I personally think inspeqtor has a decent defense since technically, no copying of bytes has happened. That said, legal theory is not so clean cut and context always matters.
I don't have a general right to distribute Emacs; I must distribute it in terms of the license. If I were to distribute Emacs in a way that FSF didn't like, they would come after me for copyright violation.
NB: I'm not saying anything about the accuracy of their copyright claims.
With or without lawsuit to follow, this is an interesting case. I'd also agree that (unless it's an automatically done 1:1 codebase translation) AGPL doesn't apply.
On the other hand, in the counter-takedown notice you have to state under penalty of perjury that the material was removed by mistake or misidentification. It's a scary thing to do unless you can afford a lawyer.
We will withdraw this takedown notice if and only if [private] and
Inspeqtor adhere to the GNU Affero General Public License
which Monit is licensed under. This means;
Our copyright notice is retained in the derivate work, and ALL
the derivate work is licensed and provided to users as “open
source” under the AGPL. This include the so called pro features
of Inspeqtor which are closed source and licensed under a
proprietary license.
Translating languages of a GPL codebase and then removing the license is not within the spirit of the license. Otherwise I can translate your code from C to Go, remove the license, then translate from Go to C, and voila, license-free code.In US copyright law and most of the countries that adhere to the Berne Convention there is a concept of a derived work. What the legal standard is varies, usually a translation of a work of literature would qualify, but whether a "translation" of a work of software would be considered a derived work is an open question that will not be resolved without litigation.
But it certainly seems that this takedown is bogus in terms of the DMCA since it is not a copyrighted work itself, but an ( allegedly ) derived work.
It certainly looks like an attempt to misuse intellectual property law to protect a product from functional equivalents that would not otherwise be excludable from the market.
2) You can have patent licenses, trademark licenses etc. Though I don't believe Monit are claiming that here.
That Inspeqtor works with Monit configuration files is definitely not proof of copyright violation. Neither an admission of "heavy influence". As far as I know, the only thing that would prove that this is a derivative work (and therefore possibly a copyright violation) would be a comparison of the source code, one demonstrating a number of features in the Inspeqtor code base that show that Inspeqtor's implementor was doing something more like a port to Go than a compatible implementation.
That's sure not part of the takedown. From the way it's worded, I worry that Monit's authors are not totally clear on the distinction between patents and copyrights, and that they have not taken the advice of a competent IP attorney before taking this step.
And if I called that story Star Wars?
Rewriting a program in a new language is a large change in its own right; even more so, if it it uses features in the new language which were unavailable in the original.
However, the one thing I don't like about Monit is the pseudo natural language syntax that inspeqtor surprisingly borrowed, based on which Monit raises the DMCA claim. I wonder what the general feeling about this is in the sysadmin community, and whether people would prefer a different syntax instead.
edit: I've reached out to Monit for an explanation, and will amend if they reply.
Something I've learned over the years is that, when it comes to legal issues, things are rarely black and white. In this case, whether or not Inspeqtr should be required to adhere to the AGPL probably comes down to whether or not it is legally a "derived work". And I'm going to go out on a limb and guess that there isn't a large body of case law covering the situation where a product is completely re-implemented in a different language. But it certainly seems within reason to say that a court could find that this is a derived work, and therefore in violation unless the AGPL license is used.
Now, whether or not this sort of thing is covered by the spirit of the GPL/AGPL is another question. But it probably is, if you consider the stance of Stallman and the FSF vis-a-vis Free Software. Remember, they basically consider all proprietary software to be a sort of immoral, unethical affront to humanity.
It remains to see if the part where they note the similarity with the configuration syntax can actually be covered with the AGPL.
It's also a little strange that the tweet Monit references as being demonstrative of intent happened six months ago [0]. If that was really the issue, shouldn't they have issued the DMCA takedown then, instead of waiting so long?
I think we have about 24 hours before the DMCA's version of the Streisand effect kicks in.
Even if you become aware of something today, you can always use historical tweets as evidence.
I don't understand this. How is a re-write a license violation?
What Monit does is a defined interface, anyone should be able to implement from scratch something that does exactly the same thing.
No, it's a copyright issue. Patents have nothing to do with it.
[1]: https://github.com/github/dmca/blob/master/2014-10-06-tildes...
Submit your DMCA takedown notice!
For instance some of the file names are the same, ie, Inspector's events.go and Monit's Event.c
Further, the code is very similar in places. Mind you it's not a direct copy, but this can't be coincidence.
Monit: https://bitbucket.org/tildeslash/monit/src/1686ffd4baa16b16d...
Inspeqtor: https://github.com/evanphx/inspeqtor/blob/master/events.go#L...
{Event_Nonexist, "Does not exist", "Exists", "Existence changed", "Existence not changed"},
ProcessDoesNotExist EventType = "ProcessDoesNotExist"
These are not particularly similar, except that they express some of the same concepts, which are the concepts of the domain. A user of monit would be aware of these concepts.Well, I guess monit had better hire a few more lawyers.
https://github.com/search?utf8=%E2%9C%93&q=event&type=Code&r...
> For instance some of the file names are the same, ie, Inspector's events.go and Monit's Event.c
You can't be serious. "Events", as a filename is an indication of plagiarism? An "event" is a basic concept of programming! That's like if a teacher accused students of copying because they both handed in a file called "homework.doc".
You can even find this pattern in strerror.c which is handeling errno.h [1]. this is a really old concept.
[1] http://opensource.apple.com/source/gcc/gcc-926/libiberty/str...