From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: [PROPOSAL] Builder, a build system integration for Emacs Date: Thu, 25 May 2023 10:48:41 +0300 Message-ID: <83h6s0n95y.fsf@gnu.org> References: <95980ffc-86e7-ad54-4a20-539d8c6ea5d0@mailo.com> <3f68f4bc-d426-0bcc-1329-674c12b29386@mailo.com> <76e12f7c-335f-476b-ffb3-fd8e8e4ab5d0@mailo.com> <87pm6rx4ea.fsf@yahoo.com> <87wn0ytefw.fsf@gmail.com> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="34157"; mail-complaints-to="usenet@ciao.gmane.io" Cc: tomas@tuxteam.de, emacs-devel@gnu.org To: Gregory Heytings Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu May 25 09:49:23 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q25ir-0008RZ-Vr for ged-emacs-devel@m.gmane-mx.org; Thu, 25 May 2023 09:49:22 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q25hp-0006l5-Ia; Thu, 25 May 2023 03:48:17 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q25hn-0006kc-6C for emacs-devel@gnu.org; Thu, 25 May 2023 03:48:15 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q25hl-00043Z-Ds; Thu, 25 May 2023 03:48:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=BX0ouUAADZ7DIWxL7/L8WA7VlODX0n0R839GW5E8jAI=; b=hr8KLqUSL/z3 mwTMT0NFZvN/0V21zcGTw82f2ZbmWCx29Wc0h5I08EXIMkQk4dRL/6qTwXP8pSO5pYRAwaM8fomDu IvAJQeIAe3gA38pCm9wVlPO7CAlpdOaXFbIYNWJEanM/vjMWP5V2y0PN/deNBNqfT/voGkFUI45IS ANVEZA5oq5QCAujEsWTOzTq911pFUuwb+hKu+upWhNXGc0vcZEzGTCGJwFyja0dJmyM608hoXeaiI 5CNcEh1pOgKhzG06mQUEcc9Bjntb6IOaqUlJp4dv15i9kBU76JyhgK4F9HbzytaI2atJkV/VRwOJr fMECzI+ExFeoNc0YdhHelg==; Original-Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q25hk-00045c-Tg; Thu, 25 May 2023 03:48:13 -0400 In-Reply-To: (message from Gregory Heytings on Thu, 25 May 2023 06:53:56 +0000) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:306317 Archived-At: > Date: Thu, 25 May 2023 06:53:56 +0000 > From: Gregory Heytings > cc: emacs-devel@gnu.org > > > >> 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. FWIW, I don't trust tools that "do all that for me". When building a package that needs some prerequisite, I want to: . understand the reasons for the dependencies, and consider whether I really need whatever features need each one of them (if they are optional); . examine the license of each dependency, and see whether it is kosher; . skim the documentation of each dependency and see whether what it does is something I'd like to allow on my system; . search the Internet for any problems with each dependency on platforms about which I care, and decide which version of the dependency I want to download and install, and perhaps also what patches I should apply to fix those problems proactively I'm not aware of any "do-everything-for-me" build tool which will allow me to do all of the above. They all "know better" what is good for me. So I don't trust them. And yes, it means installing packages takes me much more time and effort. But that is justified when I'm doing this on my main development systems which must be very stable (as opposed on scratch systems about whose stability I don't care much). I think what Cargo does is cater to users who are none the wiser, and want Someone Else(TM) to make decisions for them. Sadly, this is where our world is going in the recent years, pulled by MS and its workalikes. Sadly, many GNU/Linux distributions look and feel like MS workalikes.