GNU logs - #78378, boring messages


Message sent to andrew@HIDDEN, hako@HIDDEN, janneke@HIDDEN, ludo@HIDDEN, tanguy@HIDDEN, guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#78378] [PATCH 0/2] home: services: Build "files" union allowing dangling symlinks.
Resent-From: Sergey Trofimov <sarg@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: andrew@HIDDEN, hako@HIDDEN, janneke@HIDDEN, ludo@HIDDEN, tanguy@HIDDEN, guix-patches@HIDDEN
Resent-Date: Sun, 11 May 2025 16:02:02 +0000
Resent-Message-ID: <handler.78378.B.174697927317900 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 78378
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 78378 <at> debbugs.gnu.org
Cc: Sergey Trofimov <sarg@HIDDEN>, Andrew Tropin <andrew@HIDDEN>, Hilton Chain <hako@HIDDEN>, Janneke Nieuwenhuizen <janneke@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Tanguy Le Carrour <tanguy@HIDDEN>
X-Debbugs-Original-To: guix-patches@HIDDEN
X-Debbugs-Original-Xcc: Andrew Tropin <andrew@HIDDEN>, Hilton Chain <hako@HIDDEN>, Janneke Nieuwenhuizen <janneke@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Tanguy Le Carrour <tanguy@HIDDEN>
Received: via spool by submit <at> debbugs.gnu.org id=B.174697927317900
          (code B ref -1); Sun, 11 May 2025 16:02:02 +0000
Received: (at submit) by debbugs.gnu.org; 11 May 2025 16:01:13 +0000
Received: from localhost ([127.0.0.1]:38389 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1uE973-0004ed-2f
	for submit <at> debbugs.gnu.org; Sun, 11 May 2025 12:01:13 -0400
Received: from lists.gnu.org ([2001:470:142::17]:45124)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <sarg@HIDDEN>) id 1uE96z-0004e4-Fh
 for submit <at> debbugs.gnu.org; Sun, 11 May 2025 12:01:11 -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 <sarg@HIDDEN>) id 1uE96p-0006PA-K8
 for guix-patches@HIDDEN; Sun, 11 May 2025 12:01:00 -0400
Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <sarg@HIDDEN>) id 1uE96n-0006RK-Pj
 for guix-patches@HIDDEN; Sun, 11 May 2025 12:00:59 -0400
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3a1f5d2d91eso1778945f8f.1
 for <guix-patches@HIDDEN>; Sun, 11 May 2025 09:00:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=sarg.org.ru; s=google; t=1746979254; x=1747584054; darn=gnu.org;
 h=content-transfer-encoding:mime-version:message-id:date:subject:cc
 :to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=8qgO2G0X0NesHalB84kPF9tpCB5tx4Uf2fYgITSpWDM=;
 b=PBDISLq8kxF9QWMwWFr94hhBv/8vEVj3Tj61vDQrG5WTSXpWvuoXfABDJ0Vinvi4PY
 +gB+Fd1BUZdxmZD/ijm9MGpG3d0Gzvp1LhpFYKEbGdvjWVFdbeMwMvRmcqXKHf7qlMNz
 ao66y2o5jI8+GceUEYHbQDFW4NLkawEQiGYeCNrN7fuhzPfuDpAdbIyEdlsWO/C4Qd6R
 3y8PAs3LJ1KEBLgwb5aX6Eo8+mnpkyXpVSQOCj64a8+Vzi0XHallSF/IWMSUtbaQtw6p
 GK8W2Z1H+T6aCG1Gi6wdNeD3I2ixNjYRfJF+7kzxlGY16/ZqvyiRQ5alTjqoXyS4tC6c
 D5rw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1746979254; x=1747584054;
 h=content-transfer-encoding:mime-version:message-id:date:subject:cc
 :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=8qgO2G0X0NesHalB84kPF9tpCB5tx4Uf2fYgITSpWDM=;
 b=RcmxRu1gnrYg8T2NauxyE+0YGqwTwiw3M33sX83AFRcc1JXUUFX21wvaLHl6cyBInL
 Vt7C7pyDmvf08XUpq9sD7YEDxJzCqETn4/T/hAWAhBVB52MvkzaaIS29dIFmCgw6P+r2
 8745Ksnw1WS8aEKdykPv/JSEogr9WgPr+GQraEaiLYjFScnz9bdFoTKkr+La7/XSwGCa
 kQ8MkVouhnA2PXMYiZSux1cSDgwPXiZ2FXmXzZGLOSDuB+f0MOG5WGD5E7Pk7vLTslka
 oxuBo4HfY21yVjVdmUILMll3wcZtIPCexENs30V6RFP9CLlO8x5/W2Ip4QluZyniIGx0
 0bWQ==
