

Monit's DMCA takedown notice for Inspeqtor - jbrowning
https://github.com/github/dmca/blob/master/2014-10-05-tildeslash.md

======
jahewson
There are some very dubious claims in their DMCA takedown notice:

> 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.

~~~
stonemetal
_There is no concept of "clean room" in copyright law_

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...](https://www.eff.org/deeplinks/2014/05/dangerous-ruling-oracle-v-
google-federal-circuit-reverses-sensible-lower-court)

~~~
jahewson
What I mean is that there is no written law containing the words "clean room",
and no requirement that an author has not seen similar works. While "clean
room" might be a good defence, there aren't automatically grounds for making
an infringement claim just because somebody hasn't followed such a hyper-
cautious practice.

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.

------
LukeB_UK
It looks like Mike Perham wants to bring the repo back up, but due to the DMCA
request. It'll be at least 10 days [0]. He also says that he never looked at
the code for Monit [1].

He has also filed a counterclaim with GitHub [2]

[0]
[https://twitter.com/mperham/status/519164948887257090](https://twitter.com/mperham/status/519164948887257090)

[1]
[https://twitter.com/mperham/status/519165523473358848](https://twitter.com/mperham/status/519165523473358848)

[2]
[https://github.com/github/dmca/blob/master/2014-10-06-tildes...](https://github.com/github/dmca/blob/master/2014-10-06-tildeslash-
counternotice.md)

------
evanphx
Monit is wining this discussion because their DMCA notice has caused the code
not be visible, since anyone with both codebases could easily look at them and
see that Inspeqtor is not a translation of the Monit code in any shape or
form.

Because of this, I have put the code back up, please consult
[https://github.com/evanphx/inspeqtor](https://github.com/evanphx/inspeqtor)
vs
[http://mmonit.com/monit/dist/monit-5.9.tar.gz](http://mmonit.com/monit/dist/monit-5.9.tar.gz)

~~~
bjg
The title on your repro currently says "DCMA comparison".

~~~
evanphx
Thanks, fixed!

------
antirez
I may be wrong since IMNAL, but something is strange about this:

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.

~~~
tomp
If you rewrite Harry Potter in a different script, language, or some plot
twists, it's still "derived work".

~~~
pritambaral
Just a note for others: antires is talking about 'License', and tomp is
talking about 'Copyright'.

~~~
stonemetal
I am not sure I get your meaning. A license is how you access a copyrighted
work. Therefore they are speaking about the same set of laws.

Antirez is taking a very narrow copying must include a figurative Ctrl-c
Ctrl-v. Where as tomp is taking the wider and I think more legally
supported(at least as far as art goes) stance that a work can be 100% your own
effort but still be a derivative work if it was inspired by an existing
work.(i.e. taking a photo of a sculpture is a derivative work )

------
IamThePherocity
Well, I certainly will not be using Monit ever again should this be accurate.
There is no illegal activity from what I can tell, so it's entirely baseless.
Are they unclear about what copyright means? Did they hire a lawyer? Does not
inspire a lot of confidence.

edit: I've reached out to Monit for an explanation, and will amend if they
reply.

~~~
mindcrime
_Are they unclear about what copyright means?_

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.

~~~
IamThePherocity
Fair enough point, though I don't feel this is a gray area. The chilling
effect alone, being that I could be sued for simply looking at open source
code is disturbing. Because that's what it boils down to. Most of our software
today is a derivative work of something. I looked at rails code, so does that
mean I can never write a web framework lest I be sued?

~~~
wtallis
> " _I looked at rails code, so does that mean I can never write a web
> framework lest I be sued?_ "

No. At most it means you _might_ have to adhere to the license Rails uses, if
your work is sufficiently related to be a derived work.

------
jasim
I'm a developer who does just enough server management to keep my systems
running, and Monit is an invaluable part of the toolkit.

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.

~~~
porker
Skill-wise I'm similar to you and feel the same way. I too would be interested
to hear from full-time sysadmins.

------
thu
This will be sorted out quickly I guess: Monit's DMCA notice claims this is a
rewrite of Monit. This tweet[0] claims the opposite. (I take "rewrite" as a
manual translation to Go as they also say it's not a clean-room
implementation).

It remains to see if the part where they note the similarity with the
configuration syntax can actually be covered with the AGPL.

[0]
[https://twitter.com/mperham/status/519165523473358848](https://twitter.com/mperham/status/519165523473358848)

------
jxf
The timing of this seems odd to me. Why now, of all times? Is Inspeqtor
getting too big or stealing too many Monit customers?

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.

[0]:
[https://twitter.com/mperham/status/452160352940064768](https://twitter.com/mperham/status/452160352940064768)

~~~
dsl
They saw it on HackerNews about a week ago, and it took this long for their
lawyers to research, make a case, and do the paperwork.

Even if you become aware of something today, you can always use historical
tweets as evidence.

~~~
jxf
Ah, I didn't realize it'd recently surfaced on HN. That makes sense, then.

------
slantedview
"Inspeqtor which is hosted at GitHub, is far from a “clean-room”
implementation. This is basically a rewrite of Monit in Go"

I don't understand this. How is a re-write a license violation?

~~~
trose
Regardless of what current licenses dictate, _should_ someone be able to port
someone else's code to make a profit? Seems pretty shady to rewrite someone's
code just to get around a license. Maybe this is where patents come into play.

~~~
jacquesm
> Maybe this is where patents come into play.

No, it's a copyright issue. Patents have nothing to do with it.

~~~
dsl
Unless any method or procedure (parsing of natural language configuration
files or something) is patented.

~~~
wtallis
Even if that were the case, it's still beyond the scope of the allegations
that can be made in a DMCA takedown notice. If they were asserting any patent
rights, that would have to be through a regular cease & desist letter. It is
possible though unlikely that patents could come into play here, but they
clearly haven't yet.

------
zellyn
At first glance, the tweet [0] was sent a while ago, expressing _desire_ for a
port, with the idea of $$$$ as an incentive/joke. It appears that the author
later decided to implement it themself. I hardly think that makes his intent
to commercialize it clear.

[0]
[https://twitter.com/mperham/status/452160352940064768](https://twitter.com/mperham/status/452160352940064768)

~~~
dsl
He was already trying to sell it, starting at $25/mo.

[http://contribsys.com/inspeqtor/](http://contribsys.com/inspeqtor/)

~~~
regularfry
Didn't the tweet predate the selling by a good few months?

~~~
ibrahima
I'm pretty sure Inspeqtor was only released last week. Mike basically saw a
pain point he was having 6 months ago, then quit his job to solve that pain
point. Monit's position makes no sense.

------
cordite
It seems Monit has issued a retraction [1]

[1]:
[https://github.com/github/dmca/blob/master/2014-10-06-tildes...](https://github.com/github/dmca/blob/master/2014-10-06-tildeslash-
retraction.md)

------
teachingaway
ChillingEffects.org revamped their website a few days ago.

Submit your DMCA takedown notice!

------
anonanon101
There are too many similarities between the code that suggest the source for
Monit was indeed looked at, contrary to what Mike has stated on Twitter.

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...](https://bitbucket.org/tildeslash/monit/src/1686ffd4baa16b16d1eeae137e436d68e97e06e9/src/event.c?at=master#cl-88)

Inspeqtor:
[https://github.com/evanphx/inspeqtor/blob/master/events.go#L...](https://github.com/evanphx/inspeqtor/blob/master/events.go#L19)

~~~
wycats
This is silly.

    
    
        {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.

