Live data from Hacker News

Rewriting essential Linux packages in Rust

lwn.net

131–140 of 175 posts

Re: Rewriting essential Linux packages in Rust

#131

Earlier quoted context omitted.

The GPL does not prevent closed versions because of Tivoization, and SaaS. For instance, Facebook is closed, in spite of running on a mountain of GPLed stuff. A locked device may prevent the user from running a kernel image that is not signed with a certain private key, even though the vendor of the device complies with the GPL and provides the matching kernel sources and the correct toolchain to reproduce the build…

This is why we have AGPL and GPLv3. You can TiVoize the kernel, but you have to provide the user land, at minimum. In a MIT only world, you would have no source of anything. So not only you can’t build a signature-free version of the kernel for educational purposes, you can’t even have it. This is a corporation paradise.

The GPLv3 doesn't prevent what TiVo did (break proprietary software after installing modified GPLed software), and GPLv2 requires users be able to install modified GPL software, so a "TiVoised" kernel is a GPLv2 violation.

https://sfconservancy.org/blog/2021/mar/25/install-gplv2/ https://sfconservancy.org/blog/2021/jul/23/tivoization-and-t... https://events19.linuxfoundation.org/wp-content/uploads/2017... Behan-Webster-1.pdf

Re: Rewriting essential Linux packages in Rust

#132

Earlier quoted context omitted.

The GPL does not prevent closed versions because of Tivoization, and SaaS. For instance, Facebook is closed, in spite of running on a mountain of GPLed stuff. A locked device may prevent the user from running a kernel image that is not signed with a certain private key, even though the vendor of the device complies with the GPL and provides the matching kernel sources and the correct toolchain to reproduce the build…

The GPLv3 was explicitly created to prevent tivoization.

The GPLv2 already did that, the GPLv3 was created to prevent what TiVo did (not Tivoization), but ended up not actually doing that.

Re: Rewriting essential Linux packages in Rust

#133

Earlier quoted context omitted.

Unfortunately, AGPL is a non-free license, which dictates how one may run the program when not redistributing any of its code. It's a clumsy attempt to attack a certain problem in the social computing sphere using software licensing. (You know the adage about every problem looking like a nail when the only tool you have is a hammer.) Open source licenses are characterized by the fact that you don't have to read them,…

Like it or not, AGPL is a free software license. It only says that even if you provide the service as a SaaS, you share the code if you change it . You may dislike that particular family of licenses, but it doesn’t allow you to give false information about it. Maybe it’s not intentional, so you need to refresh your understanding. We’re humans, and our brains are not tapes. Knowledge distorts. I experience the same. G…

It curtails one of the four essential freedoms that form the core of the Free Software Foundation's definition of Free Software:

https://www.gnu.org/philosophy/free-sw.html

"The freedom to run the program as you wish, for any purpose (freedom 0)."

If you modified the software, there are restrictions on running it; you cannot run the program as you wish, for any purpose.

It looks like an open and shut case to me. The place where the AGPL comes from doesn't meet the free software definition coming from the same place.

It might meet your personal definition of what is free, but that doesn't fix the above hypocrisy.

Re: Rewriting essential Linux packages in Rust

#134
post #130

Earlier quoted context omitted.

Unfortunately, AGPL is a non-free license, which dictates how one may run the program when not redistributing any of its code. It's a clumsy attempt to attack a certain problem in the social computing sphere using software licensing. (You know the adage about every problem looking like a nail when the only tool you have is a hammer.) Open source licenses are characterized by the fact that you don't have to read them,…

The extra provisions of the AGPL do not get triggered based on how you run the program, they get triggered when you modify the program. You definitely don't need to read the AGPL to run the software. Please check out the text of the AGPL rather than repeating what people say about it.

You don't need to read the GPL, or any other free software license, to modify a program and to run it.

Re: Rewriting essential Linux packages in Rust

#135
post #111

Earlier quoted context omitted.

I don't specifically want to be compatible with it, no. I mean if ripgrep works for my needs - I'll use it and won't worry if it's POSIX compatible or not.

Great. But we don’t need it in base.

