christianbundy / octotree

5 stars 0 forks source link

Octotree censorship / AGPL violation #1

Open christianbundy opened 3 years ago

christianbundy commented 3 years ago

Since @buunguyen has decided to suppress this conversation via censorship, I thought I'd move the discussion here.

Thread summary

This thread is long, I've summarized it for folks who are just now tuning in.

EDIT: This thread has devolved into uninformed opinions by drive-by commenters. I've already explained all of the basics multiple times throughout the thread, and honestly don't have the energy to engage with people who can't be bothered to read what others have already written. I have unsubscribed to this thread.

TL;DR

Contributions to the Octotree project were licensed under the AGPL, which requires that all improvements are also published under the AGPL. Octotree is now closed-source, and @buunguyen is claiming that it's a "complete rewrite", but I've looked at the proprietary bundle (octotree.zip`) and it doesn't look like a rewrite to me.

Example

AGPL

From src/view.tree.js:

_showHeader(repo) {
  const adapter = this.adapter;

  this.$view
    .find(".octotree-view-header")
    .html(
      `<div class="octotree-header-summary">
        <div class="octotree-header-repo">
        <i class="octotree-icon-repo"></i>
        <a href="/${repo.username}">${repo.username}</a> /
        <a data-pjax href="/${repo.username}/${repo.reponame}">${
        repo.reponame
      }</a>
        </div>
        <div class="octotree-header-branch">
        <i class="octotree-icon-branch"></i>
        ${deXss((repo.displayBranch || repo.branch).toString())}
        </div>
        </div>`
    )
    .on("click", "a[data-pjax]", function (event) {
      event.preventDefault();
      // A.href always return absolute URL, don't want that
      const href = $(this).attr("href");
      const newTab = event.shiftKey || event.ctrlKey || event.metaKey;
      newTab ? adapter.openInNewTab(href) : adapter.selectFile(href);
    });
}

Proprietary "complete rewrite"

From octotree.zip/src/content.js (both formatted with Prettier for easier comparison):

_showHeader() {
  const e = this._adapter,
    t = e.getRepo();
  this.$view
    .find(".octotree-view-header")
    .html(
      `<div class="octotree-header-summary">
        <div class="octotree-header-repo">
        <i class="octotree-icon-repo"></i>
        <a href="/${t.username}">${t.username}</a> /
      <a data-pjax href="/${t.username}/${t.reponame}">${t.reponame}</a>
      </div>
      <div class="octotree-header-branch">
      <i class="octotree-icon-branch"></i>
      ${I((t.displayBranch || t.branch).toString())}
      </div>
      </div>`
    )
    .on("click", "a[data-pjax]", function (t) {
      t.preventDefault();
      const i = $(this).attr("href");
      t.shiftKey || t.ctrlKey || t.metaKey ? L(i) : e.selectFile(i);
    });
}
christianbundy commented 3 years ago
CC: - @Ephemera - @crashbell - @endyquang - @duylam - @Fahme - @letunglam - @stevennoto - @nphi - @bigredwill - @bayandin - @ruanyl - @meip - @k2nr - @jerizm - @itiut - @athaeryn - @Spittie - @Jackymancs4 - @DrewML - @zacanger - @widyakumara - @voithos - @vakata - @tvytlx - @thewarpaint - @tbodt - @tatsuyaoiw - @sidke - @samvel1024 - @ricosmall - @rheaditi - @piamancini - @norio-nomura - @mijoharas - @leocaseiro - @leereilly - @kevinconaway - @jsutlovic - @josephfrazier - @jdreesen - @jamesmosier - @isbadawi - @hknochi - @hisabimbola - @gluons - @fieteboerner - @eush77 - @ergenekonyigit - @enyo - @enizor
christianbundy commented 3 years ago
CC: - @dimorinny - @danhnguyen30041975 - @chrisbrownie - @carloschneider - @behnam - @amio - @alexbeletsky - @Sayegh7 - @RomanKornev - @Mottie - @MonwF - @Luegg - @Justineo - @Brightcells - @0xflotus - @summertime - @theHamsta - @abinavseelan - @patriksundback - @justineo - @reanimus - @lattyware - @charleswiltgen
zacanger commented 3 years ago

If you're interested in it, I branched off from the commit before they removed the license over in my copy, and am working on getting dependencies up to date and making sure it still builds right now. Like I mentioned on the original issue, I'm not particularly bothered about the license violation (including AGPL code in a proprietary product) because my contribution was only one line, but changing the FOSS version to source-available unlicensed (or whatever the intention was behind deleting the license) was not okay.

Lattyware commented 3 years ago

I would suggest that looking for a significant chunk of code that can be clearly traced back to a change where the current team do not control the copyright (i.e: from a contributor other than them who did not assign them the rights) would be the smoking gun here.

While their response has been terrible, they could in theory legally do this as long as they only used code they have the copyright for and can re-license.

I'm in no way involved, to be clear, just came across this (and very much not a lawyer, just my layman's understanding). The response from them is just... ugh.

christianbundy commented 3 years ago

I would suggest that looking for a significant chunk of code that can be clearly traced back to a change where the current team do not control the copyright (i.e: from a contributor other than them who did not assign them the rights) would be the smoking gun here.

Good idea, here's an obvious one from @jdreesen: https://github.com/ovity/octotree/pull/861

If you look through the output of git-blame you can see that many of the lines were either authored by @jdreesen or adapted from his code. (You can click 'view blame prior to this change' to verify the provenance.)

And of course, if we look in the "complete rewrite" we'll see that it's an obvious derivative:

_handlePjaxEvent(e, t, i) {
  if (!this._isDispatching) {
    this._isDispatching = !0;
    try {
      if (($(document).trigger(t), null == e.originalEvent)) {
        const e = $(this.pjaxContainerSel)[0];
        e && e.dispatchEvent(new Event(i, { bubbles: !0 })),
          "pjax:end" === i &&
            $(".UnderlineNav .UnderlineNav-item").removeClass(
              "selected"
            );
      }
    } finally {
      this._isDispatching = !1;
    }
  }
}

Bonus points: You can clearly see that the minifier inlined @jdreesen's _dispatchPjaxEventInDom() as in the above fragment as:

const e = $(this.pjaxContainerSel)[0];
e && e.dispatchEvent(new Event(i, { bubbles: !0 }));
christianbundy commented 3 years ago

Maybe useful: git-blame line count per author:


$ for f in $(git ls-files); do git blame --line-porcelain $f | sed -n 's/^author //p'; done | sort | uniq -c | sort -rn
  53442 Buu Nguyen
   1730 NDQ
    102 Phi Nguyen
     77 Fahme Bnchi
     57 An Le Phu Nguyen
     52 Will Simons
     30 Jacob Dreesen
     18 Danh Nguyen
     11 Samvel Abrahamyan
     10 Rico
     10 duylam
      6 Xiao Tan
      6 Fiete Börner
      5 Steven Noto
      4 Ahmed El Sayegh
      3 GyuYong Jung
      3 Duy Lam
      2 Yuichi Tanikawa
      2 Andrew Levine
      1 Zac Anger
      1 Kevin Conaway
      1 Ephemera
      1 Brightcells
Fahme commented 3 years ago

Hey,

I’m @Fahme in your CC list and I was hired to work on Octotree. I’m no longer involved, but I was there when we rewrote Octotree. Just so you know.

buunguyen commented 3 years ago

Thanks for making the list. I want to point out the following people are (or were) in the core team and all of them are paid to work on Octotree. Thanks for trying to make our lives difficult even though we write 99% of the code in the old version and probably 99.999% of the new version.

 53442 Buu Nguyen
   1730 NDQ
    102 Phi Nguyen
     77 Fahme Bnchi
     57 An Le Phu Nguyen
     18 Danh Nguyen
     10 duylam

Also, as to why I changed the license, it's because of this kind of harassment. It is not the first time but at some point, enough is enough. See this post for more context.

tbodt commented 3 years ago

I think not reverting the contributions of people not in that list might be a violation of copyright law. I'm not a lawyer though, you should ask one to be sure.

judge2020 commented 3 years ago

@buunguyen:

I want to point out the following people are (or were) in the core team and all of them are paid to work on Octotree.

Assuming you have the legal stuff sorted for those contributors (they have signed a CLA/assigned their code to no longer be AGPL), you still need to get assignments from the other contributors to designate their code as non-AGPL (NAL).

christianbundy commented 3 years ago

I want to point out the following people are (or were) in the core team and all of them are paid to work on Octotree.

Thank you for this information. Could you confirm whether you received relicensing consent from the other 59 contributors?

Thanks for trying to make our lives difficult even though we write 99% of the code in the old version and probably 99.999% of the new version.

I don't want to make your life difficult. You said that the proprietary version was a "complete rewrite", and when I provided evidence to the contrary you deleted it and banned me from interacting with your repository.

Also, as to why I changed the license

...but the license isn't yours to change. The project is a derivative work from dozens of contributors, and if you'd like to change the license then you need their consent. This is literally the entire point of copyleft, which you know, and is why you played the "complete rewrite" card.

Please just be honest.

Lattyware commented 3 years ago

Thanks for trying to make our lives difficult even though we write 99% of the code in the old version and probably 99.999% of the new version.

...

Also, as to why I changed the license, it's because of this kind of harassment.

All the more reason your response is baffling, because contacting the few other people to ask them to sign off on the re-license would have been easy. Instead, you seem to try to obscure the truth by calling it a complete rewrite and getting aggressive with anyone bringing up the issue.

It sucks if people harassed you, but people making real, good-faith points about you re-licensing without the permission of some of the authors is not harassment. Even if it was, it wouldn't somehow give you the right to act unilaterally to try and claim other people's work.

Please, put yourself in the shoes of other people here: you are telling people that code they write could end up being used in proprietary software when they contribute it to projects licensed under open licenses. That clearly isn't OK, and it being a small percentage of the code in question simply doesn't address the core problem.

buunguyen commented 3 years ago

@christianbundy You were banned because you were dishonest and spammed me. You started all this with this assertion:

it's easy to verify that it uses the same code from master with small changes

After I pointed out that it was not true, instead of admitting you didn't look at it carefully enough, you doubled down on the accusations and posted spams CC'ing a bunch of people. Not only that, you even emailed me repeating the same things, as if all these GitHub issues weren't enough! Do you often harass people like this? If people like you only spent half of such effort in contributing to Octotree instead of attacking me, I wouldn't have had to hire a team to work on it or introduce the paid plan so that we could keep the software alive.

The bottom line is this:

@zacanger I just wanted to stop the trolling. I really don't care if it's AGPL or unlicensed. I would change it back to AGPL in a heartbeat if I knew it would stop the trolling. But I find it impossible to make everyone happy. Some people just want other people do work for free for them. You wouldn't believe how many hate emails I've received since start charging for Octotree, this isn't the first time. I just need to find ways to keep those people away.

Lattyware commented 3 years ago

The bottom line is this:

  • My team wrote ~99.9% of the old version of Octotree (based on the stats you provided yourself).

  • We rewrote Octotree and the source of this version is closed. There might be some bits and pieces that were adapted from the old code, but it doesn't mean we didn't rewrite Octotree from scratch. A software developer should understand that.

The bottom line is that you don't get to define if other people's contributions are important. They contributed work on the basis of a particular license, you can't use it without following that license. You need to contact them and ask them to give you the rights, or rewrite those segments, but it appears that you haven't done that in at least one case. If you believe you have, then all you have to do is actually answer the question to put people's minds at rest, rather than painting people acting in good faith as harassers.

No one is complaining about you making a proprietary product here. You just can't take other people's work to do it, even if it is a relatively small proportion of the overall thing. Telling people you only re-licensed a little work without asking is understandably going to lead to people saying that isn't good enough.

You are absolutely entitled to profit from your work. It's just a bit incredible to use that as a defence for denying someone else the right to license their work, however small.

hyiltiz commented 3 years ago

I would change it back to AGPL in a heartbeat if I knew it would stop the trolling. But I find it impossible to make everyone happy.

I am fairly certain that once you @buunguyen change it back to AGPL, everyone who is "trolling" you @buunguyen will stop.

christianbundy commented 3 years ago

You were banned because you were dishonest and spammed me.

No, I was banned because I posted evidence that you didn't want other people to see. The archive doesn't lie, and you shouldn't either.

After I pointed out that it was not true [...]

Not once have you actually addressed the code that I've pointed out. It's incredibly clear that your proprietary product is a derivative of the AGPL work with 66 contributors, and instead of admitting it you've:

You're now attempting to gish gallop your way through the discussion without actually addressing any of the points made, and I'm not interested in that at all. If you want to have a two-way conversation here, you're more than welcome to do so, but we're not going to do the one-way conversation style that you seem to prefer.

buunguyen commented 3 years ago

rather than painting people acting in good faith as harassers.

If you seriously believe the OP acted in good faith after hearing my side of the story, we're very different.

but it appears that you haven't done that in at least one case

You mean this case? First, to be absolutely clear, I value all contributions and I honestly wish I received enough contributions so that I didn't have to introduce the paid plan to pay people to work on it.

Now, if you looked at that code closely, you would see we rewrote and made it much more robust. If we didn't rewrite certain lines made by contributors it was because we couldn't think of any other way to do it. I mean, how many ways you can call a certain API like dispatching an event?

christianbundy commented 3 years ago

Now, if you looked at that code closely, you would see we rewrote and made it much more robust.

Oh, like a derivative?

First, to be absolutely clear, I value all contributions and I honestly wish I received enough contributions so that I didn't have to introduce the paid plan to pay people to work on it.

I want to be very clear: I want you to get paid for your work, and there's nothing wrong with your paid plan. I do not want you to renege on your license agreement or lie about the fact that your proprietary product is a derivative of AGPL code.

buunguyen commented 3 years ago

I am fairly certain that once you @buunguyen change it back to AGPL, everyone who is "trolling" you @buunguyen will stop.

They trolled me when it was still AGPL. That's the ONLY reason I had to change it to unlicensed.

buunguyen commented 3 years ago

Now, if you looked at that code closely, you would see we rewrote and made it much more robust.

Oh, like a derivative?

See, your dishonesty shows. Way to quote something out of context.

Now, if you looked at that code closely, you would see we rewrote and made it much more robust. If we didn't rewrite certain lines made by contributors it was because we couldn't think of any other way to do it. I mean, how many ways you can call a certain API like dispatching an event?

christianbundy commented 3 years ago

See, your dishonesty shows. Way to quote something out of context.

I'm actually impressed at your ability to deflect and avoid addressing anything anyone else says.

They trolled me when it was still AGPL. That's the ONLY reason I had to change it to unlicensed.

Can I get a link please? I want to believe you, but our relationship has been off to a rocky start.

Lattyware commented 3 years ago

rather than painting people acting in good faith as harassers.

If you seriously believe the OP acted in good faith after hearing my side of the story, we're very different.

I do, and I have no skin in the game here. I think you are letting a genuine bad experience colour your interaction with others, and it is escalating. I would recommend taking a step back, and re-engaging with the assumption people are just being genuine here and trying to ensure the AGPL isn't being violated.

You came out swinging, and only revealed a lot of key details after multiple attempts where you have deleted people's comments, closed issues as spam and so on, rather than just responding. I can understand how you might assume bad things given previous issues, but that certainly isn't my read from what I saw of this.

but it appears that you haven't done that in at least one case

You mean this case? First, to be absolutely clear, I value all contributions and I honestly wish I received enough contributions so that I didn't have to introduce the paid plan to pay people to work on it.

Now, if you looked at that code closely, you would see we rewrote and made it much more robust. If we didn't rewrite certain lines made by contributors it was because we couldn't think of any other way to do it. I mean, how many ways you can call a certain API like dispatching an event?

I'm no lawyer, and I'm sure there is an argument about trivial similarities in reimplementation, but as you have stated that you used their code and left small parts of it unchanged, not just that you recreated trivial parts incidentally, my understanding is that is making a derivative work based on the other person's, not making a separate implementation.

Fundamentally, people are just trying to look out for other open source contributors and ensure their work isn't being used in a way they wouldn't like. Why not just contact these few people and ask them to allow you to use their work? I really can't believe most people would have any issue with it, and if they do (or you can't contact them), a clean-room re-implementation should be easy if we are really talking about trivial code.

To say you value contributions, while freely admitting you didn't do so enough to contact people to ask to use their work, while also complaining about people being unwilling to let you value your work... I can understand why people think you are acting in bad faith.

buunguyen commented 3 years ago

Can I get a link please? I want to believe you, but our relationship has been off to a rocky start.

https://github.com/ovity/octotree/commit/9da83c47a07e57b55433b0c6ad3515bb43f88f1b

I'm actually impressed at your ability to deflect and avoid addressing anything anyone else says.

I'm actually more impressed that you were being dishonest right from the start, never admitted you were wrong in your accusation even though I have been very clear about everything in my responses.

morotti commented 3 years ago

FYI: This bug report made it to the hacker news front page so it may a get a lot of viewing very soon https://news.ycombinator.com/item?id=24953821

One very important point that's been missing from the hundreds of commenters so far is that there are some constraints for code to be copyrightable, like the work has to be original.

It's not 100% clear cut what is copyrightable but a typo correction or a half-line edit would most likely not qualify.

One comment had some statistics showing that most of the contributors contributed very little (many a single line change). Should review the changes for what may actually be copyrightable. That should reduce down the copyright issue significantly.

IMO: could remove the typo commits and similar. Alter the git history, remove the commit, redo, force push. It might make the open source community cringe but it should be fine legally.

hyiltiz commented 3 years ago

One comment had some statistics showing that most of the contributors contributed very little (many a single line change). Should review the changes for what may actually be copyrightable. That should reduce down the copyright issue significantly.

Good call!

IMO: could remove the typo commits and similar. Alter the git history, remove the commit, redo, force push. It might make the open source community cringe but it should be fine legally.

No! Re-writing history probably is never a good move. Instead, consider simply writing up a short report from the above investigation, and explicitly state the status of each contributor's contributions:

zacanger commented 3 years ago

Another option that would probably be acceptable to most people involved would be relicensing under BSD or similar, which would solve all these problems as long as contributors consent to that change. Doing that up front would've saved a bit of stress for a few people today, I bet :)

hyiltiz commented 3 years ago

Another option that would probably be acceptable to most people involved would be relicensing under BSD or similar,

Reverting back to AGPL is much easier and less problematic than reverting back migrating to to BSD; relicensing AGPL to BSD leads to very similar problems as outright close-sourcing an community-contributed AGPL program.

buunguyen commented 3 years ago

I do not want you to renege on your license agreement or lie about the fact that your proprietary product is a derivative of AGPL code.

We talked about this, didn't we?

It's a shame you didn't act in good faith right from the start by making a blatantly false accusation, which you never admitted you probably had come up after a cursory look. And you keep calling me a liar even though I have explained everything very clearly.

So no, I do not understand what you really want.

ddevault commented 3 years ago

@buunguyen, you weren't acting in good faith when you created a closed source fork. You are not legally allowed to do this, and you knew you were not allowed to do this. If you're trying to create a legitimate business then you had better change your tune before you get legitimately sued.

"It is hard to make someone understand something when their paycheck depends on their not understanding it."

Well, I hope that paycheck covers the legal fees and damages which you're about to acrue.

Have some respect for the contributors who have helped you, for the licenses you have chosen, and the bountiful free software community on whose shoulders you stand.

buunguyen commented 3 years ago

Reverting back to AGPL is much easier and less problematic than reverting back to BSD; relicensing AGPL to BSD leads to very similar problems as outright close-sourcing an community-contributed AGPL program.

Done https://github.com/ovity/octotree/commit/29fa675edde212c688d51428ed3912cdce65fccd

As a context for the people who just came here, I removed the license a few days ago because I was tired of people asking me why I didn't open-source the full Octotree version. Over the last 1.5 years since I started charging for certain functionalities in Octotree, there have been dozens and dozens hate emails, comments, insults and threats targeting me. On the contrary, during the 4+ years I created and maintained Octotree completely free and open-source, I couldn't recall 3 people who personally thanked me for my work. Such is the life of being an open-source maintainer.

ddevault commented 3 years ago

It looks like you reverted the license in the support branch (and the real code lives in master).

ddevault commented 3 years ago

To be clear, you will also have to publish any changes which are included in your closed source add-on under the AGPL license. You can't stick the AGPL on the "old" version which is on master now and call it a day.

Lattyware commented 3 years ago

@buunguyen, you weren't acting in good faith when you created a closed source fork. You are not legally allowed to do this, and you knew you were not allowed to do this. If you're trying to create a legitimate business then you had better change your tune before you get legitimately sued.

"It is hard to make someone understand something when their paycheck depends on their not understanding it."

Well, I hope that paycheck covers the legal fees and damages which you're about to acrue.

Have some respect for the contributors who have helped you, for the licenses you have chosen, and the bountiful free software community on whose shoulders you stand.

I think you have come into this too hot. I certainly think @buunguyen has done something wrong here, but your post implies a great deal that simply isn't true, and frankly it isn't helpful to anyone.

It is absolutely legal for someone to take code they wrote and licenced under one licence and license it under another.

Clearly, no one is going to sue anyone for large amounts of money here. At absolute worst I could imagine would be enforcement and fees, and I can't imagine anyone would bother. Being hyperbolic doesn't help anyone.

As a context for the people who just came here, I removed the license a few days ago because I was tired of people asking me why I didn't open-source the full Octotree version. Over the last 1.5 years since I started charging for certain functionalities in Octotree, there have been dozens and dozens hate emails, comments, insults and threats targeting me. On the contrary, during the 4+ years I created and maintained Octotree completely free and open-source, I couldn't recall 3 people who personally thanked me for my work. Such is the life of being an open-source maintainer.

The vast majority of people here are not complaining about you making your closed source version, just your use of other people's code you didn't have the right to re-licence. Framing that as entitlement from others over your open source work is highly misleading.

ddevault commented 3 years ago

It is absolutely legal for someone to take code they wrote and licenced under one licence and license it under another.

Yes, unless it's linked with code they don't own the copyright to, and which uses a viral license like AGPL. Which is why we're here. Anyone who receives a copy of the extension with AGPL'd code included is entitled to the full source code, including any modifications or derivative works, under the AGPL license.

I might have come in "cooler" if there wasn't already a rather long thread of bad-faith arguments and censorship coming in first.

j1elo commented 3 years ago

@buunguyen people in this particular conversation are discussing your actions (really, discussing, as I don't see any trolling here, if they were trolling you... the tone of the comments would be very different) because of a small but important detail of how you managed the whole relicensing thing. Anyhow, I think the most productive course of action would be to everybody step back, see what cards we have in the table, and what is the correct (read: legal, not necessarily morally ideal) way to handle the situation.

When other contributors get their changes merged under the AGPL, you don't own that code, so you cannot just change its license (to proprietary or otherwise, it doesn't matter). I think we all get you own 99% of contributions' copyright, but to do it properly, you are missing that 1%, even if it's one single line of code.

The way to do it is like described here: https://github.com/christianbundy/octotree/issues/1#issuecomment-719994704 either getting permission from the original contributors, asking for copyright assignments, or undoing the contributions and then really rewriting them from scratch (yeah even if you end up writing very similar code, you have to revert the contribution and rewrite it yourself). This comment shows some ideas of how to do it: https://news.ycombinator.com/item?id=24955208

I think the main issue here is that the AGPL obliges you to publish all modifications ("derived work") also as AGPL, but I'm not sure this has been the case.

NOTE: this legal topic about AGPL copyleft and your project's licensing is independent of the other tons of hate comments and emails you received in the past. That's despicable and product of a toxic part of the community, which sadly are always present in mostly all communities. So let's not mix everything together; handle the licensing part correctly is orthogonal to handling the spam you receive because of what you do with the stuff you're the owner of.

EDIT: Added link to HN comment about how to rewrite parts of the code.

ddevault commented 3 years ago

It's important not to get distracted by comments about trolling or this being a thankless job, @j1elo, nor in how to effect a rewrite which wouldn't run afoul of the AGPL. The AGPL has already been run afoul of. @buunguyen's attempts to distract from this central issue are unimportant for the time being.

The author is obligated to publish the source code of the propreitary version under the terms of the AGPL.

j1elo commented 3 years ago

The author is obligated to publish the source code of the propreitary version under the terms of the AGPL.

I believe that was the main point of my previous comment. It was long because the first paragraphs are just about trying to relax the situation from both sides and asking to bring a cool head and solid arguments, leaving accusations aside.

Indeed, I believe the main issue here is that the project's license cannot be changed until 100% of the copyright is owned, and until that happens, all of the code and further development falls under the AGPL, due to the contagious features of this licensing.

(side note: by the way all this doesn't mean the project cannot be commercialized and sold as a product, but its source code must be provided under the terms of the AGPL)

ddevault commented 3 years ago

I understand what you're trying to do, but engaging with distractions allows the maintainer to divert from the problem even more. Stay focused on the main point: the violation of the AGPL, and the obligation to release the code.

ddevault commented 3 years ago

@buunguyen the problem is with your repository, not with this one. Own up to your problems, boy-who-cried-spam.

cladoxylopsidus commented 3 years ago

Seems like DMCAing would be apt.

justintime4tea commented 3 years ago

Firefox extensions are (unless maybe written in Webasm?) javascript right?

Is it legal to take work, which is illegally relicensed , stolen, or derived from AGPL and therefore is legally AGPL, and publish it yourself?

I understand in this case its been obfuscated (maybe it was just minified?) however I am curious in the general sense (as well this case) what your opinions are.

ddevault commented 3 years ago

I agree. With an abusive, non-cooperative entity like @buunguyen, the only solution which will actually stick is likely to be through legal means.

Anyone who has copyright over contributions in the repository could also have a lawyer prepare a demand to release the source code, and file suit if necessary. I would be happy to assist with the legal costs if any contributors want to go this route - send me an email: sir@cmpwn.com. I won't stand for abuse of free software.

buunguyen commented 3 years ago

@Lattyware

I appreciate you keep your cool and be constructive unlike certain people here. This isn't the first time I receive that kind of threats though.

I understand your point about the license. Please keep this in mind:

I've added back the AGPL for the open-source version. I removed it a few days ago because of I was tired of people telling me I must open-source Octotree. Little did I know it would rub off even more people.

The fact of the matter is Octotree is my sweat, labor and for the last 1.5 years, investment. I'm truly surprised that people like @christianbundy and @ddevault are hell-bent on making this a personal vendetta and have been spamming and/or threatening me non-stop here and everywhere based on some baseless projections and technicalities.

kordless commented 3 years ago

@ddevault @Lattyware @christianbundy I have a few questions for the three of you.

Did you contribute to the repository's code base? Do you think this ticket provides an actionable item, or is it simply being used as a placeholder for a complaint you feel you "own" now it's in your forked repo. I will point out the source is here to be viewed.

Why not allow an actual contributor of code to this project to address this with @buunguyen regarding his fork? Instead of demanding them do the work and spending your time attacking him here for not doing the work, why not just do it yourself? It would seem to be very easy for the three of you to work together to determine which lines of code we are talking about that would need to be cleared by the various developers you claim should have been contacted. Why not assist @buunguyen in contacting these individuals instead of rabble rousing? What good does that do any of us. Instead, the way you present it is absolute in nature and demands the developer and original license holder do the work you want them to do, all the while demanding it from them because "it's not legal".

That is not the base intent of any software license, to allow this type of harassment.

Things are only illegal if proven to be illegal in a scene represented by legal authority. That would need to be done by someone that actually had their rights violated, not some figment of the imagination of a non-contributor.

@buunguyen I've dealt with this before, so know you aren't alone.

justintime4tea commented 3 years ago

If someone wanted to provide PRO features not under AGPL I imagine it would have been perfectly legal to create "pro" features which come in the form of javascript "packages/modules" that are written, published, and licensed separate from the "core" work, yes?

ddevault commented 3 years ago

I and the team I hired wrote 99.9% of the open-source Octotree version.

It does not matter.

That said, we'll trace through the code and if there are pieces we believe weren't rewritten, we'll either ask the original author to re-assign the license, remove it, or find a way to rewrite it.

This is not an acceptable resolution. You are obligated to release the source code. You cannot remove the code which you do not own and continue to leave the rest proprietary.

If anyone is trolling here, it's you. You need to stop distracting from the problem and face the real issue: you are required to release this code. Your sweat and labor are not relevant to the legal matter. The issue is not more or less complex than that. You are required to release the code.

cladoxylopsidus commented 3 years ago

He admits to stealing 0.1% of the code.

fabianhjr commented 3 years ago

Hi @buunguyen, I think you got to the heart of the matter on your last comment:

that said, we'll trace through the code and if there are pieces we believe weren't rewritten, we'll either ask the original author to re-assign the license, remove it, or find a way to rewrite it.

This should be enough to address the legal/copyright concerns and I wish you well on that task.

buunguyen commented 3 years ago

He admits to stealing 0.1% of the code.

Honestly, did you read the full piece before dropping a comment? People, you're subjected to your opinions, but please at least understand the situation first. This is ridiculous.

ddevault commented 3 years ago

This should be enough to address the concerns and I wish you well on that task.

It's not, @fabianhjr. Once you have linked with AGPL'd code and shipped software with it, you are required to release the source code under the terms of the AGPL. You can't un-ship the software. You are required to release the code.

@buunguyen you MUST release the source code. That's it.

I will re-iterate that I would be happy to cover the legal costs for any contributor who feels slighted by having their work stolen and sold by @buunguyen to file a lawsuit.