X-Gm-Message-State: AOJu0YxqKPUprFB5RJFnD2xcC197Bmk7vs2i52EYEbzHVx4y6kcWY5sy
 T9XB91i3OjVy8yi7lRJhGUL7YzOCVisf90i8UgUJjdThi/lAH1EvSo4rggbluxka/nldvtJXLUp
 tpQo=
X-Gm-Gg: ASbGncusTxYbjjsgVWJ6FHYCSv94MecS9cgvRkoVFwmh5xgYhWRqg3eNr1t+0znR8Cy
 9PE85eoUhbRmXlQuMSWn6nDNsKg0795ab0sMRi07VeaYNU/+weuFn7ZlsbJC4fPKTMwFJs++OTl
 mBZh3edp1EfPRqnKnqNYrXfr5u0s/SG5cSf7ahHsU5wJPupnl3uidkyMwaQn7tWHbuIgrGQ7zBl
 HqmCRa6hn6OwjVk57AOiEMHQ+JOfFjpr7G1495UogZGxXCRHooI5j+lyNgbgyppTAapLB44aQ3j
 zwzrFoCfkD4xi1hV+936R22tXvENRh2jc7w50XVTqwOzxsOM
X-Google-Smtp-Source: AGHT+IEFagRRqYepS9ZTuq6+50PYKI6uRIocKtz4BKPhnVjd3HwIf0/iVLHbbHp4pbktbp1Xs0f1xg==
X-Received: by 2002:a05:6000:1a86:b0:3a2:1d3:defb with SMTP id
 ffacd0b85a97d-3a201d3e04emr2822622f8f.36.1746979254373; 
 Sun, 11 May 2025 09:00:54 -0700 (PDT)
Received: from localhost ([2a02:2454:a095:5600:a64e:31ff:fe38:fd6c])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a1f57de0ddsm9471542f8f.7.2025.05.11.09.00.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 11 May 2025 09:00:53 -0700 (PDT)
From: Sergey Trofimov <sarg@HIDDEN>
Date: Sun, 11 May 2025 18:00:50 +0200
Message-ID: <cover.1746978699.git.sarg@HIDDEN>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Received-SPF: pass client-ip=2a00:1450:4864:20::436;
 envelope-from=sarg@HIDDEN; helo=mail-wr1-x436.google.com
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,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.0 (+)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)

This patch enables guix home users to create arbitrary symlinks in their home
environment. I.e. a user having "/storage" directory (probably residing on
another disk partition) could symlink e.g. "~/.mail" from
"/storage/data/mail". 

Sergey Trofimov (2):
  gexp: Add symlink-to procedure.
  home: services: Build "files" union allowing dangling symlinks.

 doc/guix.texi         | 11 +++++++++++
 gnu/home/services.scm | 16 +++++++++++++++-
 guix/gexp.scm         |  5 +++++
 tests/guix-home.sh    |  8 +++++++-
 4 files changed, 38 insertions(+), 2 deletions(-)


base-commit: f6363db18636172f959e2709982bbe09b411c3d8
-- 
2.49.0





Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Sergey Trofimov <sarg@HIDDEN>
Subject: bug#78378: Acknowledgement ([PATCH 0/2] home: services: Build
 "files" union allowing dangling symlinks.)
Message-ID: <handler.78378.B.174697927317900.ack <at> debbugs.gnu.org>
References: <cover.1746978699.git.sarg@HIDDEN>
X-Gnu-PR-Message: ack 78378
X-Gnu-PR-Package: guix-patches
X-Gnu-PR-Keywords: patch
Reply-To: 78378 <at> debbugs.gnu.org
Date: Sun, 11 May 2025 16:02:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

As you requested using X-Debbugs-CC, your message was also forwarded to
  Andrew Tropin <andrew@HIDDEN>, Hilton Chain <hako@HIDDEN>, Jann=
eke Nieuwenhuizen <janneke@HIDDEN>, Ludovic Court=C3=A8s <ludo@HIDDEN>, T=
anguy Le Carrour <tanguy@HIDDEN>
(after having been given a bug report number, if it did not have one).

Your message has been sent to the package maintainer(s):
 guix-patches@HIDDEN