That's what I don't necessarily agree with.

Re: Rewriting essential Linux packages in Rust

#136
post #130

Earlier quoted context omitted.

The extra provisions of the AGPL do not get triggered based on how you run the program, they get triggered when you modify the program. You definitely don't need to read the AGPL to run the software. Please check out the text of the AGPL rather than repeating what people say about it.

You don't need to read the GPL, or any other free software license, to modify a program and to run it.

Modifying a program is illegal under copyright law, so yes you do need to read the license before doing that.

Re: Rewriting essential Linux packages in Rust

#137

> " There are between 200 and 300 dependencies in the uutils project. He said that he understood there is always a supply-chain-attack risk, "but that's a risk we are willing to take". There is more and more tooling around to help mitigate the risk, he said. left-pad II, coming soon to a Linux distro near you

> There is more and more tooling around to help mitigate the risk, he said. Could anyone expand on this? I could imagine tools... better static analysis, maybe? being able to help. But I'd really want to see details. Both to see if it really helps, and because if there is tooling to help then I want to know so I can adopt it!

There's cargo vet, cargo audit and I think various other tools. There's also a process for reporting and removing malicious ones and stuff like that, like you'd expect. Rust didn't really have a major supply chain attack as I'm avare. I remember one typo-squat with malicious code, but that was found pretty quickly and don't think it was exploited.

Re: Rewriting essential Linux packages in Rust

#138
post #54

A big reason the GNU utilities were game changing is not because of their existence, or their functionality, but because of their license... a license which, in no small part, is what not merely motivated but then allowed for their continued existence and functionality: a tit-for-tat, sharing is caring, we're all in this together, fighting for the users approach to software development, one which ensures that no one…

I feel like this shouldn't be surprising. If you use GPL, you give others strong incentive to rewrite an alternative, because GPL is just very heavy burden. I'd even go as far as to say this is an example of failure of GPL. If the intent was to set up incentives to make sure people share the improvements with the community for mutual benefit, but the result is an incentive to rather burn resources to do complete rewrites, then that seems like a failure on all sides to me.

Re: Rewriting essential Linux packages in Rust

#139

Earlier quoted context omitted.

I would have said this in the past, but at this point I don't think it matters that much anymore. 1. Code copyright has devalued a lot in general, as you can code significantly faster with LLMs and use them to launder GPL'd code into whatever you want. 2. Big tech seems to be getting away with most other forms of abuses these days, GPL wouldn't really stop them from doing anything important. To the extent that code i…

> 1. Code copyright has devalued a lot in general, as you can code significantly faster with LLMs and use them to launder GPL'd code into whatever you want. I see no real evidence this is the case. Can you provide examples? For instance -- do you see many Linux clones right now? Ask yourself: why might you not? Perhaps it's because it's almost impossible for an AI to rewrite Linux.

It is specifically with these smaller projects, not something like Linux or Chromium, that AI can accelerate. In particular, companies would probably not bother using an (A)GPL'd library, and would instead recreate them from scratch with help from AI. I don't have specific evidence for this, though.

Re: Rewriting essential Linux packages in Rust

#140

Earlier quoted context omitted.

I think my comment already addressed every single piece of what you said here. And you're shifting your original claim! You are no longer hiding behind POSIX compliance here. Instead, you're making a more nuanced argument based on more than just POSIX compliance, and one that I find very reasonable! But that's not what you originally said.

> I think my comment already addressed every single piece of what you said here. You did not mention a word about scripting. > But that's not what you originally said. It is. The reason ripgrep should not be in base is because it’s not posix compliant.

As I said, there are tons of things in `base` that aren't POSIX compliant. So that is clearly not a sufficient criteria to exclude something from `base`. You need something else (like what I said, and then you repeated without acknowledging that I had already said it).

> You did not mention a word about scripting.

WTF. Literally right there in my first comment:

> Of course, grep still has a POSIX compliant base. And so long as your scripts only rely on that POSIX compliant base (no -a or -r or -o flags, for example), you can reap the portability benefits of POSIX.

I hate to say, "please re-read my original comment," but I think it might actually apply in your case.

Post reply on HN