serde_derive now ships a precompiled binary. This made a lot of people angry. The crate maintainer finally locked the issue.

28 points

To me, the fact that the issue was just outright dismissed by the maintainer without really answering any of the legitimate concerns raised (disregarding the unnecessary personal attacks in a few comments) is pretty concerning. And now the issue has been locked without a really good response.

permalink
report
reply
16 points

Can someone explain why one would want to precompile procedural macros? Don’t they get compiled only once anyways, when compiling a dependent crate for the first time? So compile time should be not that relevant?

permalink
report
reply
15 points
*

You’re correct, and that is part of the controversy.

permalink
report
parent
reply
3 points

I’ve read the thread; Rust-folk I recognize seem to accept that this was done to reduce compile time without suspecting bad-faith, but I can’t independently verify that.

There’s a post in there where sometime tries to manually compile the same binary to verify that it matches the shipped binary and they were not able to do it, but there could be a good reason for that. Reproducible builds are hard.

permalink
report
parent
reply
5 points
*

That’s the problem: it is incredibly difficult to verify.

Which is exactly why people are upset.
They’re not accusing the maintainer of doing anything malicious, they’re saying the choice that was made makes it impossible for them to verify if anything malicious was done, or will be done in the entire future of the project.

The reasons given are easily addressed by some of the commenters suggestions, those suggestions have been ignored.

So now a core rust library has a big shiny hackers target on it, because if someone manages to hack or trick the builder into uploading a malicious binary, no one (maintainers included) would be any the wiser.

This is enough to get the crate blocked on a corporate level for security reasons.

Edit: that’s not to mention the extreme end of the problem, which looks more like suits showing on his door saying “here is our secret court order that says you can’t tell anyone about this. Now change the build to use this binary we provide you because we said so”

No regular open source maintainer has the ability to protect themselves or others against a state sponsored attack of that level, and it would likely look just like this if it happened.

permalink
report
parent
reply
2 points

One of the main reasons would be to try and hide what’s in it

If, for example, you wanted to add tracking code into the generated code, and knew people would stop using your product if they found out

permalink
report
parent
reply
1 point

Is there anything confirmed yet? Like what is inside this precompiled binary?

permalink
report
parent
reply
2 points

As far as I know, no one has yet been able to reproduce the binary with the source code, so I don’t think the contents of it are confirmed at all.

permalink
report
parent
reply
6 points

If someone does fork serde, can they at least make it so it actually follows semver?

permalink
report
reply
5 points

Thanks, I hadn’t seen this elsewhere, glad to know about it.

permalink
report
reply
3 points

We are trusting too many people

permalink
report
reply

Rust Lang

!rustlang@lemmyrs.org

Create post

Rules [Developing]

Observe our code of conduct

  • Strive to treat others with respect, patience, kindness, and empathy.
  • We observe the Rust Project Code of Conduct.
  • Submissions must be on-topic
  • Posts must reference Rust or relate to things using Rust. For content that does not, use a text post to explain its relevance.
  • Post titles should include useful context.
  • For Rust questions, use the stickied Q&A thread. [TBD]
  • Arts-and-crafts posts are permitted on weekends.
  • No meta posts; message the mods instead.

Constructive criticism only

  • Criticism is encouraged, though it must be constructive, useful and actionable.
  • If criticizing a project on GitHub, you may not link directly to the project’s issue tracker. Please create a read-only mirror and link that instead.
  • Keep things in perspective
  • A programming language is rarely worth getting worked up over.
  • No zealotry or fanaticism.
  • Be charitable in intent. Err on the side of giving others the benefit of the doubt.

No endless relitigation

  • Avoid re-treading topics that have been long-settled or utterly exhausted.
  • Avoid bikeshedding.
  • This is not an official Rust forum, and cannot fulfill feature requests. Use the official venues for that.

No low-effort content

  • Showing off your new projects is fine

No memes or image macros

  • Please find other communities to post memes

No NSFW Content

  • There are many other NSFW communities, let’s keep this related to the language

Community stats

  • 1

    Monthly active users

  • 88

    Posts

  • 321

    Comments