From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id WCM0BdznvGE3qwAAgWs5BA (envelope-from ) for ; Fri, 17 Dec 2021 20:41:16 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id oCAMAdznvGHQJQAA1q6Kng (envelope-from ) for ; Fri, 17 Dec 2021 19:41:16 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 7DBA12CF5B for ; Fri, 17 Dec 2021 20:41:15 +0100 (CET) Received: from localhost ([::1]:57034 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1myJ6Q-0007OU-KR for larch@yhetil.org; Fri, 17 Dec 2021 14:41:14 -0500 Received: from eggs.gnu.org ([209.51.188.92]:60622) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1myJ6H-0007OF-I3 for guix-patches@gnu.org; Fri, 17 Dec 2021 14:41:06 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:57367) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1myJ6E-00075r-6M for guix-patches@gnu.org; Fri, 17 Dec 2021 14:41:04 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1myJ6E-0004PO-4q for guix-patches@gnu.org; Fri, 17 Dec 2021 14:41:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#51838] [PATCH v5 07/45] guix: node-build-system: Add #:absent-dependencies argument. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 17 Dec 2021 19:41:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 51838 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Timothy Sample Cc: 51838@debbugs.gnu.org, Pierre Langlois , Jelle Licht , Philip McGrath Received: via spool by 51838-submit@debbugs.gnu.org id=B51838.163977002016884 (code B ref 51838); Fri, 17 Dec 2021 19:41:02 +0000 Received: (at 51838) by debbugs.gnu.org; 17 Dec 2021 19:40:20 +0000 Received: from localhost ([127.0.0.1]:40680 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1myJ5X-0004OG-Q5 for submit@debbugs.gnu.org; Fri, 17 Dec 2021 14:40:20 -0500 Received: from mail-wr1-f67.google.com ([209.85.221.67]:38802) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1myJ5V-0004Nz-Q2 for 51838@debbugs.gnu.org; Fri, 17 Dec 2021 14:40:18 -0500 Received: by mail-wr1-f67.google.com with SMTP id e5so6023465wrc.5 for <51838@debbugs.gnu.org>; Fri, 17 Dec 2021 11:40:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=l77w6RSIPhnSxr/BEddCgsk0x9oTVNDE/ekBRo3bGfw=; b=qVyGZ+N7pZ0ep+0NOK+4ccrwWWN///MJzVlYQyKCSIdKhT7gBMDbV1wB5oqLSovLTk pk5Exosc6swvZaO9BvRWbAgluDhpTaciwA/YTVoAvf8UIVeoPrjMcI/l9miEuWQyPzGk qUdEGjLdPOQd6Cbv1bjmX0xYTGEVIavBvNneXqGVlCnHjdQ/x3C63RydVKb9+9JAZzIt TVSHgIxVuv8H5+RrA8Hh68vmCfN7TY0eX7fS6NWgfpaM9Y4cZ4NQBJsMJ3TRonm3zDlE 9JzPUNt1hJAOqKkbkmVTByrjaLrTnTNMHqDS5rHN54fSCVRra+t8iAjOK36Fu2WvPbOg Kzog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=l77w6RSIPhnSxr/BEddCgsk0x9oTVNDE/ekBRo3bGfw=; b=neqF5Z6H3ph9OY1pehhQJk/imyQVN3dddw6wqPLLiO4ttleGZl7ei4iQUCY4ZWk0xU a5RPI69iSb3iFgQyfH369k5kd0xP7OBTcrww838f/PHbxoBv79hJ8zzqzpB3Hx4jWFro PcgWkStptF0SdTtJ8C0sh88r+O3d6uSK8cA3OL4gg6TrWEqw32QhbftT/5/MrSRNlgrl mCLq59mD48d/AdjC651b3STtsVSZS2bxG9vebGSotKMua66Jf3jHJKlsJZ+y2voJS9rE sYYulkle4/8JhIzpHQ2hlBy9x1nI/5YBL7gnqoW3ur79giDGuDhmNjG8lPTPsRHmu16r Cx+g== X-Gm-Message-State: AOAM530fRDyg7INkTaGgNv2LUc4wqZvPuuhUt8Qr1aipcW5zhuaxippH JuewVJoKVwIcsgtm5UXaz6Q= X-Google-Smtp-Source: ABdhPJxSmC4F4pPHJTgSGftXUC60VvDQfZ0IUR+82GC8jFp2EAlldj8bHs+8a4xwsNndsg1M7VZt2A== X-Received: by 2002:adf:f201:: with SMTP id p1mr3617865wro.243.1639770011803; Fri, 17 Dec 2021 11:40:11 -0800 (PST) Received: from nijino.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id n9sm9603223wmq.37.2021.12.17.11.40.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Dec 2021 11:40:11 -0800 (PST) Message-ID: From: Liliana Marie Prikler Date: Fri, 17 Dec 2021 20:40:09 +0100 In-Reply-To: <87k0g36xp3.fsf@ngyro.com> References: <20211213060107.129223-1-philip@philipmcgrath.com> <20211217020325.520821-1-philip@philipmcgrath.com> <20211217020325.520821-8-philip@philipmcgrath.com> <87k0g36xp3.fsf@ngyro.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1639770075; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=l77w6RSIPhnSxr/BEddCgsk0x9oTVNDE/ekBRo3bGfw=; b=Ng5VRvczDtTL+EPIYd90HDo9YFGQqtDwcTNA6C/jWDATXha0LFBnCth6g7VBEaQLF0yGtk qQD4vtd7WcG5IgPDAoXlYYKOTwKzgVkjaT+jZyXEiTxNuDK33JyxYss7GARfiKmqLgk01T gcL+aYxBZJ9GEEIx4K9yeES3wmPsuK+OU/en6tp6Ge5yOU5ZXa6NwBbImc+KzFgs4AWl0e FR9XrXN+er5Uzn8x7T6xGmEEYkndUp91NrIRlqfcRt9wZSfs92IzvhvdSznB1GlHrCUpHT tcqLKevIluY1awdCl+LFeI4mtD9YNGqX0w2ECXZXGetDLdwbwF7WcbxxeVCN3g== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1639770075; a=rsa-sha256; cv=none; b=CSUel6g5+CFt0A1T/blC60iJhjWLpWkIG+5ntclYqNSpidpgK4kGt/sFN2VFzQ2Q+EST2b Q/MR2I0jroK+SAMfOrBcNMAfafu1Wrks9giNWWreu4cHragr7ZSkyAseiBnonOibIrIF2K qUCvZajUmirE+05rl+AODyct8N5iJ7+QZKCcECdRFXW+oN64lZLSS3imN7M/posPyhzTsw q8dc3rSTmTcKPLd3qsEQjX+x7EmRxoazsRG3aSTZuQa8qZXUlqa+HgqbBi6OXozS2H5xc/ 9phG0o5KYV3kTQTTjmzIHheeLPHzs5rggD+8SGVnxpAa2AdgU2poOM5Lkhoatw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20210112 header.b=qVyGZ+N7; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -2.70 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20210112 header.b=qVyGZ+N7; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 7DBA12CF5B X-Spam-Score: -2.70 X-Migadu-Scanner: scn0.migadu.com X-TUID: fDqWLngUxqEY Hi Timothy, Am Freitag, dem 17.12.2021 um 10:46 -0500 schrieb Timothy Sample: > Hi Liliana, > > Liliana Marie Prikler writes: > > > I might be sounding like a broken record here, but again for the > > sake of being able to add or remove inputs on the user side without > > duplicated efforts, I'd use something else in lieu of absent- > > dependencies.  For the time being, I think a switch between "fail" > > and "warn about missing dependencies" ought to be enough.  In the > > future, we might want to make it so that packages can specify which > > dependencies they absolutely require and which they don't (or if > > possible infer that from dependencies).  WDYT? > > The way I see it is that we are basically copying the > “--disable-X”/“--without-Y” features of a GNU configure script.  With > the GNU build system, if one of our packages specifies “--without- > zlib” > for whatever reason, and you as a user want to modify the package to > use zlib, you would have to > >   1. remove the “--without-zlib” configure flag; and >   2. add the zlib package to the package’s inputs. > > That’s a “duplicated effort”, right? > > Similarly, for a Node package (with a pretend Node zlib package), you > would have to > >   1. remove “zlib” from absent dependencies; and >   2. add the “node-zlib” package to the package’s inputs. > > That seems okay to me, but I’m worried I’ve missed what you’re trying > to communicate. For the GNU build system (and likewise meson-build-system), the default behaviour if you haven't specified anything as per upstream conventions is typically to error if the package is required and omit it if it's not. The default behaviour of node-build-system (and likewise cargo and most other build systems that come with the advertisement of "we know package managers better than people who actually produce useful package managers) is "Oh my god, you don't have an exact copy of the machine that built this stuff locally, I am going to barf huge walls of noise at you". Therefore, we can't meaningfully compare those build systems in terms of strategies. On a slightly related note, I recently had the pleasure of working on a patch for a package that fails python-build-systems new sanity-check phase. If we really want some static verification for node-build- system, I think we should take that as an approach rather than hard- coding (absent) dependencies literally everywhere. Although in writing that I must concede that Python is still too sane to be a Web standard. I'm sorry I can't explain my reasoning in a nicer manner. Your point would be totally valid if node-build-system did act like the GNU build system or meson in that dependency resolution is DWIM by default, but sadly we can't have nice things with "modern" programming languages and their build systems. TL;DR: "--without-zlib" is usually implied in packages based on the GNU build system unless zlib really is a hard requirement of the package. The same can't be said for node-anything. Cheers