From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?Bj=C3=B6rn?= Bidar Newsgroups: gmane.emacs.devel Subject: Re: [PROPOSAL] Builder, a build system integration for Emacs Date: Mon, 29 May 2023 00:22:09 +0300 Message-ID: <87a5xo6tj2.fsf@thaodan.de> 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> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40408"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: Gregory Heytings , tomas@tuxteam.de, emacs-devel To: Lynn Winebarger Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun May 28 23:22:46 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 1q3Nqg-000AHT-22 for ged-emacs-devel@m.gmane-mx.org; Sun, 28 May 2023 23:22:46 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q3NqB-00036u-Lp; Sun, 28 May 2023 17:22:15 -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 1q3Nq9-00036Y-L5 for emacs-devel@gnu.org; Sun, 28 May 2023 17:22:13 -0400 Original-Received: from thaodan.de ([185.216.177.71]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q3Nq7-0003it-Vp for emacs-devel@gnu.org; Sun, 28 May 2023 17:22:13 -0400 Original-Received: from odin (unknown [IPv6:2001:2062:2301:f400:72a:be51:2c32:1a06]) by thaodan.de (Postfix) with ESMTPSA id 6A617D08DAB; Mon, 29 May 2023 00:22:10 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=thaodan.de; s=mail; t=1685308930; bh=7K8KZ6Oo2bCdtMybsFW+IEcF9g8QOgJ5QpCnGJoNR7o=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=raW4DXkAhpVjN4X3XED/7JFXLqrdVImeldsazmT+QaZVrRft+gFyV4h+yzdmhcKxT SY93RDY0a2OBE+jLo3K2LSF6yPyybKfjBqNdCTMJSFNbMKO9qjGtPglOJewHWMpFoG 1O02lL4C5m3DeMETNGu0ROW82mm+elUaEoucvrNUYfa2zK6Uu6QSv4difn8ynBIgB5 gr+6tAuG6qrtr78EsPeid3O4/sIo1dXDsdPeGTvHJJ/TNHlzHeL4ujMW5KUa1YW3LS hZvwqaSn6kjm6KtxNkIr24+w6UNmnTJeBQLEW5yKVuuuTx1q9bI5q6QX50mQyY/7Ea JTmr2Bnrgo38FGsaFMOk3yB8HERrajBfIH4GEWOaZ+2mg01xROWNMnVsWDv/TZg5Cm 0tTA6IRCBfIeBqZ9amSIgp7Z3g8hR23nLAlFPqz+7oKYvFiKLlEy8vzZvPVwUgz7nm 3qttldMpQYeKon/xkckvf8z5A8FHdCii3n0aqM3wEXvDX34XqfbonwvIDPj5jk+YEU VDTxIULq7e1R3UhqBsrBFTJ9xodGDRxA2YhtzDRuj3qn+O8Mwbj5n3jHRDSHAUhfHo 4t7hcaxjzhDgAHMwA+kB6N4FrrZIt7Jidc6Ose4w19pN4zq3mtVAysjJczFP5h/Lbc gnFeQ1xIIyDbPA27Tm9KCIdo= In-Reply-To: (Lynn Winebarger's message of "Fri, 26 May 2023 18:59:35 -0400") Received-SPF: pass client-ip=185.216.177.71; envelope-from=bjorn.bidar@thaodan.de; helo=thaodan.de X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action 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:306377 Archived-At: Lynn Winebarger writes: > On Thu, May 25, 2023, 2:55 AM Gregory Heytings 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 >> dependencies. >> > > > "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. Not just to users but anyone that has to deal with the software in the long run. These "package-managers" or in case of Rust in some even compilers (since you don't really invoke rustc) make it so easy to vendor libraries that most/many don't have a stable ABI or API. > Can "crates.io" be replaced by a different package repository, or > configured to work with whatever is available locally? If I understand corrrectly earlier that is possible but I would assume that is a hard task to do since you would have to mirror all the packages that already commonly used.