If you wish to submit further information on this problem, please
send it to 78378 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
78378: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D78378
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to guix@HIDDEN, gabriel@HIDDEN, dev@HIDDEN, ludo@HIDDEN, othacehe@HIDDEN, maxim.cournoyer@HIDDEN, zimon.toutoune@HIDDEN, me@HIDDEN, guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#78378] [PATCH 1/2] gexp: Add symlink-to procedure.
Resent-From: Sergey Trofimov <sarg@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix@HIDDEN, gabriel@HIDDEN, dev@HIDDEN, ludo@HIDDEN, othacehe@HIDDEN, maxim.cournoyer@HIDDEN, zimon.toutoune@HIDDEN, me@HIDDEN, guix-patches@HIDDEN
Resent-Date: Sun, 11 May 2025 16:10:02 +0000
Resent-Message-ID: <handler.78378.B78378.174697975220748 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 78378
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 78378 <at> debbugs.gnu.org
Cc: Sergey Trofimov <sarg@HIDDEN>, Christopher Baines <guix@HIDDEN>, Gabriel Wicki <gabriel@HIDDEN>, Josselin Poiret <dev@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Mathieu Othacehe <othacehe@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>, Simon Tournier <zimon.toutoune@HIDDEN>, Tobias Geerinckx-Rice <me@HIDDEN>
X-Debbugs-Original-Xcc: Christopher Baines <guix@HIDDEN>, Gabriel Wicki <gabriel@HIDDEN>, Josselin Poiret <dev@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Mathieu Othacehe <othacehe@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>, Simon Tournier <zimon.toutoune@HIDDEN>, Tobias Geerinckx-Rice <me@HIDDEN>
Received: via spool by 78378-submit <at> debbugs.gnu.org id=B78378.174697975220748
          (code B ref 78378); Sun, 11 May 2025 16:10:02 +0000
Received: (at 78378) by debbugs.gnu.org; 11 May 2025 16:09:12 +0000
Received: from localhost ([127.0.0.1]:38553 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1uE9El-0005OP-98
	for submit <at> debbugs.gnu.org; Sun, 11 May 2025 12:09:12 -0400
Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]:48525)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <sarg@HIDDEN>) id 1uE9Eg-0005NZ-QK
 for 78378 <at> debbugs.gnu.org; Sun, 11 May 2025 12:09:08 -0400
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3a1d8c09674so1641534f8f.1
 for <78378 <at> debbugs.gnu.org>; Sun, 11 May 2025 09:09:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=sarg.org.ru; s=google; t=1746979740; x=1747584540; darn=debbugs.gnu.org;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=Ax91e9t/AlSRpm4kQJtUIFhEfbclQC5FYEIaAlzqJT4=;
 b=PNEW0NjIjmiQDhaLEuy8w+Uy9NsC0ls2KYrpDoYZVxTQU+KDLpsuVjQ3k7RMH+elLt
 8jXEIWrfh4RL4gXq2qIeoYbr+BHU5qySC33KGoSXwlOlE336Gbh7AmzHrpan5ODjsOxg
 ocp6zL54sfttROP0o5kWiUOdT0PZZ4ewnmlM2ik+XfYlk45cfzEQ4Wp9gawZDGIH/I5B
 KYL8eBedku4gCLEIi8OCdkIPuzcUua9bN2RWZURh4E4l6VX6oDqXnTViz7AV+WTa8/U5
 AqeoKTwsLUjx/PQa9FX5ZyDBnRYfiRpfIxMns7m5ECdvSBkjm8tMWsf0xkjfA5TmQ5My
 ndVw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1746979740; x=1747584540;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=Ax91e9t/AlSRpm4kQJtUIFhEfbclQC5FYEIaAlzqJT4=;
 b=PWKvQgdE7SIPENDMMMzmfqMAM/Q3J3gzXH1hwP3YgYeBuEq50DKip4/FmLLg9ZVVNV
 BY61ikTzAzPJSPKL6HM3CM1UZF5VkETVV6pCr+gaq6J0XKNMaRhE2ips53+ovPS5/G7a
 5WsQXiYZj8KgzYFlO7zOQKBXrJUeMYKsRYlUxQ0Ir8EGQRrWqyGNruEhx0MQPPwReRjT
 bXLMA+zpPaxGJEeJeaBJ86ug1I8M7HsTTwHkKNlbcfYYsbtHYKmEu8H6sO/BUg/vv794
 YJsYukeaYvsN3PXtivtyTvBPPTxfyBryJZ94pBj31q3XW2RPRE1gQcAbnXoxypJ69Ozp
 NrsQ==
X-Gm-Message-State: AOJu0YwW31VIaJQncDH6nHD22mU/AKwhHzeg5pijfbaKJN4UnfdoWi3D
 5lx3D+i+S3NS+3RFs/CY1f/jUdHXW01BzYG1IrlDcZkZYw/UwEkL4y6pYuOI6whDEvKjQmQONmM
 OOmF0Vg==
X-Gm-Gg: ASbGncuPwP9FUbGjek9Wrmf0xJxVgzm9994lJTBrqNolgG1VAPneu7AEEuOpFjr91MO
 IE077ha+MApmFwSuIV2K1T2VBoJaPLCw0l+xC9G6OiB7q58GO6kVWEE4ndQFD29pW49pgek4E9+
 Mb5hWxh6rP2C2pNGiT7+y3zStXZbRxOnRronZD/IQ9qRLWb0Z3Rbb8FEYxJh7FHF10oXAzoCWX8
 RGigkr7u0DWurx24Z214mIdlv3dr1oPJJfnWZZvYoGUDUD6Oo/4IMEeIBTV8W0SL7eMikZV5g/W
 dL+OzzXnsxCFFDhbzN5ST8vt2Lqg+ET3CdU7YgI5XE/BlS5N
