From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id uLiMEUqyNWKbewAAgWs5BA (envelope-from ) for ; Sat, 19 Mar 2022 11:36:58 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id qCcDD0qyNWIgnAAA9RJhRA (envelope-from ) for ; Sat, 19 Mar 2022 11:36:58 +0100 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 E7381C345 for ; Sat, 19 Mar 2022 11:36:57 +0100 (CET) Received: from localhost ([::1]:43308 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nVWS9-0005nx-3O for larch@yhetil.org; Sat, 19 Mar 2022 06:36:57 -0400 Received: from eggs.gnu.org ([209.51.188.92]:38336) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nVWRH-0004tK-20 for guix-devel@gnu.org; Sat, 19 Mar 2022 06:36:03 -0400 Received: from libre.brussels ([144.76.234.112]:33216) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nVWRE-0000JF-Hm for guix-devel@gnu.org; Sat, 19 Mar 2022 06:36:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=libre.brussels; s=mail; t=1647686158; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1KTy4rMPD0XBm8qkEc62q+XNNcUCGxvOr1+0WLXN5Jc=; b=jAMXUAPNY82CTq2yUf1fdvEsHo/mdXT3mBY0a4TUdPcj2dBDaMTU9c9rgm9kXz7YzoGXn1 vczU6TL3bSoncX93oFK3X7pmxqQa7duYgYELsCjQU+hiykPOeXxwGikYkzvXYp9oDOgouD wwtEoMqsMS3ziDVbyDx4Ud11OEsd8d0= MIME-Version: 1.0 Date: Sat, 19 Mar 2022 10:35:58 +0000 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: "Jonathan McHugh" Message-ID: <4ac65df5cbf02016f855495edc5ba5cf@libre.brussels> Subject: Re: Fetching sources using Guix (re: Building a software toolchain that works) To: "Ryan Prior" , "Guix Devel" In-Reply-To: References: Received-SPF: pass client-ip=144.76.234.112; envelope-from=indieterminacy@libre.brussels; helo=libre.brussels 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: guix-devel@gnu.org X-Mailman-Version: 2.1.29 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 X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1647686218; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=1KTy4rMPD0XBm8qkEc62q+XNNcUCGxvOr1+0WLXN5Jc=; b=eDFIIrW22898Bw6SISBurNgRK6qWm6EKh859AWj4H9w3X7BRLC3ZgAXETls9HwhGTsIbiQ dToUG/7SmCSjQP0kUpa0Dyx35BirobLU7JfKiUqnWGxpHhqueyr6rujtvT312aoi8gL42k AeuxKXsMnPJDOyFtndZeXw2jaloLbbPuqljpPBQAXVgaDca0pgml/OZ88xzcGTxVbvvwsw D1LOo+A/OlirhH7YYsAo+UJzUJyCpAy/QUhMcr7MQerfe+Q7u0PZ5PFGFCkvSja+m1u7v2 z/2s3/Ekq33yETK9QS4OiarHAQWr2/73jE+vS/+6JL+WspHUTPnSRBvEmSa5YQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1647686218; a=rsa-sha256; cv=none; b=ny3Z9e/EEhZr4AogNqmtJF7of25pxNgEGo8JMjoZR9GxhPX+ZywDwRe+ebgI3tnY9YUAYm ckzhnf57Dnp1Ia7NcDSry0oDEmpZd4XRU46aMhU3zSE5H4zppytcf96BUEbWzM5ff3S5DM e98urGX2QmqLSkExPAhXbdtNSbYk3fSmSrOmcOERZr4ct5coZQqbePoO6ai34boM6uUXAU pc3lUPFpeSMqenR3ocZKu6l/ssGgovQkRNkFCKDCZilQKecYrhJjRxWNJLvrOflmawgwK4 6ziP53LiQFX8HgbivVQrLX2DB1A5lxAWMEFuRmk+frIET5i6BZmJ06LPfsyoNw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=libre.brussels header.s=mail header.b=jAMXUAPN; dmarc=pass (policy=none) header.from=libre.brussels; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -4.14 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=libre.brussels header.s=mail header.b=jAMXUAPN; dmarc=pass (policy=none) header.from=libre.brussels; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: E7381C345 X-Spam-Score: -4.14 X-Migadu-Scanner: scn1.migadu.com X-TUID: 2LGpZh17yjiu Hi Ryan, March 19, 2022 1:08 AM, "Ryan Prior" wrote: > One of the side-threads in "Building a software toolchain that works" w= as essentially this: >=20 >=20If I fetch sources for a package using Guix, with the intention to ma= ke changes and then build and > test the software myself, what should we do with any patches & snippets= that are part of the Guix > package? >=20 >=20There does not seem to be an obvious right answer. One reason is that= patches and snippets fall > into at least a few use cases: >=20 >=20* The upstream package won't build at all as-is using the environment= Guix creates, so we apply a > patch to enable a successful build. > * Upstream vendors some sources into their package, which we prefer to = excise using a snippet so > that we can do our own dependency management > * Upstream includes non-free components, which we remove to build a ful= ly free package > * Upstream includes binaries in their package, which we prefer to snipp= et out so we can build them > ourselves >=20 >=20At present we don't include any semantic information with each patch = or snippet to explain why it > is needed. Many have helpful comments; some don't. >=20 >=20Would it be feasible or desirable to create a set of "reason" symbols= , similar to our "licenses," > and attach a reason (or unknown?) to each snippet and patch? Then we ca= n expose meaningful data to > the end-user about patches & snippets that are available, enabling an i= nformed choice about whether > to apply them when fetching sources. >=20 I=20suspect the use of 'reason' symbols huge and potentially with large g= overnance ramifications (such as aligning definitions or enforcing behavi= our). FWIW, Ive expermimented heavily with symbols extensively for years - with= Qiuy (what I refer to as a recursive-modelling-language). For example, here is a list of tokens that exist within HOME folder direc= tories: https://git.sr.ht/~indieterminacy/2q60mqm_qiuy/tree/main/item/ueu-nen/iwi= _2022-03-09 These tokens appear everywhere and Im using them as elemental forces to f= ascilitate knowledge-management at my end. Of course, Guix is welcome to come up with its own symbols to highlight d= esire and state. It probably needs some deep reflection about needs to be effective. > This could also be useful in our own record-keeping, so that we can tra= ck the usage of patches and > snippets for different reasons. It would be nice, for example, to see a= downward trend in the > number of patches for build systems that won't work at all without them= , either because we improve > the logic in our build steps or because we contribute changes upstream = to make software easier to > build. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Jonathan McHugh indieterminacy@libre.brussels