From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms1.migadu.com with LMTPS id uXuJHzbeJGY2PQEAe85BDQ:P1 (envelope-from ) for ; Sun, 21 Apr 2024 11:36:54 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2.migadu.com with LMTPS id uXuJHzbeJGY2PQEAe85BDQ (envelope-from ) for ; Sun, 21 Apr 2024 11:36:54 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=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" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1713692214; 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:resent-cc:resent-from:resent-sender: resent-message-id:list-id:list-help:list-unsubscribe:list-subscribe: list-post; bh=VZCBz+E6QjjLjXENtWEKrGl1TusROojReD4HKTORsuM=; b=eZ9L3t+fKFWROLsCvJjKITbVcCp6YreFp9CqyfYlGb9UGYoas057j5TW9hdzYDQW50tYzu Zxhn+k543vefUDOgPJ5qJJS09WdgpvEsYd8Shx6l64ntXmkgQgjftsw0m4Lzg052odHznE MK8oxtnkghptS+8Z4w8yTePBCFq/5fhtOyrVB5R3ziYj1489it6O/fdPcsTsvIUUIywX8C TQRyc6gPUOKUw8jXNpjdJOyfJSMqCCpq8w2IDIBRJFRehxVmSHjSFgujO/S5dXTN8X5BoR V2I02L8fALGrOOpTILWThMgbf7flFGhjP/jisemGmFtQNZUXHshjAvLLaog+Mw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=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" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1713692214; a=rsa-sha256; cv=none; b=d7vUFZvuOpKZJ8CpCAhVIt3Zv0GxZ2VTu3L4JZGJNFNtFTs+Xjf3HSVPc/1XJ58wy/s90d e/awgApvwwceeuwFFp6JPhnC9qvML008JVNye1ZmDdlmwJMWfP6n9+gKpMmIClWfZI+ECw p1WOygq/9exJbJkQFgU/60hBP/jSvjG6IovO3ANVTFLyz/pxGifpefADAxa4wMoUa3+d8a X26E8FJWKw5mxE1THzGmp1+5GjSysIEgJ0AmaIXbyKySkpxeUl3NKZO/hnMVYOpb9iiwVG DU8D+xHvFUoduTyRE06s2Im9bC9xMQkiZhxo7CoLwvpHkkmCLpqZp4E60j2ZJg== 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 E51673AD53 for ; Sun, 21 Apr 2024 11:36:53 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ryTcu-0004L1-Lg; Sun, 21 Apr 2024 05:36:48 -0400 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 1ryTct-0004Ks-CT for guix-patches@gnu.org; Sun, 21 Apr 2024 05:36:47 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ryTct-0001xT-4T for guix-patches@gnu.org; Sun, 21 Apr 2024 05:36:47 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ryTd8-0005bo-2f for guix-patches@gnu.org; Sun, 21 Apr 2024 05:37:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#70494] [PATCH 00/23] Groundwork for the Guile guix-daemon Resent-From: Christopher Baines Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 21 Apr 2024 09:37:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 70494 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 70494@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.171369219121334 (code B ref -1); Sun, 21 Apr 2024 09:37:01 +0000 Received: (at submit) by debbugs.gnu.org; 21 Apr 2024 09:36:31 +0000 Received: from localhost ([127.0.0.1]:41701 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ryTcc-0005Xq-2b for submit@debbugs.gnu.org; Sun, 21 Apr 2024 05:36:31 -0400 Received: from lists.gnu.org ([2001:470:142::17]:34738) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ryTcZ-0005WY-50 for submit@debbugs.gnu.org; Sun, 21 Apr 2024 05:36:28 -0400 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 1ryTcE-0004Ho-7W for guix-patches@gnu.org; Sun, 21 Apr 2024 05:36:06 -0400 Received: from mira.cbaines.net ([2a01:7e00:e000:2f8:fd4d:b5c7:13fb:3d27]) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ryTcA-0001ql-JW for guix-patches@gnu.org; Sun, 21 Apr 2024 05:36:05 -0400 Received: from localhost (unknown [212.132.255.10]) by mira.cbaines.net (Postfix) with ESMTPSA id 45CBF27BBE2 for ; Sun, 21 Apr 2024 10:36:00 +0100 (BST) Received: from felis (localhost.lan [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id 95a427f5 for ; Sun, 21 Apr 2024 09:35:59 +0000 (UTC) From: Christopher Baines User-Agent: mu4e 1.12.2; emacs 29.3 Date: Sun, 21 Apr 2024 10:35:57 +0100 Message-ID: <87bk632h36.fsf@cbaines.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Received-SPF: pass client-ip=2a01:7e00:e000:2f8:fd4d:b5c7:13fb:3d27; envelope-from=mail@cbaines.net; helo=mira.cbaines.net X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action 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-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -7.98 X-Migadu-Scanner: mx11.migadu.com X-Spam-Score: -7.98 X-Migadu-Queue-Id: E51673AD53 X-TUID: RHPnMj+DGSl+ --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Here's another series of patches working towards being able to have a Guile guix-daemon. Most importantly I've taken what I think are the key changes from the guile-daemon branch, and tweaked them based on my current thinking for how to structure the code. Additionally, there are some further changes to move functionality (download-nar) out of the substitute script and in to the module. This allows the Guile guix-daemon to work with substitutes directly, rather than spawning the substitute script. Also included are some smaller store changes, exporting some existing things, adding a few new procedures and tweaking the database code. Caleb Ristvedt (5): store: database: Register derivation outputs. gnu: linux-container: Make it more suitable for derivation-building. syscalls: Add missing pieces for derivation build environment. guix: store: environment: New module. store: build-derivations: New module. Christopher Baines (18): store: Export protocol related constants. serialization: Export read-byte-string. store: Add text-output-path and text-output-path-from-hash. store: Add validate-store-name. store: database: Add procedures for querying valid paths. scripts: substitute: Untangle selecting fast vs small compressions. scripts: substitute: Extract script specific output from download-nar. syscalls: Add unshare. scripts: perform-download: Support configuring the %store-prefix. store: Export operation-id. store: database: Log when aborting transactions. store: database: Export transaction helpers. guix: http-client: Add network-error?. http-client: Include EPIPE in network-error?. scripts: substitute: Simplify with-timeout usage. scripts: substitute: Don't enforce cached connections in download-nar. substitutes: Move download-nar from substitutes script to here. substitutes: Add #:keep-alive? keyword argument to download-nar. Makefile.am | 4 +- gnu/build/linux-container.scm | 9 +- guix/build/syscalls.scm | 60 +++- guix/http-client.scm | 23 ++ guix/scripts/perform-download.scm | 6 +- guix/scripts/substitute.scm | 456 +++++++++------------------- guix/serialization.scm | 3 +- guix/store.scm | 56 +++- guix/store/build-derivations.scm | 412 +++++++++++++++++++++++++ guix/store/database.scm | 240 ++++++++++++++- guix/store/environment.scm | 484 ++++++++++++++++++++++++++++++ guix/substitutes.scm | 213 ++++++++++++- 12 files changed, 1620 insertions(+), 346 deletions(-) create mode 100644 guix/store/build-derivations.scm create mode 100644 guix/store/environment.scm base-commit: 92af4ea17f70207fbbf2513f677f3171d4eafd41 =2D-=20 2.41.0 --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAmYk3f1fFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh aW5lcy5uZXQACgkQXiijOwuE9XcNsBAAj+YwmIDaQP+ifNYXo8ese+nmmN7uUgJ/ MYWMFTJGXDM2UgwAJzggJ0pHxOtT40mSy2Rr4vf3lNdSMZQVi3vYIjF6V7sAh2hw pW0cqOX40GFLELZ3E3t8ef53S1MEXGMv7gl9JwVcEk4x5grbtQ9ME9e7eBnvBeeN 09fImHuisR23qkZmp8CizPR6T+/qdMDDNFOamdvHw4GtAEMACa4DRZJewNV5c5fe 8dSpwS7xADcgM4Rav0AzaQXaDFNpXIXeNkKYnP0OkeATwoq79B4gqSHUxzaIiWPo UDQ3g0SuTcI+kFby0nfrIWYzWb94H1/mexQQec1Evbm73xik49twl8EobrHf22OQ OY//AYqZDfM3tJMtuV+lgSwSawY5470nRoFU6OzAyyw6sVQXDACbsMPfbiY+QGX5 Cjtd21V0YQX1NFiD7tgNRRL1DtifOp4XeDWXvcdpn3o+CU7yPocySmg2/vNfBw+d Lcs7fQz5mvJOvs4/MkqotRwa+aQ8GIMNtvUU3/Q5XBgJwc7viv6xSQDswTpScogu 7tJO1sbLDxZVL6z5KL7RiF/0rfqv/rXfhLRTXbJGlTFLFvkgCFAwhlkYlYEA3nRp gYNo5aq9nf5qtxnipoTLEjt9pBAVL3t54rB9m3miiqC9nZVCbBxkLrW2s+AMz3Sa D0Gd2u7RgvI= =u095 -----END PGP SIGNATURE----- --=-=-=--