X-Google-Smtp-Source: AGHT+IGiKkAKdxjdRVasiBL2x+RmopYZceJWT8AQHYlPc0kixeFtXAgl5kg5cFvTJLlbyFxbgSECZQ==
X-Received: by 2002:a05:6000:4287:b0:3a0:b635:ea40 with SMTP id
 ffacd0b85a97d-3a1f64a3e3dmr9042241f8f.55.1746979740134; 
 Sun, 11 May 2025 09:09:00 -0700 (PDT)
Received: from localhost ([2a02:2454:a095:5600:a64e:31ff:fe38:fd6c])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-442cd32f194sm140218445e9.10.2025.05.11.09.08.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 11 May 2025 09:08:59 -0700 (PDT)
From: Sergey Trofimov <sarg@HIDDEN>
Date: Sun, 11 May 2025 18:08:02 +0200
Message-ID: <043c83e23cd42da9c61d0e4f5bf5fb7299332a49.1746978699.git.sarg@HIDDEN>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1746978699.git.sarg@HIDDEN>
References: <cover.1746978699.git.sarg@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* guix/gexp.scm (symlink-to): New procedure.
* doc/guix.texi (G-Expressions): Document it.

Change-Id: I7c1ba3a29a4e5350cb4f196185b7171c4750b6b8
---
 doc/guix.texi | 11 +++++++++++
 guix/gexp.scm |  5 +++++
 2 files changed, 16 insertions(+)

diff --git a/doc/guix.texi b/doc/guix.texi
index cbc4dd0fc9..ebc8a5e5d3 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -12689,6 +12689,17 @@ G-Expressions
 This yields an @code{etc} directory containing these two files.
 @end deffn
 
