An appropriate amount of work to slap an MIT license on somebody else's work

4 months ago by cockmushroom to c/programmer_humor

KindaABigDyl 49 points 4 months ago

Are they using any original GNU coreutils code as reference? My understanding is nothing is 1:1. They're trying to build, from the ground up, a totally new codebase that has the same user-facing functionality but under the hood is idomatic Rust code (so nothing like the GNU C code)

They are recreating something that matches behavior not using licensed GPL code. Which is the same way the GNU coreutils were a recreation of the proprietary Unix tools in an effort to provide open source alternatives.

Like you wouldn't say "An appropriate amount of work to slap a GPL license on somebody else's work" in reference to GNU recreating the Unix tools, so why say it here?

path: 0 24561066, hotness: undefined, score: 49, children: 10
cockmushroom -11 points 4 months ago

I may not but then I wouldn't need to say that because as you acknowledged, but don't actually seem to understand, the USP of coreutils or GNU was not simply an api, but open source technology and they delivered on that in ways where the actual merits of their contribution are unambiguous. If the "rewrite it in rust" crowd were forthcoming about shelling out the real work to c then there'd be absolutely nothing to talk about here, but then we also wouldn't have windows sidelining their fancy modern powershell for a 2nd order rehash of unix tools by people who likely never used them.

inb4 they buy a license too.

path: 0 24561066 24564482, hotness: undefined, score: -11, children: 9
KindaABigDyl 17 points 4 months ago

were forthcoming about shelling out the real work to c

When did they shell out "real work" to C?

There is no C in the repo: https://github.com/uutils/coreutils

They aren't wrapping the GNU coreutils in a Rust shell; it's a total unaffiliated reverse-engineering

path: 0 24561066 24564482 24565497, hotness: undefined, score: 17, children: 2
cockmushroom -19 points 4 months ago

I forgot where I suggested that libc was a coreutils project but, if you find it, let me know and I'll be sure to make the apology and corrections, mr crabby pants.

path: 0 24561066 24564482 24565497 24567573, hotness: undefined, score: -19, children: 1
expr 1 point 4 months ago
path: 0 24561066 24564482 24565497 24567573 24578986, hotness: undefined, score: 1, children: 0
edinbruh 12 points 4 months ago

I would like to interject for a moment. What you are referring to as coreutils Is actually coreutils+libc+Linux... And fill the rest yourself.

The "anti rust" crowd spends half of their time yapping about how you still need c in some places, then why did you get upset with calling into libc here? Are you suggesting to rewrite every rust program in C so you can have only c calling into c?

path: 0 24561066 24564482 24566652, hotness: undefined, score: 12, children: 4
cockmushroom 1 point 4 months ago

Generally I don't consider myself anti rust as a technology, and/since many of my favourite tools happen to be written in it. Consequently, I don't generally fall into the critics of c/unsafe usage.
That said, for the purpose of understanding the point being raised, it's important to understand the difference between uutils, its philosophy, and rust at large. This isn't just an arbitrary rust project, it's one that specifically claims to replace a C project. Is it the kind of thing I would encourage use of rust for? Absolutely not and I don't hold any ill will to people pursing these, or similar, projects for pedagogical reasons. That's not what uutils is or aims to be though. If the language's system API isn't ready for this sort of project, then I think that would be a more fruitful use of these people's time and whatever funds the project maintainers are collecting. I'm just a bum though, so don't mind me.

path: 0 24561066 24564482 24566652 24567518, hotness: undefined, score: 1, children: 3
edinbruh 7 points 4 months ago

Well, if you want to be pedantic, I'll entertain you a bit more.

You see, C and Unix were "born" together. So sometimes, POSIX intertwines them in weird ways. In this case, getlogin is declared in unistd.h because it's part of the Unix standard API, however the POSIX standard states that it must be implemented in libc. So the POSIX compliant way to getlogin is to call into libc, which doesn't need to be glibc, you could use musl and avoid the GNU dependencies. If rust's stdlib were to offer a getlogin function, the proper approach would be to still call libc. It's like if on windows you were to call into Win32 to getuser, except on *nix it's the same file as libc.

If you want to replace the getlogin implementation, the POSIX compliant place to do it is not in coreutils but in libc, like the aforementioned musl library does.

So the key here is that getlogin is not art of the c system API. It is actually part of the POSIX APIs, it is just "located" inside of libc, which by the way, does not need to be GNU if you are concerned with uutils' philosophy.

path: 0 24561066 24564482 24566652 24567518 24575951, hotness: undefined, score: 7, children: 2
KindaABigDyl 1 point 4 months ago
path: 0 24561066 24564482 24565478, hotness: undefined, score: 1, children: 0
fruitcantfly 28 points 4 months ago

I can't believe that Rust developers would call POSIX functions to interact with the operating system! The audacity!

path: 0 24567113, hotness: undefined, score: 28, children: 3
cockmushroom -2 points 4 months ago

I can, now, but I didn't expect them to be the exact same ones behind this project.

path: 0 24567113 24567639, hotness: undefined, score: -2, children: 2
fruitcantfly 19 points 4 months ago

You didn't expect them to use the standard low-level, cross-platform API to build cross-platform coreutils?

path: 0 24567113 24567639 24573129, hotness: undefined, score: 19, children: 1
cockmushroom -8 points 4 months ago

Next time you pose a rhetorical question, try to make it relevant to the topic at hand

path: 0 24567113 24567639 24573129 24575894, hotness: undefined, score: -8, children: 0
savvywolf 11 points 4 months ago

This "someone else" being... A C API header which can't be copyrighted/copylefted anyway?

path: 0 24568709, hotness: undefined, score: 11, children: 1
cockmushroom -2 points 4 months ago

This is about coreutils, b

path: 0 24568709 24569784, hotness: undefined, score: -2, children: 0
onlinepersona 6 points 4 months ago

Can somebody explain why they are using libc in the first place?

path: 0 24562586, hotness: undefined, score: 6, children: 5
ace 35 points 4 months ago

Because it's a rust implementation of coreutils, and not a rust implementation of coreutils and libc?

path: 0 24562586 24562662, hotness: undefined, score: 35, children: 3
db2 7 points 4 months ago

path: 0 24562586 24562662 24563367, hotness: undefined, score: 7, children: 0
onlinepersona 5 points 4 months ago

But why is libc necessary in the first place? Are the functions not provided by the stdlib of rust?

path: 0 24562586 24562662 24565190, hotness: undefined, score: 5, children: 1
ace 24 points 4 months ago path: 0 24562586 24562662 24565190 24566108, hotness: undefined, score: 24, children: 0
MonkderVierte 1 point 4 months ago
path: 0 24562586 24573363, hotness: undefined, score: 1, children: 0
somegeek 3 points 4 months ago

Fuck this rust coreutils projects.

I'm sure it's google, meta and some other shits behind it. Otherwise, the creators are just too fucking dumb for licensing their project under MIT.

path: 0 24579568, hotness: undefined, score: 3, children: 0
programmer_humor
programmer_humor

@programming.dev

login for more options
33675
2568
7703

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

  • Keep content in english
  • No advertisements
  • Posts must be related to programming or programmer topics
    • If the mod doesn't find it funny, you're banned. Ha-ha!... For real: do not use the community for "statements". There are other places for such content. Keep it chill and funny.

go to feed...