Sunday, 2022-01-02

*** lkcl <lkcl!~lkcl@92.40.175.158.threembb.co.uk> has quit IRC13:30
*** lkcl <lkcl!~lkcl@92.40.175.155.threembb.co.uk> has joined #nmigen13:40
lkclmikolaj[m], this explains the situation http://lists.libre-soc.org/pipermail/libre-soc-dev/2021-December/004302.html14:09
lkclwe're operating lawfully under license from M-Labs as the Authorised Maintainer of nmigen 1.014:10
lkclToshaan Bharvani, the Technical Chair of the OpenPOWER Foundation, is also an authorised co-maintainer.14:10
mikolaj[m]lkcl: i need background information of that decision20:20
mikolaj[m]And why does it contain commits from whitequark after she and M-Labs ceased cooperation?20:22
mikolaj[m]What advantages does using an Nmigen repo based on whitequark's repo with an explicit blessing of M-Labs give?20:25
lkclmikolaj[m], there's a news article which should come out around 11th january which gives the background.22:15
lkcli've been negotiating with sebastien for the license, that was agreed around 3-4 days ago22:16
lkcldo you mean: why does it contain commits after whitequark's employment was terminated, around 2 years ago back in january 2020?22:17
mikolaj[m]yes, that's what I'm asking about22:18
lkclbecause nmigen is a Libre/Open project. anyone can contribute to a Libre/Open Project's source code repository, under Copyright Law22:18
lkclusing the *lawful* (registered) nmigen over the *unlawful* (trademark-violating) version, it should be quite obvious:22:19
lkclif you contribute to the unlawful version, then you are also acting unlawfully.22:19
lkclif you *use* the unlawful version, particularly in a Corporation, you are placing yourself at risk.22:20
lkclthe *lawful* version however: as long as you respect Trademark Law, you are not at risk22:21
lkclwhich is why it was so critically important for us, Libre-SOC, to negotiate (and be granted) a License with M-Labs, because it means that we are acting lawfully.22:21
lkclit also, as the maintainers, comes with some responsibilities to be Fair, Reasonable and Non-Discriminatory.22:22
lkclnot many people are aware that FRAND (Fair, Reasonable and Non-Discriminatory) applies just as much to Trademark Law as it does to Patent Law.22:22
lkclif you search "FRAND Trademark" you get almost zero hits.  search "FRAND Patents" and it's a completely different story22:23
lkclquite interesting.22:23
mikolaj[m]you don't need to negotiate a license from anyone to use 2-clause BSD licensed code in order to be acting lawfully22:24
lkclyou are thinking of Copyright Law.22:25
lkclthere are four different branches of law: 1. Copyright, 2. Design Rights, 3. Trademarks, and 4. Patents.22:26
lkclthey are all completely different and cover completely different things.22:26
lkcla *Copyright* License has absolutely nothing to do with a *Trademark* License22:27
mikolaj[m]the top reasoning only explains not contributing to Amaranth upstream, and only in the period from trademark registration to renaming to Amaranth22:27
mikolaj[m]you don't need to negotiate a license from anyone to use 2-clause BSD licensed code. You don't have to use the word "Nmigen" anywhere22:28
lkclok, so because Trademark Law is not so well-known, there's not too many resources i can refer you to, online, which explain it22:29
lkclTrademarks cover "brands".  in this case, the "brand" is nmigen.22:29
lkclsource code is covered by Copyright Law, and the License says what you can do with it.22:30
lkclhowever - and this is spelled out in the GPL but not in the BSD License - the GPL License explicitly says (not in these exact words), "if you have other obligations, you cannot ignore them"22:31
lkcland in this particular case, those obligations under *Trademark* Law are "you cannot bring the Registered nmigen brand into disrepute"22:31
lkclalso an aspect of Trademark Law: you may *USE* a Trademarked brand, but if you wish to *distribute* it you *must* seek the explicit permission of the Trademark Holder22:32
mikolaj[m]you don't need to use the "Nmigen" brand22:32
lkclnixos, debian, fedora, etc. etc., all linux distros *must* seek permission, or have an explicit notice (similar to a Copyright License like the BSD License) that they can refer to which grants them those rights22:33
lkclif it has the word "nmigen" in it, you *are using* the nmigen brand22:33
lkclbecause it is the word "nmigen" which is Trademarked22:33
lkcland the word "nmigen" is contained within the text of the source code22:34
mikolaj[m]as I said previously: you don't have to use the word "Nmigen" anywhere22:34
lkcland that has *nothing to do with the BSD license*22:34
lkcl"from nmigen import Signal"22:34
lkclthis constitutes, legally, "use of the nmigen brand"22:34
mikolaj[m]sed s/nmigen/librehdl/22:35
lkclyes, we could do that... except we would quite reasonably lose the license from M-Labs for doing so.22:35
mikolaj[m]license for brand Libre-SoC is not using?22:36
lkclremember: we are the ones that are operating lawfully. there is no need for us to go creating a hard renaming-fork of nmigen, and it would seriously hurt the project to even attempt or suggest it22:36
lkclto properly do such a fork, we would have to:22:36
lkcl1) take a copy of the nmigen source code22:36
lkcl2) create an ENTIRELY NEW git repository22:37
lkcl3) perform a global-search-and-replace22:37
lkcl4) check in the newly-renamed source code making ABSOLUTELY SURE that under no circumstances is the word "nmigen" mentioned anywhere22:37
lkcl5) maintain that hard fork indefinitely22:37
lkclall of which would be extremely costly and not in the least bit in our interests22:38
lkclwhy?22:38
lkclbecause we are lawfully operating under license to maintain nmigen.22:38
lkclthere *is* no need for us to perform a hard-fork of nmigen.22:38
lkclmake sense? :)22:39
mikolaj[m]m-labs/nmigen was not actively maintained. What you're saying in the email is that it's the Libre-SoC organization who is going to maintain it22:41
mikolaj[m]I don't see a big difference between this and maintaining a fork that has an entirely different name22:42
lkclyes, it was not maintained, because whitequark's employment was terminated.22:43
lkclyes, that's correct: we are the authorised maintainers (and Toshaan, Technical Chair of the OpenPOWER Foundation)22:44
lkclthat's an interesting question.22:44
lkclthe difference is - again - comes down to brand and reputation22:44
lkclnmigen is *known* to be damn good.22:44
lkclSebastien created it, and owns it.22:44
lkclan employee of his was paid to *work* on it... *not* to "take ownership of it then trash M-Labs on social media"22:45
lkclwe now have 150,000 lines of nmigen HDL, using nmigen.22:46
lkclto have to change to a completely different name - for no good reason - this is a vast amount of time and effort.22:46
lkclif you are referring to *unlawful* forks of nmigen, this is where Trademark Law comes into play.22:47
lkclit is unlawful to do something like:22:47
lkcl"nmigen is terminated, and being renamed to {insert new name here}"22:47
lkcldoing so is a really serious violation of Trademark Law, because you have brought the nmigen brand into disrepute by saying "nmigen is terminated"22:48
lkclcustomers of M-Labs will go "arrrrgh, nmigen is terminated! how the hell am i going to get support for it now???"22:48
lkclyes?22:48
lkclyou see how that's damaging to M-Labs?22:49
lkclthis is why Trademark Law was created, so that unauthorised people cannot just blithely make arbitrary public (or private!) statements which hurt your "brand"22:49
lkclbut, also, by claiming "nmigen is renamed to {insert new name here}" you *also* do not have the right to do that, under Trademark Law22:50
lkclthat *also* hurts the brand.22:50
lkcland, consequently, again, it is covered by Trademark Law "continuity" provisions.22:51
lkcl"{insert new name here}" becomes what is called an "alias" - an "also known as".22:51
lkcland the Trademark holder is the legal owner of the published aliases - *not you*!22:51
lkclif however you do a fork *entirely without mentioning nmigen in any way* - then you are perfectly fine22:52
lkclbut now, because you are the sole exclusive user of that fork, *you* have a huge maintenance burden22:52
lkclit's quite subtle, but also very clear.  it's just rather unfortunate that not many people in the FOSS world are properly informed about the distinctions.22:54
mikolaj[m]it's not easy to determine who was in the right of the Nmigen dispute; both sides had stakes in the project23:14
lkclah, no. it's actually very clear.23:14
lkclwhitequark was an employee.23:15
mikolaj[m]the decision to maintain Nmigen on behalf of M-Labs puts Libre-SoC on one side of a conflict23:15
lkclemployees do not own their work, unless they have a specific agreement.23:15
lkclwe have to maintain nmigen on behalf of *Libre-SOC*23:16
lkclwe've 150,000 lines of HDL using it!23:16
lkclwhich is about 5x larger than nmigen itself!23:16
lkclthe IEEE754 FP library i think is something mad like 75,000 lines including unit tests.23:17
lkclwe have no problem with people acting lawfully - and are in fact *required* to act Fairly, Reasonably, and Non-Discriminatorially, to *all* contributors of nmigen23:18
mikolaj[m]I understand M-Labs claim on Nmigen as a name23:27
mikolaj[m]I don't claim I consider M-Labs to be morally right there, but I sure understand why they have a stake in this23:29
mikolaj[m]however I don't understand why the M-Labs version of Nmigen now contains whitequark's code committed long after her cooperation with M-Labs ceased23:31
lkclmikolaj[m], you may have seen - may only have seen - the twitter storm. i too was taken in. i initially believed that whitequark was a victim.23:32
lkclbecause Copyright Law is not the same as Trademark Law.23:32
lkclthey are completely23:32
lkcland utterly23:32
lkclseparate23:32
lkcland distinct23:32
mikolaj[m]it's not really related to copyright law23:32
lkclyou can be perfectly respectful of Copyright Law yet in violation of Trademark Law, and vice-versa23:33
mikolaj[m]this is a moral question23:33
lkclyes: but also a legal one.23:33
lkclwe cannot be Unfair or Discriminatory towards *anyone*, here.  even towards whitequark!23:34
lkclwe cannot exclude whitequark's copyrighted material for being "immoral"!23:34
lkcl(hypothetically speaking)23:34
mikolaj[m]as long as M-Labs continues to develop its own fork on their own, I have empathy for their position23:35
lkcli realise that is quite odd, but it is just part of the responsibility of a Trademark Holder (and its licensed maintainers)23:35
lkclyes, but here's the problem: we - Libre-SOC - are *excluded* from contributing to the unlawful fork!23:35
lkclwe *had* to maintain our own fork of nmigen!23:36
mikolaj[m]however integrating work done by Whitequark after their falling out into the version they claim ownership over by trademark is morally dubious23:37
lkcland given that we've got EUR 750,000 of EU Grants critically depending on it, we *have* to maintain it23:37
lkcl...23:37
lkcli see your point, however it's just part and parcel of the responsibility of the Trademark Holder (and the licensed maintainers)23:38
mikolaj[m]M-Labs stake predominantly comes from the fact that they started the project, named it, funded it, and that the project is based on their earlier work23:38
lkclwe really, really, *really* cannot be "Discriminatory"23:38
mikolaj[m]the code itself is almost completely Whitequark's23:39
lkclyes.  which is quite likely (highly likely) why the Trademark was granted.23:39
mikolaj[m]in the sense that Whitequark made it23:39
lkclno23:39
lkclup to the point where whitequark was an *employee* of M-Labs, it is *M-Labs* that owns the copyright.23:39
lkclentirely.23:39
lkclthis is actually recognised in the nmigen source code.23:40
lkclthank goodness whitequark had the good sense to not attempt to remove M-Labs' Copyright notices.23:40
mikolaj[m]I have no idea what do you mean by "Discriminatory" here23:40
lkclthat would have brought a Copyright violation down on her, as well23:40
lkclDiscriminatory: https://dictionary.cambridge.org/dictionary/english/discrimination23:41
mikolaj[m]I have doubts if that was actually the reason why the trademark was granted; the trademark law generally allows to register brands you aren't currently using23:41
lkcltreating a person or particular group of people differently, especially in a worse way from the way in which you treat other people, because of their skin colour, sex, sexuality, etc.:23:41
lkclin this particular case: just because someone does something that you think is "morally dubious", if you then "exclude" them from participation in some activity, that is "discrimation"23:42
lkclyou have "discriminated" against them - excluded them - based on a "judgement" that their behaviour is "morally dubious"23:43
lkcland we could get into serious trouble for doing that.23:43
mikolaj[m]are you saying that M-Labs owns the copyright for the code Whitequark wrote after her contract with M-Labs was terminated?23:43
lkclno. i said that M-Labs owns the copyright for the code whitequark wrote during her *employment* with M-Labs.23:43
lkcl(employment is not the same as a contract)23:44
lkclit's in the Copyright notices.23:44
mikolaj[m]I don't know whether whitequark was an employee or a contractor; in that matter I recall someone saying she was the latter23:45
lkclhttps://gitlab.com/nmigen/nmigen/-/blob/master/LICENSE.txt23:45
lkclSebastien informs me that she was an employee.23:45
mikolaj[m]alright, nevermind on that then23:45
lkcllet me check23:45
lkclyes, again, you will see a *lot* of misinformation online about this23:46
lkclyep, employee23:46
lkcland that misinformation is part of the Trademark violation, because it brings the nmigen brand, and M-Labs, into disrepute.23:47
lkclnone of this should be happening, at all.23:47
lkcli mean, it's quite, quite ridiculous, to be spending so much time on this instead of advancing FOSS Hardware.23:48
mikolaj[m]ok, pardon my earlier question about copyright ownership, I misunderstood what you said in one sentence23:48
lkclno problem23:48
lkclanyway, 23:49 here, have to rest.23:49
mikolaj[m]as for "Discrimination"23:49
mikolaj[m]you can freely choose with whom you want to work or not23:49
mikolaj[m]and so you can avoid working with someone if you have reservations to their conduct23:50
mikolaj[m]however that does not really matter here23:53
mikolaj[m]my moral issue is about integrating to Nmigen code from whitequark's repository that was created after the falling out23:54

Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!