+@deffn {Procedure} symlink-to target
+Return a @code{<computed-file>} that is a symbolic link to target.
+Note, that the target does not need to exist at the build time.  One of
+uses is to put arbitrary symlinks into user's home:
+
+@lisp
+(service home-files-service-type
+  `(("Sync" ,(symlink-to "/storage/Sync"))))
+@end lisp
+@end deffn
+
 @deffn {Procedure} directory-union name things
 Return a directory that is the union of @var{things}, where @var{things} is a list of
 file-like objects denoting directories.  For example:
diff --git a/guix/gexp.scm b/guix/gexp.scm
index 8dd746eee0..ef83c671ec 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -119,6 +119,7 @@ (define-module (guix gexp)
             file-union
             directory-union
             references-file
+            symlink-to
 
             imported-files
             imported-modules
@@ -2181,6 +2182,10 @@ (define* (file-union name files #:key guile)
                             files)))))
                  #:guile guile))
 
+(define (symlink-to target)
+  "Return an object that is a symlink to TARGET."
+  (computed-file "link" (gexp (symlink (ungexp target) (ungexp output)))))
+
 (define* (directory-union name things
                           #:key (copy? #f) (quiet? #f)
                           (resolve-collision 'resolve-collision/default))
-- 
2.49.0





Message sent to andrew@HIDDEN, hako@HIDDEN, janneke@HIDDEN, ludo@HIDDEN, tanguy@HIDDEN, guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#78378] [PATCH 2/2] home: services: Build "files" union allowing dangling symlinks.
Resent-From: Sergey Trofimov <sarg@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: andrew@HIDDEN, hako@HIDDEN, janneke@HIDDEN, ludo@HIDDEN, tanguy@HIDDEN, guix-patches@HIDDEN
Resent-Date: Sun, 11 May 2025 16:10:02 +0000
Resent-Message-ID: <handler.78378.B78378.174697975320764 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 78378
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 78378 <at> debbugs.gnu.org
Cc: Sergey Trofimov <sarg@HIDDEN>, Andrew Tropin <andrew@HIDDEN>, Hilton Chain <hako@HIDDEN>, Janneke Nieuwenhuizen <janneke@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Tanguy Le Carrour <tanguy@HIDDEN>
X-Debbugs-Original-Xcc: Andrew Tropin <andrew@HIDDEN>, Hilton Chain <hako@HIDDEN>, Janneke Nieuwenhuizen <janneke@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Tanguy Le Carrour <tanguy@HIDDEN>
Received: via spool by 78378-submit <at> debbugs.gnu.org id=B78378.174697975320764
          (code B ref 78378); Sun, 11 May 2025 16:10:02 +0000
Received: (at 78378) by debbugs.gnu.org; 11 May 2025 16:09:13 +0000
Received: from localhost ([127.0.0.1]:38555 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1uE9Em-0005Oa-67
	for submit <at> debbugs.gnu.org; Sun, 11 May 2025 12:09:13 -0400
Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]:51655)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <sarg@HIDDEN>) id 1uE9Ei-0005Nu-Ad
 for 78378 <at> debbugs.gnu.org; Sun, 11 May 2025 12:09:09 -0400
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43d04ea9d9aso19087125e9.3
 for <78378 <at> debbugs.gnu.org>; Sun, 11 May 2025 09:09:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=sarg.org.ru; s=google; t=1746979742; x=1747584542; darn=debbugs.gnu.org;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=mdskQKIIoSminOuv9j+kfMd2WgDop1LivqG6bQ6o550=;
 b=SQrkKsyWzFoy4i1DyGcQGHybUxEYPIfT2JUtMpBvZBop5eJPUMaT+h4u9bkSHCsiIN
 ZoihmRbYQju0VOZkfA2i3f622IoQ6deg/SQd0nXaDiwfKJnx3EPMOyJhb+m/CtZ0C4+N
 B59zzQHjm8UJC82UzW3QMc9OaoZluRZxK0HDsbQ+ZQl0pDhIqQHhVG+Vcbfxb81ibuYf
 V/rT0mQ4BWJC1oK1uMTYhmP7uA51/DU1NXhVVgPngLGu3/VXrUj2G+8syxfzfd2RZzXB
 SEt19jvwtcSk+qFDAWZEZlxmFe7NOLoAPdO3R+CoVj7xHhdhVRsQrhbavgH5p1L6ERvl
 p9dQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1746979742; x=1747584542;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=mdskQKIIoSminOuv9j+kfMd2WgDop1LivqG6bQ6o550=;
 b=OvfEbVeRUhb9yUKuE4eUEGNdnG5PK0CvILJeJvxAWwXdAq4SFtCegVBAowWkNbkLdW
 XrEqw1myhmzmbiIiWXDFWs0oCHsOpouh937K4J5rhYTsQyXq/bBm2EZQHGq9teci4HRi
 dsr3yDMnsEYQy+1OCqz5vDVVrN/qyhZaQNU9gzOfn6S9llB7ow1DgYuY1sDPrKTp/cSk
 EoOyD7zd4e/u/m/6YUb2tLnXuftbid/7BlaAvIqCV4exj9VEfBS7yYhG1+wA7JOTOhMm
 zryhQh4BSYbdYM6laPMe4L5wT7h3mTeJaRU6enqBDWTwBlREw1cQbIetC11cS7qzIRQf
 onZw==
X-Gm-Message-State: AOJu0YwqcjdQs6rP34bBucHNvBk8DL/Ddgnr3WtbQoV2Ll/FigslFMuu
 P/zvs/OiAkQASv0OZx1FgZ3STd80Uq4FdoY1IjfI4khzVuhJtzYo2pOgvCMytZlENCILNVkt8XI
 sBlpVIQ==
X-Gm-Gg: ASbGncth+q4svgGCTbOusmNR5nmGDE93EHtrtqUTH7aXpyRBijWThdFrh7EbJgQZBhX
 P2hWaBAtdTjErASpzM84vaXPIBsvEcJRS2J//YqCQXINoGHDqObfl4zV3nJBygn3jJBxquqdtSi
 XP5C39BZuORNAszGuP/Iyor6Nfs2D8SjNlmdCPWbleR1nzW/Z4N+rL4QofM+E+pulhD1gNzHrV2
 U0i0DDq5+oPDhbtcILeHl8tQgTrFExjmCRkdXzaIWoVuzlqtc1NkwgLMWG+6gwVLqzbIVaZN1Do
 73AldYWdIiiK+EtT1GyzO3vu58aBKEEz7SmG5yUMjCI6YnDT
X-Google-Smtp-Source: AGHT+IGa688OqUTDDFypz+B7z04KPq6idA5Gj7aPH6hmUXC6xmgzRQ5DTkWQHrZgmx1wftOZlsaPWQ==
X-Received: by 2002:a05:600c:4e45:b0:43d:46de:b0eb with SMTP id
 5b1f17b1804b1-442d6d44814mr90075195e9.12.1746979741757; 
 Sun, 11 May 2025 09:09:01 -0700 (PDT)
Received: from localhost ([2a02:2454:a095:5600:a64e:31ff:fe38:fd6c])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-442d687bdc0sm95318115e9.39.2025.05.11.09.09.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 11 May 2025 09:09:01 -0700 (PDT)
From: Sergey Trofimov <sarg@HIDDEN>
Date: Sun, 11 May 2025 18:08:03 +0200
Message-ID: <f959dc4db01cc2aec47affa7e9d389368217c7f8.1746979727.git.sarg@HIDDEN>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1746979727.git.sarg@HIDDEN>
References: <cover.1746979727.git.sarg@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/home/services.scm (files->files-directory): Build file union
without checking for existence of included items.

* tests/guix-home.sh: Verify symlinking files out of store works.

Change-Id: I94054003f4a6be944252ce7a397cf56f0b979554
---
 gnu/home/services.scm | 16 +++++++++++++++-
 tests/guix-home.sh    |  8 +++++++-
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/gnu/home/services.scm b/gnu/home/services.scm
index 2342dc5e07..55f9365922 100644
--- a/gnu/home/services.scm
+++ b/gnu/home/services.scm
@@ -343,7 +343,21 @@ (define (files->files-directory files)
   ;; leading to a build failure of "files.drv".
   (assert-no-duplicates files)
 
-  (file-union "files" files))
+  ;; Compute the file-union allowing dangling symlinks
+  ;; This enables creating symlinks to locations out of store
+  (computed-file
+   "files"
+   (with-imported-modules '((guix build utils))
+     #~(begin
+         (use-modules (guix build utils)
+                      (ice-9 match))
+         (mkdir #$output)
+         (chdir #$output)
+         (for-each (match-lambda
+                     ((target source)
+                      (mkdir-p (dirname target))
+                      (symlink source target)))
+                   '#$files)))))
 
 ;; Used by symlink-manager
 (define home-files-directory "files")
diff --git a/tests/guix-home.sh b/tests/guix-home.sh
index dbfe7dbd48..b8d90196f1 100644
--- a/tests/guix-home.sh
+++ b/tests/guix-home.sh
@@ -73,7 +73,9 @@ trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' EXIT
                    (list `(".config/test.conf"
                            ,(plain-file
                              "tmp-file.txt"
-                             "the content of ~/.config/test.conf"))))
+                             "the content of ~/.config/test.conf"))
+
+                         `("symlink" ,(symlink-to "<test_directory>"))))
 
    (service home-bash-service-type
             (home-bash-configuration
@@ -104,6 +106,7 @@ trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' EXIT
                        "# the content of bashrc-test-config.sh"))))))))
 EOF
 
+    sed -i "s,<test_directory>,$test_directory," home.scm
     echo -n "# dot-bashrc test file for guix home" > "dot-bashrc"
 
     # Check whether the graph commands work as expected.
@@ -126,6 +129,7 @@ EOF
 	guix home container home.scm -- cat '~/.config/test.conf' | \
 	    grep "the content of"
 	guix home container home.scm -- test -h '~/.bashrc'
+	guix home container home.scm -- test -h '~/symlink'
 	test "$(guix home container home.scm -- id -u)" = 1000
 	guix home container home.scm -- test -f '$HOME/sample/home.scm' && false
 	guix home container home.scm --expose="$PWD=$HOME/sample" -- \
@@ -153,6 +157,8 @@ EOF
     test -d "${HOME}/.guix-home"
     test -h "${HOME}/.bash_profile"
     test -h "${HOME}/.bashrc"
+    test -h "${HOME}/symlink"
+    test "$(readlink -f $HOME/symlink)" == "$test_directory"
     grep 'alias run="guix shell"' "$HOME/.bashrc"
     grep "alias path='echo \$PATH'" "$HOME/.bashrc"
     test "$(tail -n 2 "${HOME}/.bashrc")" == "\
-- 
2.49.0





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#78378] [PATCH 1/2] gexp: Add symlink-to procedure.
Resent-From: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Mon, 12 May 2025 07:50:02 +0000
Resent-Message-ID: <handler.78378.B78378.17470361611015 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 78378
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Sergey Trofimov <sarg@HIDDEN>
Cc: Josselin Poiret <dev@HIDDEN>, Tobias Geerinckx-Rice <me@HIDDEN>, Simon Tournier <zimon.toutoune@HIDDEN>, Mathieu Othacehe <othacehe@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Gabriel Wicki <gabriel@HIDDEN>, 78378 <at> debbugs.gnu.org, Christopher Baines <guix@HIDDEN>
Received: via spool by 78378-submit <at> debbugs.gnu.org id=B78378.17470361611015
          (code B ref 78378); Mon, 12 May 2025 07:50:02 +0000
Received: (at 78378) by debbugs.gnu.org; 12 May 2025 07:49:21 +0000
Received: from localhost ([127.0.0.1]:49735 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1uENub-0000GG-Al
	for submit <at> debbugs.gnu.org; Mon, 12 May 2025 03:49:21 -0400
Received: from mail-pf1-x42e.google.com ([2607:f8b0:4864:20::42e]:46184)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <maxim.cournoyer@HIDDEN>)
 id 1uENuY-0000Fu-JR
 for 78378 <at> debbugs.gnu.org; Mon, 12 May 2025 03:49:19 -0400
Received: by mail-pf1-x42e.google.com with SMTP id
 d2e1a72fcca58-739b3fe7ce8so3643116b3a.0
 for <78378 <at> debbugs.gnu.org>; Mon, 12 May 2025 00:49:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1747036152; x=1747640952; darn=debbugs.gnu.org;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=NM5jAhpmBG+OggdSqRJZhaa+xX6F0Qaia9zBKlgVjQs=;
 b=DWXzbTv+6CbKRSr4Catj2JGwKAVo/LWogruVsp5ZTR6LeQoA+h6s7U8BZQ9ujvXVs6
 loKkRRP+IB2DJUO01Z3gSzuXeLWI5aWmv3DcFyZQtmupA/Ynh+a3x9U+IhDOeynzH+c5
 +XF9uHOtZHK1ye2ZdDHetmlBw8utwO9DQL1QJ+kGj1ZEbFxD6lDEi0s/ayIfk54K9V0G
 tMJSbYNC0vRa41TKX/gDtimmghCDi86Wl8fooDCq1HfClUeg7H4Ar1XAzsAasQG68Svh
 3ITOKe+vF+PZBkcu8h5kzGJz61kMn8gFwHa7vNaqdx/ao52wBAJ5yP4l2ERZUMeE5rZK
 ZEEQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1747036152; x=1747640952;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date
 :message-id:reply-to;
 bh=NM5jAhpmBG+OggdSqRJZhaa+xX6F0Qaia9zBKlgVjQs=;
 b=uWcp5NeY3hMUpzmt4V6t9AiWB1bdwCqFZWKwlPAYttHZRMi3+VLLs470J+tBKUU4wp
 5zPnQcXHYL9e8idzv8EH+1tUoZ2U/+Ma6HKfrQboGVtLR9uWyskGlaA0Y2chmvMB/10v
 Dqilv9Bi/SIwIq+iYrvD11/YqGb1h2Q7mxmhr80hIbZp2aGcGGziwvgRS50/KkMyD0VV
 4ksJfktYaRBDlxrI/4myRFSBJt/5xyHPAd6kJfJH5qKTxgsPzGZW+VYUnlu5q0p391mu
 x09MXbmYBhacojiSd4fXRqJ3PqOGM8RL/XMmD8IYkRefcxK9gics/VGhETxE2wvnoq+Z
 wYFg==
X-Gm-Message-State: AOJu0Yx4eDKNT1SeGt3IpVBO+VJutl8q21sAy8E8jXNBFoWn6FgKhYOl
 zHGyEMnHoUZFRHC9hP7mYNJrchNh6YdZf+lT3lNhR42gJ7Uke/57
X-Gm-Gg: ASbGncu2MkQm1ws6WETGIqyHuep04Wlp9/8yVbWjsoAV2+XMT+W4iKVww17B3Xhde89
 PWifDL85uUMgAJwKXIYVyayr4uel0tLCgKrpKtK7tlm8vNAmYbUDFR5pDBmL8o7U/8f/O0Ecrz+
 O6k1os+/jZa6EVAQIkNEh1URTEEgIPZtymDJDguvqfx/ClGiVoZG37RxJzlnkQHGNINez6rpki+
 kmPBt5AF4bxodUR40chTAUMcqfzJex8G0qXxV8QrT5pm4mmwGl6S7ebXHZQwbFX/d9h11tf7jmI
 gU6Cwe0g1QtsOoJ55YohAqhoXLg1M/OkAco3mMebbviD1TgGQA==
X-Google-Smtp-Source: AGHT+IFfFRZmVBq9xWy4JT7AvERzTC37zLv0W5fxz0ehTW0rgq6czK0vyH27QyvOqPlRgMDbrrAOmg==
X-Received: by 2002:a17:90b:1a88:b0:2ff:5a9d:937f with SMTP id
 98e67ed59e1d1-30c3d62db46mr19051174a91.24.1747036152169; 
 Mon, 12 May 2025 00:49:12 -0700 (PDT)
Received: from terra ([2405:6586:be0:0:83c8:d31d:2cec:f542])
 by smtp.gmail.com with ESMTPSA id
 41be03b00d2f7-b234ad4205dsm4982123a12.44.2025.05.12.00.49.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 12 May 2025 00:49:11 -0700 (PDT)
From: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
In-Reply-To: <043c83e23cd42da9c61d0e4f5bf5fb7299332a49.1746978699.git.sarg@HIDDEN>
 (Sergey Trofimov's message of "Sun, 11 May 2025 18:08:02 +0200")
References: <cover.1746978699.git.sarg@HIDDEN>
 <043c83e23cd42da9c61d0e4f5bf5fb7299332a49.1746978699.git.sarg@HIDDEN>
Date: Mon, 12 May 2025 16:49:08 +0900
Message-ID: <87o6vyqnez.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Sergey Trofimov <sarg@HIDDEN> writes:

> * guix/gexp.scm (symlink-to): New procedure.
> * doc/guix.texi (G-Expressions): Document it.
>
> Change-Id: I7c1ba3a29a4e5350cb4f196185b7171c4750b6b8

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@HIDDEN>

-- 
Thanks,
Maxim




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#78378] [PATCH 2/2] home: services: Build "files" union allowing dangling symlinks.
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 18 May 2025 21:04:03 +0000
Resent-Message-ID: <handler.78378.B78378.174760221529191 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 78378
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Sergey Trofimov <sarg@HIDDEN>
Cc: Hilton Chain <hako@HIDDEN>, Janneke Nieuwenhuizen <janneke@HIDDEN>, Tanguy Le Carrour <tanguy@HIDDEN>, 78378 <at> debbugs.gnu.org, Andrew Tropin <andrew@HIDDEN>
Received: via spool by 78378-submit <at> debbugs.gnu.org id=B78378.174760221529191
          (code B ref 78378); Sun, 18 May 2025 21:04:03 +0000
Received: (at 78378) by debbugs.gnu.org; 18 May 2025 21:03:35 +0000
Received: from localhost ([127.0.0.1]:60967 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1uGlAU-0007al-Hk
	for submit <at> debbugs.gnu.org; Sun, 18 May 2025 17:03:34 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:51774)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1uGlAD-0007Yy-Nc
 for 78378 <at> debbugs.gnu.org; Sun, 18 May 2025 17:03:18 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ludo@HIDDEN>)
 id 1uGlA6-0002Jl-44; Sun, 18 May 2025 17:03:10 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To:
 From; bh=sTOdH4RywLY1quPG8dXyBGoS8Qd1+RC5ui2AIXkA1hQ=; b=rzhXhkkIboijnmsXz2HY
 WFREPDnf3fB7CCuwuHAvWq5Vg4ga6ADE5kkayPrg31WXQGv6+uvr+tA8+lpzznRFavOaLevx0jG65
 L+2rXqZeMDtjimvRepFFO2W3DMGXjB4kUTfEcD5JJ4DI7Uiu9yfiV2c+GGJmuZ3mjEMyP87ZpOEWM
 uCgSyAyX18hpyyZv7Xa2oEGExJ9uHBq/o/WLJeTfr+xKg2uk/xD6RaUQjJ9VqwZ/vHtbBRWLqypvF
 YcZ2uEvxv386dT19xfoXtVK3IAXR3NNNUTnVAPJq0DDeF9wNi2T8IhYPs4fSbictBnzsW2Yj8A+X0
 WMfm4TbzpoO2yw==;
From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
In-Reply-To: <f959dc4db01cc2aec47affa7e9d389368217c7f8.1746979727.git.sarg@HIDDEN>
 (Sergey Trofimov's message of "Sun, 11 May 2025 18:08:03 +0200")
References: <cover.1746979727.git.sarg@HIDDEN>
 <f959dc4db01cc2aec47affa7e9d389368217c7f8.1746979727.git.sarg@HIDDEN>
Date: Sun, 18 May 2025 22:28:30 +0200
Message-ID: <87h61hll3l.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Hi Sergey,

Sergey Trofimov <sarg@HIDDEN> writes:

> * gnu/home/services.scm (files->files-directory): Build file union
> without checking for existence of included items.
>
> * tests/guix-home.sh: Verify symlinking files out of store works.
>
> Change-Id: I94054003f4a6be944252ce7a397cf56f0b979554

[...]

> @@ -343,7 +343,21 @@ (define (files->files-directory files)
>    ;; leading to a build failure of "files.drv".
>    (assert-no-duplicates files)
>=20=20
> -  (file-union "files" files))
> +  ;; Compute the file-union allowing dangling symlinks
> +  ;; This enables creating symlinks to locations out of store
> +  (computed-file
> +   "files"
> +   (with-imported-modules '((guix build utils))
> +     #~(begin
> +         (use-modules (guix build utils)
> +                      (ice-9 match))
> +         (mkdir #$output)
> +         (chdir #$output)
> +         (for-each (match-lambda
> +                     ((target source)
> +                      (mkdir-p (dirname target))
> +                      (symlink source target)))
> +                   '#$files)))))

Instead of more or less duplicating =E2=80=98file-union=E2=80=99, how about=
 adding a
#:dangling-symlinks? argument to =E2=80=98file-union=E2=80=99 that would de=
fault to #f?

When set to #t, the =E2=80=98stat=E2=80=99 call would not be emitted.

That would reduce code duplication and make the intent clearer IMO.

Ludo=E2=80=99.





Last modified: Sun, 18 May 2025 21:15:01 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.