[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PROPOSAL] Builder, a build system integration for Emacs

From: Lynn Winebarger
Subject: Re: [PROPOSAL] Builder, a build system integration for Emacs
Date: Fri, 26 May 2023 18:59:35 -0400

On Thu, May 25, 2023, 2:55 AM Gregory Heytings <gregory@heytings.org> wrote:

>> Cargo is a program that runs locally, not a server.  It works like
>> make, except that it may communicate with the crates.io repository, to
>> fetch a copy of the source code (and the license) of the libraries you
>> need to build a given Rust program, and that are not yet available
>> locally.
> ... akin to npm (the Node package manager of the _javascript_ world), it
> downloads half of the Internet while building and makes your life
> miserable if you want to avoid that.
> The new models just make it slightly more inconvenient to stay free.

You are spreading FUD.  When you want to compile, say, Emacs, you need to
either download the binaries of the libraries that are not yet available
locally and their headers, or download the source of these libraries and
build them.  Doing that does not "donwload half of the Internet".  After
this you need to run the "configure" script which checks which libraries
(and sometimes which versions of these libraries) are available.

Cargo does all that for you.

> Can we call this pattern neo-proprietary?

No, we cannot.  There is no relation whatsoever between software
proprietariness and this elegant solution to the problem of library

"Elegant" is a strong characterization of the practice of "vendoring" source dependencies, which you describe here.  It's useful if you are maintaining a replicable build process common in corporate software environments and projects meant to distribute prebuilt binaries to the mass-market.  Vendoring is distinctly unfriendly to users that want to build or tinker with it locally using locally available (and user-vetted) libraries, i.e. classic free software users.

Can "crates.io" be replaced by a different package repository, or configured to work with whatever is available locally?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]