From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id 0XynFC23N2EAcAAAgWs5BA (envelope-from ) for ; Tue, 07 Sep 2021 21:02:05 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id gAXoDy23N2GZdwAAbx9fmQ (envelope-from ) for ; Tue, 07 Sep 2021 19:02:05 +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 DA21753D9 for ; Tue, 7 Sep 2021 21:02:04 +0200 (CEST) Received: from localhost ([::1]:58712 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mNgM7-0008MV-UK for larch@yhetil.org; Tue, 07 Sep 2021 15:02:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60790) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mNgLm-0008Jw-F0 for guix-devel@gnu.org; Tue, 07 Sep 2021 15:01:42 -0400 Received: from out0.migadu.com ([2001:41d0:2:267::]:37842) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mNgLi-0004xY-Fp for guix-devel@gnu.org; Tue, 07 Sep 2021 15:01:41 -0400 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mgsn.dev; s=key1; t=1631041294; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to; bh=ECHu4Oc9+O5jgTxOCJ0TtNpv2W/wS8Kit5Qud3V35dY=; b=K+udOltOGdIomGKyYQDYGoDOmcLgeRqu+++zUNiqxLldfAyilpGArhCsbvs76GYVEnstqB vFhSCF6J27RGXTB2X5jZUGLvqWlS5VZ0XnxhYPhW7ea4whThrwS4w+ahfeWC8FZ3SOi10Q uCfPc8O7XCPf/hOfvDN+FE3dBEJ7NbM= From: Sarah Morgensen To: Maxim Cournoyer Subject: Re: Rethinking propagated inputs? In-Reply-To: <87lf49a886.fsf@gmail.com> (message from Maxim Cournoyer on Mon, 06 Sep 2021 14:07:21 -0400) Date: Tue, 07 Sep 2021 12:01:30 -0700 Message-ID: <8635qgi511.fsf@mgsn.dev> MIME-Version: 1.0 Content-Type: text/plain X-Migadu-Auth-User: iskarian@mgsn.dev Received-SPF: pass client-ip=2001:41d0:2:267::; envelope-from=iskarian@mgsn.dev; helo=out0.migadu.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: guix-devel@gnu.org, liliana.prikler@gmail.com Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1631041325; 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:in-reply-to:in-reply-to:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=ECHu4Oc9+O5jgTxOCJ0TtNpv2W/wS8Kit5Qud3V35dY=; b=FWvopqaPA19o73Dbgmakk/zSk+nsryzM7BxuNvossn2mE7B/X80t2qQ8M+pmEvPe8www6D cpSVDg6/+PuuTFD2XL/VJHRAupzbqRe5LWBP6fNpeebV/ADcRnLXcUEajs+tUqZZ9F/AMJ Y0WWzM0vSGNn6ofm21GH3FiFQ9ev6Bfs0sSuMwQt2X9MfJB19D0x+3CVuBb3+716o9qoh1 fEfUrBmU8x5QAWbb/RRQzwYGT031ksVpLL5/gvnf3L3vNOOVS6sXErOacncjjxHb3tcyw1 VJ0FCIeZKvjJX2P/BNDIqOfIPwIU+i6PaBDJv9MMElVWX6ibm+CofxnH3nrpLg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1631041325; a=rsa-sha256; cv=none; b=LFGXtv6z1R1zYbeUVXoH8clD2S+KquF21ygQBpUpKZ45H6DE0Pvzes1CxBy30k+Dhp7zgV 2HqB+ULtXc82xuA4wjlzzPcGNdvmZMWQ1DVQqChadtRczkh7ZWDVgCd4tYSbMKb6NIL0ZK 0uRgXcD1RdmcJ3gRD3BlzMwHRZfwSzfdLtRCiqPO0r96aQOvFlaRXuHf9UaLhXDGi0qN30 GsBFD7Wy/CYPcS/AMBhsTREIsXrr/hTHwDc1VCALZe9OFZ+le3oykpfpbCvDOmYivgoWDI 5kaFAwv6bLrxXedogse5xdN3ox4gh/qMa7zqmxuVR9v+itHYQFFmw89TqsAvKw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=mgsn.dev header.s=key1 header.b=K+udOltO; dmarc=fail reason="SPF not aligned (relaxed)" header.from=mgsn.dev (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Spam-Score: 1.19 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=mgsn.dev header.s=key1 header.b=K+udOltO; dmarc=fail reason="SPF not aligned (relaxed)" header.from=mgsn.dev (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Queue-Id: DA21753D9 X-Spam-Score: 1.19 X-Migadu-Scanner: scn0.migadu.com X-TUID: CyuaMuR+X+sP Maxim Cournoyer writes: > It seems the original issue pointed at was somewhat misguided; is there > still something to be fixed about propagated inputs? It seems the > discussion has moved toward handling propagated inputs for the use of > pkg-config. > > What are the current problems with it, and what would the advantages be > to move away from the status quo? If there aren't clear benefits, I'd > prefer the status quo, abstaining from the added complexity. As I mentioned up-thread: Sarah Morgensen writes: >> Does anyone have an idea how we should handle propagations for the sake >> of pkg-config? Perhaps we could add "linked-inputs", which are added >> when building packages and environments when not using --ad-hoc, but >> not when union-building profiles. WDYT? > > I know nothing about pkg-config, but such an input would help > simplify things for Go (and I think for Rust) since many inputs need to > be propagated only at build-time. In Go(/Rust), the dependency packages' output contains only source, and for a package to build it must have the source of all its transitive inputs available. However, IMO it doesn't make sense to automatically install these in a profile when installing that package. If you're installing a source-only package, you likely don't want all the transitive dependencies automatically installed--what if you're just inspecting the source, or want to try building it with different dependencies? If you want all the build dependencies as well, you would just do guix environment go-foo --ad-hoc go-foo like you would do for other Guix packages. In the context of this discussion, I can think of three types of solution: 1. Add a modifier like #:profile? (defaulting to #f) to propagated-inputs entries (propagated-inputs `(("foo" #:profile? #t))) 2. Rename "propagated-inputs" to e.g. "profile-propagated-inputs", and then introduce a new "propagated-inputs", which only propagates into the inputs of dependents, and not into built profiles. 3. Introduce a way to prevent an input from propagating anything into the current package/profile (inputs `(("foo" #:propagate? #f))) and then provide CLI options (transformations) to control this. I think the first two are clear and make the packager consider exactly what they're going to propagate into user profiles. Of course, both also rely on the packager always knowing what should be propagated to a user's profile or not. The third option allows more control over that (and could be combined with one of the first two), but feels a bit rough to use... WDYT? -- Sarah