From unknown Sat Jun 21 10:39:14 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#36668 <36668@debbugs.gnu.org> To: bug#36668 <36668@debbugs.gnu.org> Subject: Status: [PATCH 0/1] Add 'eval/container' Reply-To: bug#36668 <36668@debbugs.gnu.org> Date: Sat, 21 Jun 2025 17:39:14 +0000 retitle 36668 [PATCH 0/1] Add 'eval/container' reassign 36668 guix-patches submitter 36668 Ludovic Court=C3=A8s severity 36668 normal tag 36668 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Jul 15 10:21:38 2019 Received: (at submit) by debbugs.gnu.org; 15 Jul 2019 14:21:38 +0000 Received: from localhost ([127.0.0.1]:48651 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hn1rG-0000N4-Jo for submit@debbugs.gnu.org; Mon, 15 Jul 2019 10:21:38 -0400 Received: from lists.gnu.org ([209.51.188.17]:35449) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hn1rE-0000Mx-VI for submit@debbugs.gnu.org; Mon, 15 Jul 2019 10:21:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60485) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hn1rE-0004SC-38 for guix-patches@gnu.org; Mon, 15 Jul 2019 10:21:36 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=ALL_TRUSTED,BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:470:142:3::e]:49106) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hn1rD-0000x8-ER; Mon, 15 Jul 2019 10:21:35 -0400 Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=39922 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hn1rD-0008EP-0h; Mon, 15 Jul 2019 10:21:35 -0400 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= To: guix-patches@gnu.org Subject: [PATCH 0/1] Add 'eval/container' Date: Mon, 15 Jul 2019 16:21:26 +0200 Message-Id: <20190715142126.14612-1-ludo@gnu.org> X-Mailer: git-send-email 2.22.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit Cc: =?UTF-8?q?Ludovic=20Court=C3=A8s?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hello Guix! This adds ‘eval/container’, which can be used to implement things that are almost derivation (pure computational processes), but not quite: processes that produce side effects, that need to access the daemon, or that need to talk over the network. It doesn’t have any users currently. Guix-Jupyter-Kernel will probably use it (to spawn proxied kernels in isolated environments), and I think Ricardo had a use case for it in GWL too. What do people think? I wonder if we should target ‘run-in-container’ instead of ‘call-with-container’, or maybe both. It’s also a bit troubling that ‘eval/container’ returns an exit status instead of the evaluation result, but I think it has to be this way, more or less. Ludo’. Ludovic Courtès (1): linux-container: Add 'eval/container'. gnu/system/linux-container.scm | 49 ++++++++++++++++++++++++++++++++- tests/containers.scm | 50 ++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 1 deletion(-) -- 2.22.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Jul 15 10:25:54 2019 Received: (at 36668) by debbugs.gnu.org; 15 Jul 2019 14:25:54 +0000 Received: from localhost ([127.0.0.1]:48666 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hn1vN-0000Um-PV for submit@debbugs.gnu.org; Mon, 15 Jul 2019 10:25:54 -0400 Received: from eggs.gnu.org ([209.51.188.92]:49181) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hn1vL-0000UU-4B for 36668@debbugs.gnu.org; Mon, 15 Jul 2019 10:25:51 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:49170) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hn1vE-0003Ln-Qo; Mon, 15 Jul 2019 10:25:44 -0400 Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=39930 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hn1vE-0000Ka-AJ; Mon, 15 Jul 2019 10:25:44 -0400 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= To: 36668@debbugs.gnu.org Subject: [PATCH 1/1] linux-container: Add 'eval/container'. Date: Mon, 15 Jul 2019 16:25:36 +0200 Message-Id: <20190715142536.14793-1-ludo@gnu.org> X-Mailer: git-send-email 2.22.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 36668 Cc: =?UTF-8?q?Ludovic=20Court=C3=A8s?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) * gnu/system/linux-container.scm (eval/container): New procedure. * tests/containers.scm ("eval/container, exit status") ("eval/container, writable user mapping"): New tests. --- gnu/system/linux-container.scm | 49 ++++++++++++++++++++++++++++++++- tests/containers.scm | 50 ++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 1 deletion(-) diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm index 61248c62b9..6273cee3d3 100644 --- a/gnu/system/linux-container.scm +++ b/gnu/system/linux-container.scm @@ -35,7 +35,8 @@ #:use-module (gnu system file-systems) #:export (system-container containerized-operating-system - container-script)) + container-script + eval/container)) (define* (container-essential-services os #:key shared-network?) "Return a list of essential services corresponding to OS, a @@ -205,3 +206,49 @@ that will be shared with the host system." %namespaces))))) (gexp->script "run-container" script))) + +(define* (eval/container exp + #:key + (mappings '()) + (namespaces %namespaces)) + "Evaluate EXP, a gexp, in a new process executing in separate namespaces as +listed in NAMESPACES. Add MAPPINGS, a list of , to the +set of directories visible in the process's mount namespace. Return the +process' exit status as a monadic value. + +This is useful to implement processes that, unlike derivations, are not +entirely pure and need to access the outside world or to perform side +effects." + (mlet %store-monad ((lowered (lower-gexp exp))) + (define inputs + (cons (lowered-gexp-guile lowered) + (lowered-gexp-inputs lowered))) + + (define items + (append (append-map derivation-input-output-paths inputs) + (lowered-gexp-sources lowered))) + + (mbegin %store-monad + (built-derivations inputs) + (mlet %store-monad ((closure ((store-lift requisites) items))) + (return (call-with-container (map file-system-mapping->bind-mount + (append (map (lambda (item) + (file-system-mapping + (source item) + (target source))) + closure) + mappings)) + (lambda () + (apply execl + (string-append (derivation-input-output-path + (lowered-gexp-guile lowered)) + "/bin/guile") + "guile" + (append (map (lambda (directory) `("-L" ,directory)) + (lowered-gexp-load-path lowered)) + (map (lambda (directory) `("-C" ,directory)) + (lowered-gexp-load-compiled-path + lowered)) + (list "-c" + (object->string + (lowered-gexp-sexp lowered)))))))))))) diff --git a/tests/containers.scm b/tests/containers.scm index 37408f380d..c6c738f234 100644 --- a/tests/containers.scm +++ b/tests/containers.scm @@ -21,7 +21,15 @@ #:use-module (guix utils) #:use-module (guix build syscalls) #:use-module (gnu build linux-container) + #:use-module ((gnu system linux-container) + #:select (eval/container)) #:use-module (gnu system file-systems) + #:use-module (guix store) + #:use-module (guix monads) + #:use-module (guix gexp) + #:use-module (guix derivations) + #:use-module (guix tests) + #:use-module (srfi srfi-1) #:use-module (srfi srfi-64) #:use-module (ice-9 match)) @@ -219,4 +227,46 @@ (lambda () (* 6 7)))) +(skip-if-unsupported) +(test-equal "eval/container, exit status" + 42 + (let* ((store (open-connection-for-tests)) + (status (run-with-store store + (eval/container #~(exit 42))))) + (close-connection store) + (status:exit-val status))) + +(skip-if-unsupported) +(test-assert "eval/container, writable user mapping" + (call-with-temporary-directory + (lambda (directory) + (define store + (open-connection-for-tests)) + (define result + (string-append directory "/r")) + (define requisites* + (store-lift requisites)) + + (call-with-output-file result (const #t)) + (run-with-store store + (mlet %store-monad ((status (eval/container + #~(begin + (use-modules (ice-9 ftw)) + (call-with-output-file "/result" + (lambda (port) + (write (scandir #$(%store-prefix)) + port)))) + #:mappings + (list (file-system-mapping + (source result) + (target "/result") + (writable? #t))))) + (reqs (requisites* + (list (derivation->output-path + (%guile-for-build)))))) + (close-connection store) + (return (and (zero? (pk 'status status)) + (lset= string=? (cons* "." ".." (map basename reqs)) + (pk (call-with-input-file result read)))))))))) + (test-end) -- 2.22.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Jul 15 11:23:05 2019 Received: (at 36668) by debbugs.gnu.org; 15 Jul 2019 15:23:05 +0000 Received: from localhost ([127.0.0.1]:48781 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hn2oi-0006Pu-Ml for submit@debbugs.gnu.org; Mon, 15 Jul 2019 11:23:04 -0400 Received: from mail-wm1-f65.google.com ([209.85.128.65]:52506) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hn2og-0006P7-BK for 36668@debbugs.gnu.org; Mon, 15 Jul 2019 11:23:02 -0400 Received: by mail-wm1-f65.google.com with SMTP id s3so15615648wms.2 for <36668@debbugs.gnu.org>; Mon, 15 Jul 2019 08:23:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=worcester-edu.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=edgYsri4rauA2idg/6XmTbawaNJknPsae5E+hsx1xZs=; b=rOnhAfPeKah/g6/cdWy85lTIB/PUle2F5acRikSJZhYOI9hybcsOI9EbuxAT1hqoUx dZp37QXgZHRzvY7fAbOI129ssSzNUniuNsLKngJeIg9Kz4kmhklgDq9XDqITl574uj5p nUlfnLquqsNGYc37pBZJ4QK3pPanrP5nyLzyaXUHckxDozeb/cJkBrk60xmFg7ywCvCg erQ/6Gg7UMFT7GWL0xJC4cd4RWXT+qlKWERqmSzA78nyzlECSqv5OVepCVWZx/xLU3gL imNf8mLA+tqZeGkEpmV3qTTDpgijyTVaynTuUwYjMEBcefLNkifhWmIjjmheF5JUt7OX m0OA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=edgYsri4rauA2idg/6XmTbawaNJknPsae5E+hsx1xZs=; b=EtUnUSz7l9pvdiMSaC4t8m29LUFZ4gJdkv2o3/0cUg66JZoMozKmmOjpmeU6hjO1Oa jD9+5Vp3A9ZiZmWgGeYsCHA3471uOdbrL1akdg/Qok/sTdcmHiv36ukVOlvLmQshknoT 8bhuooAv4IWVuvs6WIwi8bwlZ+lAeSoYAsr6Q2RRQAe1NhgsFEYuRAA+la3Tod7+IhPA aLp6mpKpaxQACbpF991giBX1Ov4ptrj/QPJQbHN/DNgma3Fg4ixVGko1lmXT5e8jw6md xK+lGiIkmBUcEymHMXJxl8s8AM8yIbKzTKC2HcdOmHFSrlo/O1Bd19kykWdQh7QQiUj+ ZirA== X-Gm-Message-State: APjAAAXVE+k/VdBORjwwbgvRwteNw3NH9ji5hrw6wS0jFfABQ7dWcVmr pdcjYmMMtWnP2TYTVm9/cNV/OptL0G/mSue4Nhf0JA== X-Google-Smtp-Source: APXvYqz7llUAJ/wi93fNA9EHYH0T99BbmDwJX/iaot6CvHrD0vAt+USZsBnkiHK9cQHGvJ/FVLO64lmE238dYFBvgtI= X-Received: by 2002:a1c:3cc4:: with SMTP id j187mr24170456wma.36.1563204175087; Mon, 15 Jul 2019 08:22:55 -0700 (PDT) MIME-Version: 1.0 References: <20190715142126.14612-1-ludo@gnu.org> In-Reply-To: <20190715142126.14612-1-ludo@gnu.org> From: "Thompson, David" Date: Mon, 15 Jul 2019 11:22:44 -0400 Message-ID: Subject: Re: [bug#36668] [PATCH 0/1] Add 'eval/container' To: =?UTF-8?Q?Ludovic_Court=C3=A8s?= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 36668 Cc: 36668@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Ludo, On Mon, Jul 15, 2019 at 10:22 AM Ludovic Court=C3=A8s wrote: > > Hello Guix! > > This adds =E2=80=98eval/container=E2=80=99, which can be used to implemen= t things that > are almost derivation (pure computational processes), but not quite: > processes that produce side effects, that need to access the daemon, > or that need to talk over the network. > > It doesn=E2=80=99t have any users currently. Guix-Jupyter-Kernel will pr= obably > use it (to spawn proxied kernels in isolated environments), and I think > Ricardo had a use case for it in GWL too. > > What do people think? This is great. Love to see 'call-with-container' used for new things. > I wonder if we should target =E2=80=98run-in-container=E2=80=99 instead o= f > =E2=80=98call-with-container=E2=80=99, or maybe both. I am behind the times. What is special about 'run-in-container'? > It=E2=80=99s also a bit troubling > that =E2=80=98eval/container=E2=80=99 returns an exit status instead of t= he evaluation > result, but I think it has to be this way, more or less. I haven't looked at your code, but have you considered supporting return values that can be serialized via 'write' and then using 'read' on the host side? (Hmm, I wonder how exceptions could be passed from container to host.) Anyway, nice work! - Dave From debbugs-submit-bounces@debbugs.gnu.org Mon Jul 15 11:51:37 2019 Received: (at 36668) by debbugs.gnu.org; 15 Jul 2019 15:51:37 +0000 Received: from localhost ([127.0.0.1]:48821 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hn3GL-0007Aq-0E for submit@debbugs.gnu.org; Mon, 15 Jul 2019 11:51:37 -0400 Received: from eggs.gnu.org ([209.51.188.92]:41397) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hn3GJ-0007AZ-8M for 36668@debbugs.gnu.org; Mon, 15 Jul 2019 11:51:35 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:50939) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hn3G9-0008Ki-Eq; Mon, 15 Jul 2019 11:51:28 -0400 Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=40662 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hn3G8-0006VV-EW; Mon, 15 Jul 2019 11:51:25 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: "Thompson\, David" Subject: Re: [bug#36668] [PATCH 0/1] Add 'eval/container' References: <20190715142126.14612-1-ludo@gnu.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 27 Messidor an 227 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Mon, 15 Jul 2019 17:51:21 +0200 In-Reply-To: (David Thompson's message of "Mon, 15 Jul 2019 11:22:44 -0400") Message-ID: <87wogjl2iu.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 36668 Cc: 36668@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hello! "Thompson, David" skribis: > On Mon, Jul 15, 2019 at 10:22 AM Ludovic Court=C3=A8s wrot= e: [...] >> I wonder if we should target =E2=80=98run-in-container=E2=80=99 instead = of >> =E2=80=98call-with-container=E2=80=99, or maybe both. > > I am behind the times. What is special about 'run-in-container'? I actually meant =E2=80=98run-container=E2=80=99, which is the lower-level = procedure that =E2=80=98call-with-container=E2=80=99 invokes: it returns the PID of t= he process that has been created. >> It=E2=80=99s also a bit troubling >> that =E2=80=98eval/container=E2=80=99 returns an exit status instead of = the evaluation >> result, but I think it has to be this way, more or less. > > I haven't looked at your code, but have you considered supporting > return values that can be serialized via 'write' and then using 'read' > on the host side? (Hmm, I wonder how exceptions could be passed from > container to host.) I did that in =E2=80=98container-excursion*=E2=80=99 a while back, but it= =E2=80=99s not generally applicable (there needs to be a read syntax for what=E2=80=99s se= nt), and I think it might be better to build it on top of a more primitive procedure like this =E2=80=98eval/container=E2=80=99. Whether we need something like this will depend on use cases I guess=E2=80= =A6 Thanks for your feedback! Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 19 05:55:41 2019 Received: (at 36668-done) by debbugs.gnu.org; 19 Jul 2019 09:55:41 +0000 Received: from localhost ([127.0.0.1]:55150 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hoPc4-0007Ex-PY for submit@debbugs.gnu.org; Fri, 19 Jul 2019 05:55:40 -0400 Received: from eggs.gnu.org ([209.51.188.92]:32968) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hoPc3-0007El-8J for 36668-done@debbugs.gnu.org; Fri, 19 Jul 2019 05:55:39 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:47071) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hoPbv-00064T-Cv; Fri, 19 Jul 2019 05:55:32 -0400 Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=60340 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hoPbu-00058w-9T; Fri, 19 Jul 2019 05:55:30 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: "Thompson\, David" Subject: Re: [bug#36668] [PATCH 0/1] Add 'eval/container' References: <20190715142126.14612-1-ludo@gnu.org> <87wogjl2iu.fsf@gnu.org> Date: Fri, 19 Jul 2019 11:55:29 +0200 In-Reply-To: <87wogjl2iu.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Mon, 15 Jul 2019 17:51:21 +0200") Message-ID: <87d0i6e4by.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 36668-done Cc: 36668-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) UHVzaGVkIQ0KDQpMdWRv4oCZLg0K From unknown Sat Jun 21 10:39:14 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Fri, 16 Aug 2019 11:24:08 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator