Microsoft forked MIT licensed repo and changed the copyright [fixed]
github.com
github.com
We have merged a pull request that restored the correct LICENSE file and copyright, and are in touch with the upstream author Leśny Rumcajs who emailed us this morning. We'll look to revert the entire commit that our bot made, too, since it updated the README with a boilerplate getting started guide.
The bug was caused by a bot that was designed to commit template files in new repositories. It's code that I wrote to try to prevent other problems we have had with releasing projects in the past. It's not supposed to run on forks.
I'm going to make sure that we sit down and audit all of our forked repositories and revert similar changes to any other projects.
We have a lot of process around forking, and have had to put controls in place to make sure that people are aware of that guidance. Starting a few years ago, we even "lock" forks to enforce our process. We prefer that people fork projects into their individual GitHub accounts, instead of our organization, to encourage that they participate with the upstream project. In this situation, a team got approval to fork the repository, but hasn't yet gotten started.
To be as open as I can, I'd like to point to the bug:
- The templates we apply on new repositories live at https://github.com/microsoft/repo-templates
- The bug seems to be at this line of the new repository workflow: https://github.com/microsoft/opensource-management-portal/bl...
- The system we have in place even tries to educate our engineers with this log message (https://github.com/microsoft/opensource-management-portal/bl...): "this.log.push({ message: `Repository ${subMessage}, template files will not be committed. Please check the LICENSE and other files to understand existing obligations.` });"
Had a similar experience with AzureCli v2.30, where the environment variable to ignore certificate errors suddenly did not work anymore.
It turned out it was removed but there was no mention of it in the release notes.
On the GitHub page quick response was provided by Microsoft.
I always appreciate communication that acknowledges I’m a person, not a data point or a customer. I wish more companies ditched the greasy PR approach and allowed folks like Jeff to do their talking for them.
If we remove this feature of common law legal systems, I think you will get far more admissions of fault like this one.
If you hurt people, organizations, etc for admitting their mistakes, they're going to stop doing it.
E.g. if Microsoft burned your house down would an apology and explanation be enough to settle the matter? How could we encode this principle into law for minor things but not large things?
In general, I wouldn’t say that causing someone harm should be dismissible with an apology, but in a situation where the harm seems pretty limited, easily reversible, and unintentional—and the apology seems genuine and even informative—I don’t see a particular benefit to causing hardship to someone who made a mistake. The communal reaction as it is should give Microsoft/Google/etc an idea of what the blowback would be if this sort of thing was a deliberate corporate practice.
But it wasn’t, and they did undo it, and I found their response impressively civilized and professional. So I’m not really understanding why everyone seems to want to hold this guy accountable for all the shitty stuff Microsoft could have done, didn’t do, and apparently did in the past.
I don’t have any doubt that it was an honest mistake. They also took accountability for the mistake, shared their steps to prevent it from happening again, and they’re in contact with the original repo author directly.
At this point, anyone digging for excuses to further demonize Microsoft isn’t interested in honest discussion about this issue. This is a textbook mistake followed by rapid resolution (on Christmas Day, no less), with great communication on top.
> Prescribe not to malice that which may well be a buggy edge case.
I hope that despite all the harsh words, you can have sympathy with that behind them are legitimate concerns and suspicion stemming from past bad behavior from various part of your organization. Due to this, and Microsoft's position of power, you have a much, much lower budget for these kinds of mistakes compared to the most other orgs.
Even if there was nothing intentionally malicious at play here, it would not be far-fetched for an outsider to interpret as "implicit maliciousness through neglect".
Here's hoping that 2022 will be a year of bridging the divide and sincere alignment.
This comment speaks towards that this is the case:
https://news.ycombinator.com/item?id=29686347
> I know Jeff personally and he's great. This happens all the time at Microsoft though. Teams try to do OSS themselves, haven't a clue how GitHub or licensing works (e.g. they think the CLA transfers copyright), and after a slap aside the head, I send them to Jeff for guidance and all is well.
(I mostly agree with your sentiment, though. I do get the impression that leadership is sincere in wanting to do right. It's just that it's not that black-and-white or easy. As another MS employee commented, this is something that has to take time and they need to be held accountable along the way. https://news.ycombinator.com/item?id=29684127)
It can be hard to assume good faith when your counterpart clearly isn't. But I think it can be at least as important then. We need to come together and find common ground.
We are still working on it. And, it will take time.
Jeff's team, my team, the java team whose forked repo this unintentionally highlighted are working with dozens of other teams every week. Satya says we're all in on open source.
Hold Jeff and Me and all the leaders of Microsoft to that vision. Keep us accountable. And, know this takes time. Let's make technology and humanity healthier and more sustainable in 2022.
I was all in on MS as a kid/young teen.
Eventually I started looking at the actions of Microsoft, and as stupid as it is, felt betrayed.
I still don't trust MS, and still hate the direction Windows is heading, I will probably never daily drive it again.
However, comments like these give me hope that MS can turn itself around. Maybe some day MS will be the company I thought it was!
Tl;dr: Thanks for making changes!
So, for the sake of the feelings of the innocent people who work there, I would ask everyone to please modulate the volume and intensity of ire that they project. Please speak truth to power, but don't be harsher than is needed to get your point across.
You're not, just as your competitors aren't.
None of the secret sauces are Open Source: Windows, Office, Visual Studio, SQL Server, the Azure control stuff, and I don't expect them to be.
You're half in, at best, only Red Hat was all in. And they were bought out by IBM, so here we are.
Edit: I guess the truth hurts :-)
I certainly understand how scandalous this looks to crowds like Hacker News.
But this seems a little bit blown out of proportion, as if Microsoft just forked the kernel or something and put their name on the license.
I don't. I'm with the Microsoft employee who was pissed at how people think it's edgy to diss on Microsoft. What were the chances that Microsoft was openly doing that? Some dude who has now deleted his post said Microsoft was trying to "create a monopoly of web IDEs". These are clearly people who barely have a passing knowledge of how Microsoft works these days.
People think critical thinking means complaining endlessly. It doesn't. You can't think critically if you don't think clearly. And you can't think clearly if you're only looking for a reason to lift the pitchforks.
https://keivan.io/the-day-appget-died/
https://web.archive.org/web/20180715225433/https://threadrea...
It took significant public outrage and press coverage before either of those were even acknowledged, a long time after.
> What were the chances that Microsoft was openly doing that?
After reading the above, is it really that edgy to be assuming the worst? If it's truly just recurring instances of different rogue employees, doesn't that speak to a systemic and/or cultural issue that needs to be addressed with additional internal safeguards and/or deterrents to prevent it from happening again?
To the credit of the relevant team here, today this was promptly addressed as soon as it got their attention. But it will take more than that to set to rest decades of precedence.
(I did not partake in the flaming and don't find it constructive or beneficial; just saying I have full understanding of the suspicion and understand that MS are still on probation)
Yes. Neither of this are particularly damning.
> doesn't that speak to a systemic and/or cultural issue
No, not particularly. I think it says more about the person jumping to such conclusions considering the evidence.
https://github.com/microsoft/rushstack/issues/673#issuecomme...
Sorry for using it without fact-checking it properly, I guess.
The thread would have been a lot more fun if we could have spent it talking about what prompted your team to build this thingy, and bounce other people's approaches to the same problem off, and maybe share some war stories about dumb things bots have done on our behalf.
Thanks, regardless, for the information you've provided here. It's interesting.
Another good reminder that Hacker News is not above assuming the worst and gathering pitchfork mobs like any other social media.
The issue looked like a mistake from the start to anyone paying attention (committed by a bot, changes were consistent with a boilerplate LICENSE file being checked in).
If someone at Microsoft wanted to steal some code, forking it on Github and then publicly documenting the history of the code in the most visible way possible would truly be the dumbest way to do it.
[0] https://openprinting.github.io/cups
[1] MSFT moved attribution to NOTICE file, which is cleaner, but trips people who aren't paying attention: https://github.com/microsoft/cups/blob/main/NOTICE
I would go so far as to say almost no group is, they just have different preconceptions that encourage assumptions of malice in different ways and directions.
There is no substitute for more facts about the situation, no matter how much we'd like to assume the details that aren't given.
Track records matter and Microsoft doesn't have a clean one. Scrutiny of companies of their size should be the norm. Maybe they would do more to improve "mistakes" if more people held them accountable in a continuous fashion.
Hardly "weasel words" when you look at the action that took place. It wouldn't be OK for you to do it and it isn't OK for a bot that Microsoft deployed incorrectly to do either.
I understand the license. Based on your response and Microsoft's attribution change I don't think you understand the argument. I won't patronize you however based on the non-response.
So, yes, nonsense issue. What am I missing?
The Microsoft STL issues are usually quite fun and entertaining, at least if you don't have to use it: https://github.com/microsoft/STL/issues/1603
So, yeah, hugops, mate.
It is good to be reminded that care and integrity can exist, even in large corporations.
https://github.com/microsoft/cups/commit/8100595a3a3a6d5c7d0...
Again, this is a person, not a robot. How does this play into a "software bug"?
Courts will take a far more generous view than you are here. If Microsoft is not profiting from the change, and fixes it promptly when pointed out, the courts will shrug at any case - no harm, no foul. It's not even clear to me that it's illegal to have the wrong license on GitHub, assuming the shipping product does not violate the correct license. As nobody has pointed to any infringing Microsoft product... What are we talking about?
My guess is that they were going through a checklist of what to do when releasing open source changes, and didn't understand what they were doing.
A lot of why we've had to put some guardrails in our system has been to point people to guidance and training on open source.
I've sent the team that works on this repository an e-mail, but I don't expect to get a response on the holiday.
The pitchforks will come down, anyway :-)
Our process revolves more about _using_ open source than forking specifically.
Whenever a build runs at the company, we have a detection task that identifies the open source that is used, storing an inventory. We evaluate the open source licenses for that inventory, and have automation depending on the license that will help inform a team that has taken a new dependency with specific legal obligations - could be to get business and legal approval for something, to take training and learn about copyleft software and licensing, or that they need to post third-party buildable source. We're also able to use that inventory to help with incident response and blast radius analysis.
To scale, we need to make sure that our guidance and policies are in front of people, but we know that engineers want to get work done (or will find a way around what we have in place), and so need to be efficient and straightforward.
Not all situations will require a business or legal approval. Our motto has been "eliminate, automate, delegate" - eliminate onerous bureaucracy and policies - automate licensing compliance and inventory and approvals - and delegate to business leaders and others when there's a need for humans to be involved.
Sorry for the long answer.
https://github.com/microsoft/opensource-management-portal/bl...
>SQL Operations Studio was built on the back of many open source projects that all use the MIT License for a reason: it's the right way to keep moving the community forward, empowering your users to do cool stuff and build useful things for the community.
>We're just asking SQL Operations Studio to use the same license that Visual Studio Code does.
That is not, however, a complaint - being smart enough and giving a damn enough to realise that straightening it out immediately was a really good idea is impressive and laudable in and of itself.
For those that don't know Polish it means Forest Rumcajs (https://en.wikipedia.org/wiki/Rumcajs), probably a joke of the author that wants to be anonymous.
Don't worry, man, nobody expects people from Microsoft to write code that behaves as intended. Merry Christmas.
But as for some background: I am a PM for Microsoft Build of OpenJDK and from late last year to around May this year I made contributions to the gRPC_bench repo as a Microsoft employee for some experiments we have been working on, to evaluate and improve different ways of implementing gRPC exchange in Java. [1]
This fork was intended for newer experiments, one of them being about coding and running these benchmarks on GitHub Codespaces. For that, I needed the repo on an org where we, as employees, have Codespaces enabled.
The rest is HN history (back to Jeff's reply above [2]).
Merry Christmas all!
[1] https://github.com/LesnyRumcajs/grpc_bench/commits?author=br...
“It’s a big company”, you say. They should have a process! And I’m sad to say, they do/will have a process exactly because of this attitude. Then, everyone wonders why it takes forever to fix that bug they’re furious about or why features are slow to come.
Full disclosure: I work for MS, though have nothing to do with this. It’s a huge company. I know hundreds of people and most of them are upstanding and try to do the right thing.
However, if you look at the changelog, I don't know how you are gonna say with a straight face that it's a "mistake".
> Full disclosure: I work for MS
It is difficult to see the reality distortion field you are in from the inside.
My personal conspiracy theory is Teams would have died long ago if not for strong support from the top.
but yeah, friends of mine who work at github say the worst thing about the acquisition was Teams
Could just be normal practices, and doesn’t check if a license already exists because it’s usually handling non-forked OSS repos. What’s the phrase? “Never ascribe to malice that which is adequately explained by incompetence”.
It is good that an employee explained how this particular event happened and that is to their credit.
Despicable that you present this as a bannable offense.
I'm sure you didn't intend it that way, but we have to go by effects, not intent (https://hn.algolia.com/?dateRange=all&page=0&prefix=true&sor...). Intent doesn't communicate itself, so the burden is on the commenter to disambiguate (https://hn.algolia.com/?dateRange=all&page=0&prefix=false&so...).
That is how you took the comment.
I took the comment to be a refreshing dose of reality.
Perspective matters a lot.
For practical purposes, someone has to make judgment calls about these things. The way we do that is that we have a set of guidelines (https://news.ycombinator.com/newsguidelines.html), and moderators who make calls about which accounts are breaking them. We try to be as even-handed as possible when we do that, but certainly no one is going to agree with every call we make. Nevertheless, someone has to do the job, and that includes banning accounts when people break the rules and aren't interested in modifying their behavior.
Moderation is absolutely necessary. What bothers me is that we are 4 or 5 comments deep, and you still seem to not understand why I spoke up in the first place.
The comment you initially replied to did not come off as a personal attack at all to me, in fact, there was nothing personal about it. They took data that was shared with them and used their experience to spit out their own thoughts on the matter.
So, I am calling you out for being a bit too zealous with the power you wield. What you do with my perspective being shared with you is up to you, but you're doing a lot to not just ask yourself "Was I being too harsh?" ... Here you have a human telling you that yes, that was too harsh.
Calling out the bitter flavor of a corporation's kool-aid is not a personal attack on anyone. Period.
If you (edit: I meant the original commenter) had just said it about the corporation, it would still not have been a high-quality HN comment, but I wouldn't have posted a moderation reply.
Sorry? I did not attack anyone. I am defending a comment by somebody else in which you presume they are personally attacking someone who has openly admitted they work for Microsoft.
You really are lost aren't you? Along with the irony of mentioning "high-quality" comments. Wow. What is the _level of quality_ when the commenter has lost track of the person with whom they are speaking...? In case you missed it, I'm talking about you.
I will re-iterate, because I'm patient. I am telling you that you were overzealous in moderating a harmless comment about Microsoft as a company. There is no personal attack in the comment, no matter how you choose to view it.
Feel free to understand the perspective of others before you blindly share more of yours. What a disgusting interpretation of "moderation." Censorship is a much better word to describe where you're headed.
The core moderation point there is unchanged.
This is how I meant it but I could have phrased it or presented it differently as this point got lost at least with the moderators and may be many more. Will try to be more careful in the future.
I appreciate your speaking up. And I also appreciate the moderators in trying to keep the discussion standards high. They have a tough job trying to decipher the intent of every commenter.
ippsample (Apache -> MIT) https://github.com/microsoft/ippsample/commit/938bff17c72868...
huggingface-transformers (Apache -> MIT): https://github.com/microsoft/huggingface-transformers/commit...
health-cards-tests (MIT changed) https://github.com/microsoft/health-cards-tests/commit/5649b...
CUPS (Apache -> MIT) https://github.com/microsoft/cups/commit/ad69bcc78bdea3fea3f...
Credit to this reddit comment: https://www.reddit.com/r/opensource/comments/roa9xz/comment/...
If you think of employees creating new repos in the org--- smash the correct LICENSE in there ASAP.
The problem is that forking a different repo into the org triggers the logic of a "new repository".
Disclosure: Microsoft employee who sometimes writes bugs.
The solution isn't merely to be perfect it is to have a process that is tolerant of the level of imperfection that one would expect. For example it is perfectly reasonable that a someone could have foreseen it not clobbering a license file without prompting the user this could have brought the matter to immediate attention, its reasonable to suppose that if the first person didn't foresee it someone reviewing their choices might have thought of it, its reasonable that someone might have viewed the commit logs and noticed what was going on.
None of this is an acceptable level of failure from people that drawing a 6 figure salary for a position of expertise or leadership.
Sometimes planes literally fall out of the sky. NASA caused a space shuttle to explode killing the entire crew. It is fundamentally untrue that anywhere in the world we have perfect people or processes.
> The solution isn't merely to be perfect it is to have a process that is tolerant of the level of imperfection that one would expect.
I expect that occasionally sometimes people will ship bugs and neither they nor the processes in place will catch them. This is a very minor bug. This is not the sort of bug that keeps engineering leaders up at night.
> For example it is perfectly reasonable that a someone could have foreseen it not clobbering a license file without prompting the user this could have brought the matter to immediate attention, its reasonable to suppose that if the first person didn't foresee it someone reviewing their choices might have thought of it, its reasonable that someone might have viewed the commit logs and noticed what was going on.
It’s really easy to point at others’ errors with the clarity of hindsight. But everything you said here boils down to just predicting the specific broken case, which is useless advice. Even your suggestion to check commit logs is useless unless you know the bug you’re looking for. It’s not as if Git spews errors when a license file is changed and it shouldn’t be. And if they knew what to look for in the logs, they wouldn’t have checked in the bug in the first place.
This team has doubtless shipped thousands of features. It’s unsurprising that they’ve shipped some bugs.
> None of this is an acceptable level of failure from people that drawing a 6 figure salary for a position of expertise or leadership.
You’re talking about a bug that caused a license file to be incorrectly changed and the fix is a revert. There is an audit trail of what happened and what repos were affected. It literally had no meaningful negative effect except to Microsoft’s image with the severest of critics, and to Jeff Wilcox’s holiday break. This is not a Therac-25 level incident.
I find it very interesting that none of the hyper-critical people in the comments here have discussed catching any broader class of issues. There are many comments criticizing the author for failing to check for an existing license file. (e.g.” How can someone be so bad at their job that they realize that a bot that writes to the license file needs to avoid overwriting an existing file?”) None of those comments that I’ve seen addresses the fact that adding a license file during a fork at all is probably an error. No, just criticism about this one case because someone told them about the exact observed bug so now it’s obvious.
The ability to criticize an error someone else already found is not valuable or constructive. And if this is the best you can bring, your judgement is certainly no better than the engineer who created the bug in the first place.
Disclosure: I’m a Microsoft employee.
Further disclosure: If someone showed up to a postmortem for my team with this level of condescension and no useful advice, I’d tell them to be quiet or leave.
If I worked with you it would be my responsibility to support my coworker and help them improve. As it is neither of us has much of an obligation to the other we are uninvolved third parties giving our unsolicited opinions to one another. It is a privilege as an uninvolved observer to another to analyze it frankly without worrying about hurting someone's ego. It is OK I think to look at some mess or other and the inevitable conciliatory excuses and or hostile push back against criticism and call bullshit.
> None of those comments that I’ve seen addresses the fact that adding a license file during a fork at all is probably an error. No, just criticism about this one case because someone told them about the exact observed bug so now it’s obvious.
This is an excellent point insofar as explaining why the bug might have happened. I disagree however that it is sufficient explanation. Such code should still check for the presence of an existing license file for another license and raise an error that requires human intervention to override. That is constructive and actionable.
Sure. In retrospect, that seems like a really good idea. But I'm sure you've done an awful lot of stuff that is dumb in retrospect, too.
Legal asks for tooling to ensure that the correct license file ends up on all developer projects. It's known that developers will often Google license agreements, copy them from places that don't belong, end up with the wrong LICENSE from a templating mistake. Someone builds tooling to just smash the correct LICENSE file in as a first commit on any repo that shows up in the Microsoft org: if it's an active developer and this is the rare case where this logic is wrong, surely they'll notice that this has happened, and this will prevent code from being up with an incorrect license.
Then, the use case evolves: people start to fork things into the Microsoft organization, and this code does the wrong thing an appreciable fraction of the time. But no one is scrutinizing commits on forked repos to the same extent and doesn't notice.
Maybe you do much better and have never made a mistake like this. But real people make real mistakes. Yes, when you encounter a mistake, you try to get better for next time! But that doesn't mean that we should expect a 0 mistake rate out of ______ org or not assume good faith with an ordinary rate of bad outcomes until proven otherwise.
Unlike the GP poster, I am not a MSFT employee-- I am often skeptical of MSFT actions but they get a pass here. Obliterating the license file has no advantage for MSFT, and has the risk of legal exposure and this kind of public black eye. Obviously someone screwed up, but screw ups happen. Now that Jeff Wilcox has had to work on Christmas, you can be sure he will be even more attuned to this type of issue in the future.
>>None of this is an acceptable level of failure from people that drawing a 6 figure salary for a position of expertise or leadership.
If the rest of the world thought like you we would not have any people left in high paying jobs. Everyone is bound to make mistakes. Owning up and setting things right is what is important in my eyes.
edit: missed a couple words
But it's important that this -not- get applied to outside work from forks.
> If you yourself were creating such automation wouldn't that be one of the first and most obvious things you would think of?
Probably not, because it sounds like this was not intended to ever run on forked repos at all.
It seems the automation is also triggered when Repos are forked into the Microsoft GitHub org which isn't correct behavior.
This isn't a deliberate action. If it were plenty of employees (myself included) would be outraged. I assume it's a bug in the bot - an edge case that was not considered. It is very rare to fork something into the Microsoft GitHub org after all.
I'll pass it along to some people I know.
I'm no official representative of Microsoft...
I looked at some of the other forked repos (95 out of 4.5K repos) and all the human commits from MS I saw seem to care about getting the licenses right. So it really is just a broken bot.
I hope the bot can be fixed soon and I'm going to put my figurative pitchfork down now.
Hopefully the bot can be fixed soon and the affected licenses changed back.
Realistically I'm not sure folks are working over the holidays, so give it a bit of time :)
If you look at life as good & evil, you won't solve any conflicts. You should rather focus on "incentives". Correcting bugs and errors take time and other resources, therefore require incentive to prioritize. If their bots were to stamp Microsoft projects with open source licenses, there would be huge incentive for them to tackle this problem within this sprint, and make sure it never happens again.
This bug profits them, or does not harm them at worst case. Therefore, by drawing attention and applying pressure, we should create the incentive for them to allocate resources to fix it, and make sure it does not repeat.
This is a missing conditional check, a mistake that is extremely easy to make and one I’m sure you’ve made at least once if you’ve been a professional programmer for any significant length of time.
Be better.
https://hn.algolia.com/?sort=byDate&type=comment&dateRange=a...
* IANAL. Although Apache 2.0 and MIT are compatible, using a different license makes it awkward for changes to be merged upstream.
Shame it slipped through the cracks, but at scale eventually something's going to no matter how hard you try.
He since commented on this post with a lot more detail.
While I'm glad this got resolved so quickly, I'm slightly ashamed of myself and the HN community for how we handled this. In hindsight the outrage was wildly out of proportion for a simple bug.
I'll make a mental note to do better in 2022.
As someone whose developed similar GH integrations, getting things right with their API is fairly tricky. What would actually be desirable is public-to-private forks so that the fork-dependency pattern is more enterprise friendly and this kind of confusion is mitigated.
Is it wrong though? I mean, if Microsoft's reiterated pattern of license switches is automated, wouldn't this also mean that the error would be easily detected based on public feedback alone? And given this was not the first or second or third separate and independent occurrence of this pattern, if this was a honest mistake then wouldn't this already be addressed in any of the multiple past shout-out?
Please see the entire public feedback you’re a part of right now.
Never. Trust. Microsoft.
Good advice.
> Incidents like this prove that this zebra cannot change its stripes.
Nope! This was a simple mistake that would have gained them nothing.
If you don't want to be banned, you're welcome to email hn@ycombinator.com and give us reason to believe that you'll follow the rules in the future. They're here: https://news.ycombinator.com/newsguidelines.html.
We particularly don't want the online callout/shaming culture here. nhttps://hn.algolia.com/?sort=byDate&type=comment&dateRange=a...
1. They made similar mistakes in the past.
2. They didn't fix it for half a year.
3. They can expect strong financial benefits from making these mistakes.
4. They've recently burned a lot of goodwill by deliberately infringing licenses on a large scale when they trained Copilot.
5. They could have easily prevented this kind of mistakes.
My summary would be that Microsoft deserves to be punished for making this mistake. If nothing bad happens now, then we'll have the same discussion again in half a year from now.
Team A) makes a mistake and changes the license. Team B) uses the fork under its new license and forgets to check the original branch's license.
Two honest mistakes leading to a de-GPL-ed library.
Asking questions until you get an answer you want worked for Socrates, but for everyone else it is better to just state what is wrong about my and other’s argument and the reason why.
If you are confused what is being argued about, perhaps stop.
You don't need to change the "ownership" to do this. MIT licensed software can be put under more restrictive licenses for subsequent revisions by anyone.
I'm sorry to beat up on you. It's not your fault, but someone upthread wrote that Microsoft's developers should have known better than to have this bug, because developers should all understand licensing. That set me off, because in hate-reading this thread (something I should obviously not be doing), it's clear that a lot of Microsoft detractors here simply don't know what the MIT (or Apache) licenses do.
But then, the reason I started hate-reading this thread in the first place was that I clicked on the story link, saw an authorship edit to an MIT-licensed file, and thought to myself "how can so many people here give a shit about this?"
https://github.com/microsoft/cups/commit/ad69bcc78bdea3fea3f...
It used to be Apache License, then it became "MIT License (c) Microsoft Corporation". Thanks to the attention that this thread got, it has now been fixed:
https://github.com/microsoft/cups/commit/3859d70160010c61fd7...
But that source code was online with the wrong license for more than 6 months. Imagine if you had hosted Windows source code with a misattributed MIT license for 6 months... They would also bring out the pitchforks ;) Or even worse: well-paid lawyers.
A healthy org doesn’t blame individuals, it blames failures in process. Thus Microsoft should own this mistake. Stating it’s the fault of an individual sounds more like your team operates a blame culture. Which, frankly, is a major red flag for a failing organisation.
There is a definitely lesson to be learnt here that bots aren’t infallible themselves and thus need reviewing too. Automation undoubtedly enhances our developer experience but we do need to ensure that automation doesn’t make unchecked changes. This is something a great many engineers can learn from too.
For many it’s not just Microsoft. Many assume negative intent from others most of the time. It much be such a frustrating, draining way to live.
It doesn't have to be a debate on "good vs evil" I've always hated those terms applied in these contexts, it's childish and for the naive. Fix the problem and move on.
That said, I can relate the the cynicism especially for the giants. But painting them all as 'profit-seeking corporations' may deaden a satisfaction that comes from being a customer for a company you believe is good.
...Given that several engineers employed at Microsoft have been part of armchairing this along everyone else now, why is not one of y'all (not necessarily you but come on, this is getting absurd, holidays aside) still just busy discussing around it rather than spending the <5 minutes required per repo to start actually fixing the fallout of it?
All future changes to this repo are copyright Microsoft, so Microsoft's copyright should be in the statement.
Arguably there should be an additional statement indicating that LesnyRumcajs holds copyright to bits of code that Microsoft hasn't changed.
But
(1) exactly which bits have LesnyRumcajs's copyright would have to be verified by examining source control history. Since LesnyRumcajs's copyright statement is visible on any commit where LesnyRumcajs holds copyright, this setup makes actually makes it easy to verify which portions LesnyRumcajs has copyright claims on.
(2) Including LesnyRumcajs's copyright statement in repo history seems to be all that the MIT license requires. The license doesn't forbid there being another more easily accessible copyright notice that doesn't list all copyright holders. It only requires that LesnyRumcajs's statement be included in all copies of the software, which it currently is.
It's definitely the case that at a given snapshot of the repository which has copyrighted code owned by someone else the copyright notice has to be there at that same revision.
> It's definitely the case that at a given snapshot of the repository which has copyrighted code owned by someone else the copyright notice has to be there at that same revision.
This isn't in the license. Where is this laid out?
I don't quite follow your thinking about removing the notice but having it somewhere in history; a given snapshot/ revision will be a distribution where someone can show up and download just the master branch newest state and not the full git history. In which case you surely have distributed a copy of the copyrighted MIT licensed code without complying with the terms of the license, right?
* Bugs in the bot inevitably assign ownership to the writer rather than from the writer.
* Bugs in the billing system invariably overcharge customers
* Bugs in the image recognition system invariably select white people.
Well-meaning people still follow their incentives. Corners have to get cut somewhere.
I totally agree this isn't specific to MS. We have seen the enemy, and it is us.
Microsoft doesn't really gain anything here – there's a clear "forked from" qualifier in the repo, they aren't republishing these packages, etc. The only people who noticed noticed in a negative light.
This is the peril of the imaginary "corporation" identity. People expect a company to be one coherent and consistent entity, but although a company can be managed well, establish culture and processes, and progress towards cohesion, it can never become as coherent as one person. And a person is not that coherent in the first place.
I am sure I subconsciously make the same mistake when I think about other companies. But I am making conscious effort to get better, take a more forgiving view on the humankind and give people as well as corporations chance to try again and be a better version of themselves, build the mental capability to remember that corporations are comprised of real people, and people make mistakes, and reasonable people who make up the majority of the population are constantly seeking (just struggling) to be better versions of themselves.
From my personal experience, every software engineer that works in a company of this scale is obligated to take a training course on software licensing and understand the differences, and the "dos and don'ts".
If Microsoft doesn't have such a program in place then that's a big problem and should expect harsh criticisms when such events take place and if they do then it probably needs to be revised because it doesn't seem adequate.
On the other hand, outside the context of MS, if a software engineer doesn't feel they are doing something dirty as they are replacing the license or the thought of I might get in trouble with legal doing that doesn't cross their mind, then they probably shouldn't be allowed to be at the front line taking actions that represents the company's name.
If you care about this issue, try to get it fixed within your company and move on.
I mean come on the seismic change in leadership at Microsoft is just former lower echelon leaders during the time frame that MS was doing wrong now moving up and taking the helm.
We are after all talking about the company that tried to destroy the competition by funneling money into a fraudulent lawsuit/pr campaign that was a front for a pump and dump. The only thing separating MS leadership and felony charges is meeting notes between them and SCO and the fact that important people don't go prison in the US if can at all be avoided. Lest we forget the current CEO was at this time an executive VP as well.
Maybe it boggles your mind merely because you yourself are an ethical person who comports themselves properly professionally and would want people to see your efforts good and bad in context of who you are. This is entirely reasonable but people don't know you personally whereas your company makes headlines for bad behavior.
Everytime I've taken the route that there is some evil, no good as come out of it but when you give a group of people the benifit of the doubt, I would argue the majority of the time it's just a mistake.
I don't work for Microsoft.
How can you work for Microsoft AND do the "right" thing? I guess it depends on your role, but still...
It was just accidentally run in a script. No worries right?
Only on hackernews I see this level of crazyness. You need to reduce your caffein intake drastically.
"When disagreeing, please reply to the argument instead of calling names. 'That is idiotic; 1 + 1 is 2, not 3' can be shortened to '1 + 1 is 2, not 3."
and this one:
"Please don't sneer, including at the rest of the community."
2) bot2 takes data for copilot
3) we are "sorry" for bot 1
4) bot2 took data
That doesn’t seem to be the purpose of the bot. It’s supposed to add them to new repos, not alter existing. This ensures that all their projects have an explicit license rather than ambiguously public.
The part that caught my interest is: How many people consciously picked the MIT license when they actually meant a non-attribution license?
If you want to throw your copyright out the window: The commonly accepted solution seems to be CC-0[1], which tries very hard to disclaim rights and limit liability in as many jurisdictions as possible, complete with a fallback license grant for failed public domain dedications. Because CC-0 makes some people uncomfortable despite the lengths it goes to reach its goals, some projects work with dual-licensing to cover the other side, such as Monocypher.
Neither of them address patents. If patents are something you want to/need to address, you could perhaps paste the patent clause from BSD-2-Clause-Patent onto 0-clause BSD.
See also the discussion on [2,3].
[0] https://spdx.org/licenses/0BSD.html
[1] https://spdx.org/licenses/CC0-1.0.html
[2] https://en.wikipedia.org/wiki/Public-domain-equivalent_licen...
People who release code under MIT not only won't/can't take legal action but they probably won't even bother writing an email to the person who they believe violated the attribution part.
I do (somewhat but not really) get why people use GPL but that's another story. Here we are only talking about people who use MIT instead of CC0.
It's far from the first time I see this kind of reaction and, IMO, rather than everyone spending time on piling on the flamewar, how about opening the door for MS to set this straight and do the right thing? Assume good faith even if you personally don't sincerely believe it? Give them an easy way to save face and present a plausible narrative rather than having everyone dig their trenches deeper? If you'd prefer MS not to screw people over, it helps no one to solidify them in doing just that.
Already so many people shouting "YOU ARE THE DEVIL", not one going "hey, looks like this is a mistake, let's sort it out". IMO the latter is more constructive. It's almost as if people want Microsoft to do bad things. Remember it's a huge organization with all kinds of people and ideologies internally. It's too early to tell which way the individual behind this particular change is leaning.
It took me all of 1-2 minutes to make this PR[0], probably less than any of the meme pictures in that commit thread. Let's see how it goes. Last time it went through[1].
[0]: https://github.com/microsoft/grpc_bench/pull/1
[1]: https://github.com/dotnet/sdk/pull/22262
EDIT: ...And, it's merged. I'm assuming the rest of the affected repos will be fixed as well and an apologetic blog post issued by Monday. Anyone who feels that's too long time can always open corresponding PRs instead of wasting their time by replying to this with how that's not our job. Happy holidays.
2) Assuming it's even true, what should this person do instead?
3) What do you think the outcome would be if this person did contact Microsoft? Since it's a mistake, I assume something bad?
Since this is copyright infringement, the copyright holder could file a DMCA takedown notice.
https://github.com/microsoft/cups/commit/ad69bcc78bdea3fea3f...
Edit: To give a bit more nuance, I would guess that the actual bot changing the LICENSE files is not a mistake, but working as intended. What could, however, be a mistake is thinking that licenses can be legally overwritten. It wouldn't be a "rogue engineer" kind of mistake. Certainly several people at Microsoft have signed off on this.
That's not a bot.
https://github.com/microsoft/cups/commit/8100595a3a3a6d5c7d0...
You interacted with one part of Microsoft, maybe we are seeing the works of another part.
> This is the open source management service account used for performing key GitHub operations on behalf of Microsoft employees and users.
Combined with the nonsense README change, this looks like a bot mis-use accident.
Edit: to clarify, in no way am I saying that this is a "honest mistake" which does not deserve scrutiny.
> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
MS would be in the wrong to redistribute this code without the notice that includes '(c) 2020 LesnyRumcajs' - however, just changing the line doesn't constitute copyright infringement or fraud if MS reverses the change and/or simply appends the original MIT license above their MIT license (since MS does indeed have '5 commits ahead' of the origin repo, all of those changes are copyright MS but still MIT licensed). They could even simply have a file called 'LICENSE2' with the original notice, if they can't easily exclude this repo from the bot.
Given that this change was committed to the main branch, if I download the code right now, haven't Microsoft redistributed it?
There’s a whole philosophical debate we can have where we quibble over the definitions of words as they deal with technology, but the (US) courts generally don’t care about technicalities. An analogy is stolen property. If you purchase something that is stolen property, you have (almost) no legal right to it; the courts will often order its seizure for return to the original owner. By “hacking” (according to the CFAA), you “stole” the EXE.
But you cant make that argument here, as its a public repo, as such Microsoft did have the intent to redistribute.
Your argument is that a misconfigured FTP server isn't intent to distribute.
What if this was a misconfigured fork that was meant to be private but was set public? Not intent to distribute either.
But if you're one of the largest corporations in USA, the law tends to go easy on you for making accidental mistakes.
> Permission is hereby granted [...] subject to the following conditions:
> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
Changing the name in the copyright is a clear license violation.
Yes. Additionally, the way such actions are performed is not great because the mechanism used does not provide any way to provide feedback - if the change was done by a user account, then they would have received notifications about the comments posted under the commit, but the ones received by the service account probably go nowhere.
People who were around before MS decided to open-source-wash their brand KNOW what Microsoft’s DNA is. They had a literal playbook to crush Linux.
Microsoft has committed to open source. Maybe it’s self fulfilling reasons, but that doesn’t mean we should brush it off. If some higher up decided to go open source for PR reasons, who cares? We should be embracing it. Shunning it will just make other companies think twice about open sourcing.
Also, this was done by a bot. Microsoft is big enough to have their own in-house council, and I can’t imagine them being stupid enough to risk everything over a copyright lawsuit with evidence like this that the whole world can see.
They may have "committed" to open source (I think "committed" may be the wrong word there), but they never stopped hating free software.
The KKK has a long and dark history. MS is a business that at times has had slightly sharper business practices than some of its competition.
PUBLICLY changing Copyright notice in MIT software and keeping the history online is another thing.
What is the point of using all caps? For me it makes legal texts like these really annoying to read. I'm not a native English speaker, is that really correct English writing? Aren't there clear rules when to use capitalization? Like, at the beginning of sentences. Feels like they are abusing the language.
Can they just lower case the paragraphs, to make things more convenient to read? Or does that change the legal meaning? For me it would feel like they would stop screaming :-)
It’s legally important
Using all-caps is one way of achieving this, but there are other options, such as using a different typeface, font size or colour.
You can't use a different typeface, font size or color in a plain text document. That does not mean you have no options. The criterion is that it is “written, displayed, or presented that a reasonable person [...] ought to have noticed it.”
Consider the following:
Nihil harum autem impedit commodi ut occaecati. Nihil
quisquam ab molestiae veritatis consectetur. Quis molestias
sunt facere tempore est. Eum quia quisquam veritatis illo
minus sint atque ipsa. Omnis optio ducimus minus nemo non
deleniti voluptas. Blanditiis nisi eum eum beatae fugit
delectus. Optio neque sed nostrum veniam eos. Culpa ut no‐
bis rem est dignissimos est eum sed. Occaecati dignissimos
eveniet odit aut est ipsum minus nisi.
!! IMPORTANT !!
DISCLAIMER OF WARRANTY
The software is provided "as is", without warran‐
ty of any kind, express or implied, including but
not limited to the warranties of merchantability,
fitness for a particular purpose and noninfringe‐
ment. In no event shall the authors or copyright
holders be liable for any claim, damages or other
liability, whether in an action of contract, tort
or otherwise, arising from, out of or in connec‐
tion with the software or the use or other deal‐
ings in the software.
Unde sint ab qui ut. Debitis qui deserunt fugiat aut nihil
impedit vel saepe. Et ad voluptas quia. Omnis libero ni‐
hil perferendis aut ab. Illo et neque voluptatibus. Et
animi consequatur enim eius aut at veritatis. Modi error a
ratione tempore velit inventore. Accusantium accusantium
et quam quis nemo id.
This seems rather noticeable to me, gets to the point, and is considerably more readable.By using the all-caps sparingly, we've made way to draw attention to the heading, then offset the passage with large amounts of whitespace to draw attention to the passage itself. At the same time, this keeps readability of the actual text that you want people to read.
> "Conspicuous", with reference to a term, means so written, displayed, or presented that a reasonable person against which it is to operate ought to have noticed it. Whether a term is "conspicuous" or not is a decision for the court. Conspicuous terms include the following: (A) a heading in capitals equal to or greater in size than the surrounding text, or in contrasting type, font, or color to the surrounding text of the same or lesser size; and (B) language in the body of a record or display in larger type than the surrounding text, or in contrasting type, font, or color to the surrounding text of the same size, or set off from surrounding text of the same size by symbols or other marks that call attention to the language.
Conspicuous could mean all caps, contrasting text, or different colors. My guess is that CAPITALIZATION was used because most typewriters at the time could do caps, whereas doing different font sizes, colors, bold would have required a special expensive machine. When technology evolved, lawyers being process oriented creatures, stuck with all caps because it was the way things were always done, and therefore safe to do.
[1] https://www.termsfeed.com/blog/all-caps-legal-agreements/
It seems Microsoft has now automated this practice.
Edit: It's easy to jump the gun and start accusing Microsoft of something nefarious here. To be clear, I'm personally giving Microsoft the benefit of the doubt and assuming that this was an honest mistake, and that the folks at Microsoft who had something to do with setting this up were well-meaning.
My point is that we're living in a culture that, as a standard practice, sprinkles "(c) [year] [company]" on things like salt, that such claims are frequently invalid or misleading, and that this broader issue may be partly to blame for incidents like the one we are discussing today.
I know I can run "Update Copyright" on my projects in JetBrains - could just be an innocent mistake that hit the wrong folder.
I know everyone jumps on the big corp as everything they do is intentional, but it's the holidays, someone was doing a bit of work, maybe not fully concentrating and hit push.
Seeing how quickly this was plastered everywhere, and the responses to it, do you really, like REALLY think that this is a deliberate play?
"Oops. We f*d up? Well, you can't talk with a human unless you pay us lots of money. Oh - you don't have money for a lawyer? Tough. Good luck getting through our layers of trained monkeys."
Make no mistake, gravity will always pull MS towards their default behavior. Just wait for VS Code becoming a subscription-based product.
Yes, there will always be a community maintained project. But it will not be MS Certified…
Original author could send a DMCA, or they could simply enjoy Christmas and assume a ticket will undo this sometime in January.
Copyright laws have one major purpose: protect the right holders. It does so by giving them tools to mitigate their loses by deterring people from infringing.
If a right holder has to invest more time in complaining on people about infringement than actually having time to do other stuff, like creating, then we've got it all wrong.
IANAL, but the MIT license specifically does not say you have to redistribute with the same copyright owner notice. It says the copyright notice and terms must remain, and that you can sublicense it. It doesn't say you can't change the copyright notice.
That would solve any ambiguities around the script Microsoft wrote.
"Are you sure you want to change the license?" Yes / No.
Perhaps a specific API call when you are doing it with a script.
Thanks, 3np
> This repo has been populated by an initial template to help get you started. Please make sure to update the content to build a great experience for community-building.
Perhaps this is "updating content"?
These mostly link to repositories under one of their GitHub organizations: https://github.com/apple-oss-distributions/
Apple's open source projects: https://opensource.apple.com/projects/
Which mostly link to repositories under their main GitHub organization: https://github.com/orgs/apple/repositories
BTW, those repos don't take issues.
Also dyld isn't just some thrown-over the wall code. It's completely designed and built by Apple and is the cornerstone to making the user-space runtime functional.
I tried emailing ld64's author about a bug in the past without success. I don't remember how I found their name/address back then, but I sure can't find any names or contact information for dyld right now...
Also, I'm not sure looking for individual points of contact in a large org is the best idea. I emailed security@apple.com. Even if it's not a security bug they will help direct you to the right team.
Again, have you even tried?
I'm talking about trying to contact people at Apple about bugs in their "open source" code.
Why would I send an email to security@apple.com for something that is not a security issue?
> Again, have you even tried?
Yes, I tried for ld64 in the past, and I tried through what I was told had the best chances to work by an Apple employee this time for dyld. I'm not holding my breath, though.
I'm curious to know how you're measuring openness. I agree Apple is the least open of the group, but Facebook and Google owe their existence to FLOSS, and were always in harmony with it from their origins.
Companies are open source where it’s of value to them, but they don’t give away the family jewels if they can help it.
Oh and don't forget googles ridiculous amount of effort poured into Android open-source source tree, just to name one of many.
I honestly can't tell if you are trolling here or not.
People take it for granted that you can just run what you want on your windows machine but they could have turned it into smartphone style locked down system. Imagine if every app developer in history had to fork 15-30% of their sales over to Microsoft just for building on Windows, they could have made a trillion bucks or something.
Once you do try to distribute your own app, you need to shell out >$200/yr for code signing certificates which pass the smartscreen filter, otherwise your app will be randomly prevented from running.
And other issues... With every version things get just a tiny bit more inconvenient for out-of-store software releases.
Pretty much MS' only useful contributions to open source are from MS Research, everything else feels like a Trojan horse, designed to make you like them and then lock you in to something proprietary later.
Lots of plugins don't work on open-source VSCode, they tried a bait and switch with .NET features, Windows 11 has a bunch of anti-patterns, GitHub is being dodgy about how they train Copilot, etc...
Apple have caught huge flak recently e.g. for the phone-local image scanning software.
Ps.: check follow up comments. My comment in here is wrong.
This was a while back, but Tim Cook apologized[0] after a poorly received rollout of Apple Maps. That said, I applaud this response and agree that more like it is needed across the industry.
[0] https://techcrunch.com/2012/09/28/tim-cook-apologizes-for-ap...
I'm assuming you mean open as in communication. Apple basically is a stone wall, facebook just spouts empty platitudes, google processes are opaque and unyielding (unless you know a someone or raise a massive community response on social media), but Microsoft continues to be staffed by humans.
They aren't a shining pillar of FOSS, but they've taken some good steps in the right direction in the past few years. And of all of them, user feedback, support, and escalation seems to still be handled by people instead of algorithms
In the particular case of this post, I just can't imagine an Apple employee posting the exact link (on Christmas!) to a bug that they were responsible for to an issue that was posted on a forum. If someone would have simply made an issue on the GitHub repo instead of posting on Hacker News, it probably would have been fixed without fanfare.
If Microsoft had the most popular search engine and the most popular mobile operating system, they would be gathering all our data and putting ai robots to answer our questions.
These big tech companies do not have the best interest of us in mind. They are a force for centralization of power into the hands of billionaires.
It doesn't have to be this way but it requires users to smell the coffee and want another Internet and another big tech industry.
A) Do you know it was not an honest mistake?
B) Why a complete understanding of esoteric legal copyright laws created by non-programmers all of a sudden so important to a mainly programmer HN audience?
EDIT: also if there are any forks of your project, you should ask people who forked it to restore the original copyright notice as well. If the original copyright holder sees your name instead of theirs, they'll know who to sue.
I see it as a honest question.
Instead of voting down, vote up so more people can read replies and see that it is not something that should be done.
I'd advise you to fixup any forks on GitHub, e.g. https://github.com/fiatjaf/jiq/blob/master/LICENSE, which are currently in breach of license.
You'll need to inform anyone who forked your code, too.
This is something you agreed to in the following part of the license:
> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
We needed an always-on VPN. Intune supports several, but all insist you run some proprietary server software. If you don't understand why that would make someone feel uncomfortable, PulseSecure [2] was one of those options. There is open source GPL software that replaces the proprietary back ends called OpenConnect [3], but that violates their client licensing.
Then I discovered Microsoft has their own VPN called mstunnel. That's when I felt like I had fallen down the rabbit hole. I dismissed mstunnel initially because since it is a Microsoft Product, it would run only on Windows, right? Turns out it only runs on Linux. I thought you installed the mstunnel client on Android, because among other things it existed - but nope it was superceded by this thing called "Defender for EndPoint".
The server came as a Docker install, but we didn't have the required version of Docker so I unpacked it and ran it in a chroot. That all worked in the end, but in the process of unpacking it I discovered what it was under the hood. It had two things - an "agent" written in dotnet whose sole function as far as I could tell was verify with Microsoft's servers you have paid for it and ... a copy of free as in beer OpenConnect.
Nothing wrong with that really. In fact it's the reverse - it being OpenConnect under the hood gave me a lot of confidence I wasn't dealing with another PulseSecure. The only fly in the ointment is OpenConnect is GPL. They are completely free to use it the way they did - in fact I suspect the OpenConnect authors would be very happy to see the project used in that way. But you do have to comply with the licence. There was no attribution whatsoever, let alone instructions on a copy of the source as the licence requires.
I'm sure it's just an oversight, just like the subject of this article. Maybe it's another mess for Jeff to fix. I don't know you from a bar of soap Jeff, but keep up the good work.
[0] Intune provides a uniform MDM like experience across many platforms - including Windows. If you need to control Windows like that you probably don't have much choice, you have to use a Microsoft product. Maybe it works very well on Windows, but it's an ugly, buggy thing on Android, and the UI is a confusing mess. If you only need an MDM for Android I can heartily recommend headwind (https://h-mdm.com/), which we rolled out before Intune because it took literally months to get the licences (in fact, we still don't have them). Headwind is open source, is cheaper than Intune and has free tier, and frankly was a joy to work with - once you discovered their doco was all in the FAQ's.
[1] For the uninitiated, all Android devices (and iOS) allow a company to take control of a device by installing an MDM, something that can happen only immediately after a factory reset. Thereafter Android displays "your company can see everything you do on this device".
[2] https://threatpost.com/pulse-secure-critical-zero-day-active...
We forgive you...
;)
In return, you receive hosting from GitHub.
The writing is on the wall. You MUST host your own code on a stand-alone website.
Here is an example. This Go program (a compiler) generates and serves its own website: https://NN-512.com
It runs on a Linode shared CPU cloud instance that costs $5 per month: https://www.linode.com/pricing
Another example, look at what Fabrice Bellard does: https://bellard.org
In these situations, whether it be originating from a human or robot, the knowledge comes from looking at public code on GitHub and it's always been a risk that your public code might not be used with proper attribution at some point. Think about how many OSS projects have core code and algorithms copied daily by companies with no public name and keep all of their source code private - it's surely caused more damage than CoPilot ever will.
>In that B scenario, would the human be infringing on the original's copyright? //
Depends on jurisdiction but in general I'd say no as quoting, particularly an insubstantial portion, is allowed (certainly under USA Fair Use, possibly under UK Fair Dealing).
However, and again depends on jurisdiction, copying a whole work to use for AI training or searching can be restricted (though it's on the GitHub license in this case). The snippet might be allowed but copying into a training corpus may be excluded (I think UK have an exception for AI training, but I may have misremembered, it might be a suggestion??).
There are quite a few companies where copilot and copoilot-like technologies seem radioactive at least for the moment.
The test to use is to imagine you’re writing an essay in college. If your essay contains unattributed passages from another work then the professor will not care that you memorized them rather than just copying and pasting the text. In order to be in the clear you need to properly quote and cite the original author.
GitHub copilot does not provide attribution. All it does is obfuscate the original source to make attribution impossible. Copyright lawyers ought to have a field day with this one.
If you don't like that,don't release your code as open source. I'm not going to host my open source projects on my own website. That's just hard, it's much more difficult to get people to check it out if it's on Broblog.net
I personally don't believe extremely short code snippets, like the ones copilot tends to copy are problematic.
Here.
def add( x, y): return x + y
I don't want to live in some dystopia where we have dozens of lawyers deciding who owns that above code snippet. If Amazon wants to use that snippet, fine, you can use it, etc.
All Co Pilot does is optimize taking code snippets from different sources.
How would self hosting your code prevent Microsoft/GitHub from using it in the Copilot training dataset? If using content from GitHub irrespective of their license to train Copilot is legal, so is training from code available on your website.
Copilot is trained on public GitHub repositories of any license: https://en.m.wikipedia.org/wiki/GitHub_Copilot#Technology
If they scrape your website, that's different.
0: https://docs.github.com/en/github/site-policy/github-terms-o...
1: > This license does not grant GitHub the right to .. otherwise distribute or use Your Content outside of our provision of the Service
It might be time for popular licenses to update themselves for this new-found threat.
I’d be interested to know if code subject to DCMA takedown would be removed from the copilot training set…
Did you click the link for this article? Did you see that MS removed the author’s name in the license header and replaced it with their own?
No, Microsoft's claim is fair use, not GitHub terms and conditions. You don't have to speculate on what you think their possible claims are, when they've publicly stated their actual claims.
I think this can only be valid of Github's terms of use clearly specify that or the chosen license allows it.
I actually see copilot benefiting GPL projects: suppose a programmer uses copilot to develop a proprietary software and copilot regurgitates GPL'ed code: now the proprietary software is a derivative work and must be GPL'ed too.
Another potential outcome is that so many projects could now end up unknowingly using gpl code that enforcement becomes an impractical whack-a-mole, far more so than today. Being told to rework or relicense your project because of copiloted gpl code could easily end up with hobbyists wholesale begrudging the gpl license rather than copilot itself.
It's quite interesting how it seems to have come full circle, at least according to this stackoverflow comment about Stallman releasing a paper in 1992 on how to effectively launder AT&T code via textual changes (I have no idea if he did, I just remembered the comment): https://unix.stackexchange.com/a/591221
I am a happy Sourcehut customer. Roughly the same cost as a VPS, but comes with tech support.
You may be practically limiting copilots use of your code but I don't see any licensing difference if Microsoft hosts Copyright code or scrapes copyright code.
Wrong. Lets say a GPL project is not hosted on GitHub officially. I can easily setup a mirror for it though on GitHub as the GPL doesn't prevent me from doing it...
Point is that anyone can put my work on GitHub, even if I don't want to.Assuming the project is under a free license though.
You can do it, but it's WRONG.
Copilot is trained on public GitHub repositories of any license: https://en.m.wikipedia.org/wiki/GitHub_Copilot#Technology
We must all stop using GitHub.
What I did is say that if you feed copyrighted software to an algorithm that itself outputs software, then the license applies to the output. This covers the output of compilers and such, but it would also cover Copilot in my opinion. We'll see what a lawyer says.
However, even with a license, I wouldn't doubt that Microsoft would just put it through GitHub anyway because finding them out would be extraordinarily hard.
There is a difference between "strong" copyleft and "weak" copyleft. An example of "weak" (non-viral) copyleft is the CDDL. In fact, the CDDL's Wikipedia page talks about strong and weak copyleft.
You can read [1] for a breakdown of copyleft by an actual lawyer. Suffice it to say that Wikipedia's Copyleft page is woefully inadequate.
[1]: https://writing.kemitchell.com/2018/10/24/How-to-Speak-Copyl...
If Microsoft's theory is correct, under US law it is impossible to forbid this with a license, because a license is just an offer of additional permissions beyond what is available automatically under law, and Microsoft's theory is that ingesting code into GitHub is fair use and therefore permitted under law as an exception to copyright without any license from the copyright owner.
If Microsoft's theory is not correct, pretty much any license with an attribution requirement (among others, for other reasons) would work.
The idea that a special license is needed or of any use doesn't seem to have any justification, even in theory. (As is the idea that hosting publicly but not on GitHub changes the legal parameters.)
I just want to say that I believe the fair use argument only applies for training, but not for distribution. I make the case for that in [1].
If they don't need permission from the copyright owner, either via license of GitHub T&C, because it's fair use, which is their overt legal theory, then why would it matter legally whether the code was posted to GitHub at all, much less by whom? Ingesting only code form GitHub is a practical convenience that has nothing to do with their legal theory of the right to do it.
> Yet they said nothing about that specifically
Their theory of fair use means they have the right to ingest any code, irrespective of who owns it and what conditions (if any) it is licensed under or where (or even if) it is hosted online. They don't need a separate justification for your scenario if the theory they’ve cited is correct.
> In that case, is the only option to put code somewhere else than github under a license that forbids reuploading to github, and issue DMCAs when/if people reupload your code
Nope, that doesn't help at all, legally; it may help practically as long as they are just using GitHub hosted code and not consuming code from other public hosting platforms, but it has no bearing on their legal theory of why they can ingest code without additional permissions.
Because this does not prevent having the code to land on GitHub at the of the day assuming it is published under a free license.
Now it depends on how you interpret the "MUST". My logic only makes sense if you consider it to a dogmatic-like prevention.
> The larger issue is that anyone using GitHub is donating their work for re-use without attribution through Copilot.
Why is this wrong?
Also, I don’t see how this is true. Code on my website is publicly accessible, but not in the public domain, nor licensed for re-use, unless I say that it is.
Also the point you're making is controversial, and definitely isn't widely agreed on. As a human, I can read public code on Github, and use my internal neural network (brain) to regurgitate sections of code, and don't need to attribute anyone (who can say which codebase I'm recalling code from? I certainly can't). So a neural network doing the same thing, but external to a human, is certainly questionanble, but it isn't a cut-and-dry case of copying without attribution.
Microsoft's automated violation of "no use without attribution" licenses?
You can't see the connection?
Please. Surely it's obvious to everyone but you.
Also, humans sometimes have limitations on what code they should have seen. It's common in the emulator community to forbid anyone that has seen proprietary code from working on black-box implementations to avoid legal issues.
Not a very good one - clicking the link produces a download dialog on Firefox (I'm guessing because the website neglects to indicate a Content-Type).
Ironically this is an argument against trying to do everything yourself - you might waste time chasing the long tail of thousands of little details that had been solved many times over elsewhere.
Also hosting it yourself doesn't mean that you do everything yourself.
It would definitely spawn build plugins that do most of what you need if this practice actually establishes itself.
Works fine for me (v90/Linux).
I might put this in my public ones as well.
So yeah, you are donating your work to Google when you put it on a publicly accessible web site.
[1] https://www.google.com/search?q=how+old+is+queen+elizabeth
[1] https://developer.mozilla.org/en-US/docs/Web/HTML/Microdata
I think that’s on purpose, not to “steal” code from GPL’ed softwares’ authors, but to get GPL’ed code into commercial projects. Then Microsoft can say “oops, we were right all along! The GPL is so dangerously viral that you can’t even host your software on the same server!”
I know that sounds stupid, unless you were there for the Halloween Documents. After all these years, it seems to me that Microsoft hasn’t done the 180 they portray.
Even if Microsoft currently only uses GitHub-hosted code as an input to Copilot, their theory of the legality does not depend on code being hosted there and applies to any code they can get their hands on. The idea that hosting code publicly at some non-GitHub location is going to keep it out of Copilot is not well justified.
[0] https://www.reddit.com/r/opensource/comments/roa9xz/microsof...
For some reason I doubt they've bought the copyright to CUPS.
Embrace, Extend, and Extinguish
But now not even bothering with the extend. I’d guess this is a mistake of some kind.
u64 add26562(u64 value)
{
return(value+26562);
}
is not copyrightable.https://en.wikipedia.org/wiki/AACS_encryption_key_controvers...
> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
Also, I'm not sure you can just change the copyright information, and change the history of the code like that.
However, this is typical of Microsoft. Like DOS, like Windows App Store / Packaging ripoff (they asked the guy some questions, sherlocked his software, even didn't thank him later), etc.
Here you go:
https://github.com/microsoft/TypeScript
Just fork TypeScript, change the copyright holder to yourself, and do what you want with it. I sure Microsoft won't mind.
Only the copyright owner can license the work to others, or issue under a different license if they like.