STOP rust!

Adam Weinberger adamw at adamw.org
Thu Nov 12 23:48:10 UTC 2020


On Thu, Nov 12, 2020 at 2:58 PM Dewayne Geraghty
<dewayne at heuristicsystems.com.au> wrote:
>
> On 11/11/2020 12:24 am, Rozhuk Ivan wrote:
> > Hi all!
> >
> > With latest ports tree librsvg2-rust-2.50.0 is required to some ports.
> > It want replace librsvg2-2.40.21.
> >
> > I do not want build ugly rust during hours to build small lib in less than minute.

Rust is an absolute beast, there's no doubt about it. Rust itself
builds painfully slowly, and then it builds other things painfully
slowly as well. I go through contortions to avoid needing Rust;
building node is frustrating enough. I'm 100% with you that building
Rust is like beating your CPU with a hammer.

Unfortunately for those of us with limited build resources, Rust is
the New Hotness for a reason. Upstreams are switching to it every day,
and more and more libraries and binaries will rely on it. We are going
to have to rip off that band-aid sometime, and the right time to do it
is when upstreams switch to it. When something I need requires Rust,
I'll have to make my peace with it. I strongly urge against the
kludges offered in this thread; much as it sucks to build, I urge you
to make your peace with Rust as a dependency. It will not be the last.
There are many great programs that I eschew because they're written in
Rust; once I make my peace with it, I'll get to use a lot of things
I've been avoiding.

librsvg has switched to Rust, and so the port has no choice but to
switch to it. It's not that we prioritize FreeBSD-provided pkgs over
end-user poudriere, it's simply our obligation to build the current
stable release with the tools they require. Linux-oriented upstreams
(like GNOME) generally expect end-users to install from
distro-provided packages, so they approach the choice of
C/C++/Haskell/Go/Rust as a transparent change. BSDs still celebrate
end-user builds, and the tools to do so are increasingly massive,
disparate, and complex.

It would be really nice if poudriere could keep a list of pkgs that
should be fetched rather than built locally, but that alone is a
nightmare for the solver, I suspect.

The tl;dr here is that I 100% agree that Rust absolutely sucks to
build, and I avoid needing to build Rust, but the ports tree will
always use whatever tools the current stable version requires. librsvg
is now built with Rust, and so we now build librsvg with Rust.

# Adam


-- 
Adam Weinberger
adamw at adamw.org  //  adamw at FreeBSD.org
https://www.adamw.org


More information about the freebsd-ports mailing list