From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id 2fRXGfftNGHvWAEAgWs5BA (envelope-from ) for ; Sun, 05 Sep 2021 18:19:03 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id yFk9FPftNGHlVwAAbx9fmQ (envelope-from ) for ; Sun, 05 Sep 2021 16:19:03 +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 13F363209 for ; Sun, 5 Sep 2021 18:19:03 +0200 (CEST) Received: from localhost ([::1]:58478 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mMurG-0007c0-4g for larch@yhetil.org; Sun, 05 Sep 2021 12:19:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40138) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mMupl-0005YI-Sf for guix-devel@gnu.org; Sun, 05 Sep 2021 12:17:29 -0400 Received: from xavier.telenet-ops.be ([2a02:1800:120:4::f00:14]:54922) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mMupi-0003NP-IK for guix-devel@gnu.org; Sun, 05 Sep 2021 12:17:29 -0400 Received: from butterfly.local ([5.23.189.68]) by xavier.telenet-ops.be with bizsmtp id qGHL2500D1Uz5El01GHMRl; Sun, 05 Sep 2021 18:17:22 +0200 Message-ID: Subject: Re: Rethinking propagated inputs? From: Maxime Devos To: Liliana Marie Prikler , guix-devel@gnu.org Date: Sun, 05 Sep 2021 18:17:08 +0200 In-Reply-To: <045891c151c74e0d66d91973c9e55e0194272df5.camel@gmail.com> References: <045891c151c74e0d66d91973c9e55e0194272df5.camel@gmail.com> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-T+DCof63uvOKPd9tKsi1" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1630858642; bh=mOJWJQcjJ7UkAxqhySuw6EQSzUdclcSBhnAg+a7GQB8=; h=Subject:From:To:Date:In-Reply-To:References; b=SSIXLBaaluSRtGSuyDG6Qzr01JOy/FhLIoBIc66Jy92or94k7lGe4RjrH0uhpgn9K f8gIjdS78ZHo2kARLf273BmBjFsyYnVHDkSDMphn7z91kCM0MWJLUBxlGZx8PSbag7 nYK2XNcyH+y/3Ykqqmk8xIEsxf2LJ85XGiW4TtNPttqfnYIN2umtP585UacwgdzJcT J5l0r0VtYY0HRqBAnFTo+hE+RVeiaCYOmMivX3aUnkPaEUfBqYy9bJe2XIyPE2oizP gYTUqaffXO4Bi0xwsW+Evy0bDRh7gJ2vsFwkW3XbsrdXyL0vEWkayvPxCmCAyiIu61 q2gU2efDvKTBA== Received-SPF: pass client-ip=2a02:1800:120:4::f00:14; envelope-from=maximedevos@telenet.be; helo=xavier.telenet-ops.be 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, FREEMAIL_FROM=0.001, 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: , 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=1630858743; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=mOJWJQcjJ7UkAxqhySuw6EQSzUdclcSBhnAg+a7GQB8=; b=ZU53hVvnlwbry3m3zXa2w26ENj+htgH5t8Dbj4PAbLn+levBPN634yiYq10D9cpKfyOF4a TRWOvDTCzp5By/V8pvqQYLy+GkfOPFZmJkDIsvXKG0pjb/UKy9/6E0LzWyAPQv/i5cj09I OIvReXwJ81w3QUqmD8IWX7tRM2BYI62wMqti1LG+qOXSqoQQlpyOVfjvrX+QutgSgzcyhu crn9se5bG1V8Ev7A1N7PdM/laSiokoSVW3jNSRB5ks0Es3lLtD1cRpr8U2ud7H+X2SnODz kw3uN1XxLm+jE+KAsz5oZcKsX2fiKPJOQ+zV9ku9JfczaUEPpPj/Dla/HgV58A== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1630858743; a=rsa-sha256; cv=none; b=Vz7ZnIsgBqorrA4Gs7tWCIh0o2ai7zA0R8klw9oeFGcBq/vT6nUdI41X44xlnkIkgNFc9/ u6mGWdRvYUW6OBs0m4xU1/Wxg7SQC88csb0oCON+7FuTOgSLFid1vyHpPTP0SvHmPegmib H2QbtenmBpr/R8Y0rhoJw3vhSrOpJMB6xrLNp8EffqYgF02cGLRnWjkFxb7Mtq/dQJThbb IvWQ8/DiZn3PahcDoJLsb77ys3Hn0+BAOXGxfH+Y2FiWHnky8DE+sKzmydyYrZtrd2mmqa iZfW/18Pj+ZdAXeRzY594Gc8cq1a+oVsex2QyKJYhZCam5/6yBlWsrjVBppw5w== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=telenet.be header.s=r21 header.b=SSIXLBaa; dmarc=pass (policy=none) header.from=telenet.be; 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: -4.21 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=telenet.be header.s=r21 header.b=SSIXLBaa; dmarc=pass (policy=none) header.from=telenet.be; 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: 13F363209 X-Spam-Score: -4.21 X-Migadu-Scanner: scn1.migadu.com X-TUID: DxvlDLPrzB2o --=-T+DCof63uvOKPd9tKsi1 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Liliana Marie Prikler schreef op za 04-09-2021 om 20:24 [+0200]: > Hi Guix, >=20 > some while ago we made the decision to propagate inputs, that are > mentioned in pkg-config files, the rationale being that those > propagated inputs will be needed in packages in order to compile. This > has saved us some typing, but at a cost. For instance, it is now no > longer possible to upgrade "zile" Zile doesn't propagate glib: it's in inputs, not propagated-inputs: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/zile.scm#n84. > " and "icecat" independently, because > both propagate glib. "libreoffice" and "telegram-desktop", two > packages that have failed us loudly before, are also in that list. libreoffice doesn't propagate anything. Neither does icecat. > To > see what else is in here, you might want to use the following snippet > in a guix repl: >=20 > --8<---------------cut here---------------start------------->8--- > (use-modules (guix packages) > (gnu packages) > (guix discovery) > (srfi srfi-1) > (srfi srfi-26)) >=20 > (display > (fold-packages > (lambda (p s) > (if (any (compose (lambda (input) > (and (package? input) > (string=3D? "glib" (package-name input)))) > cadr) > (package-transitive-inputs p)) > (cons (package-name p) s) > s)) > '() > (all-modules %default-package-module-path))) > --8<---------------cut here---------------end--------------->8--- >=20 > It returns more than 1400 packages =E2=80=93 a bit less than 10% of Guix.= =20 > Needless to say, that's a bad thing and I think we should do something > about it, particularly when it comes to leaf packages, that users are > likely to install. >=20 > 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? For packages using pkg-config, I had the following scheme in mind: A package that has .pc files puts them into a separate "build" output. The code handling 'propagated-inputs' is modified such that an entry in 'propagated-inputs' can have an additional 'propagated-for-output' componen= t. (Feel free to suggest a more concise name.) I.e., something like: (define glib (package (name "glib") (outputs '("out" ; everything "bin" ; glib-mkenums ... depends on Python "build")) ; glib-2.0.pc (propagated-inputs `(("pcre" ,pcre #:propagate-for-output "build") ; in the Requires.p= rivate field of glib-2.0.pc ("libffi" ,libffi #:propagate-for-output "build") ; ditto, for go= bject-2.0.pc ;; etc. )) (native-inputs '()) ; not relevant to this e-ail ...)) Now, imagine the "build" output of "zile" had glib:build in propagated-inpu= ts, using the scheme described above. Then, if the "out" output of zile is ins= talled in a profile, that doesn't cause glib to appear in the profile as well, bec= ause glib is only propagated for the "build" output of zile, and not for "out" output= of zile. However, if "build" is installed in the profile (e.g. because someone runs "guix environment --ad-hoc zile:build various compilation tools" to create an application using the zile library), then the .pc becomes available in t= he profile.=20 Greetings, Maxime. --=-T+DCof63uvOKPd9tKsi1 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYTTthRccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7ghGAQD9Z0wS8ipFtzPemaHjv4YQPo41 pClfek/cgK1wCauBOwEAw391xmuDlvfa9lXwXnDc4VqFx5cFMtpJltxIX3lJZwU= =4Ywv -----END PGP SIGNATURE----- --=-T+DCof63uvOKPd9tKsi1--