GNU logs - #72249, boring messages


Message sent to pelzflorian@HIDDEN, ludo@HIDDEN, matt@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#72249] [PATCH 0/2] Add xe-guest-utilities and daemon
Resent-From: Karl Hallsby <karl@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: pelzflorian@HIDDEN, ludo@HIDDEN, matt@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN
Resent-Date: Tue, 23 Jul 2024 05:16:01 +0000
Resent-Message-ID: <handler.72249.B.17217117169820 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 72249
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 72249 <at> debbugs.gnu.org
Cc: Karl Hallsby <karl@HIDDEN>, Florian Pelz <pelzflorian@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Matthew Trzcinski <matt@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>
X-Debbugs-Original-To: guix-patches@HIDDEN
X-Debbugs-Original-Xcc: Florian Pelz <pelzflorian@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Matthew Trzcinski <matt@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Received: via spool by submit <at> debbugs.gnu.org id=B.17217117169820
          (code B ref -1); Tue, 23 Jul 2024 05:16:01 +0000
Received: (at submit) by debbugs.gnu.org; 23 Jul 2024 05:15:16 +0000
Received: from localhost ([127.0.0.1]:58962 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sW7rn-0002YK-Ur
	for submit <at> debbugs.gnu.org; Tue, 23 Jul 2024 01:15:16 -0400
Received: from lists.gnu.org ([209.51.188.17]:49756)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <karl@HIDDEN>) id 1sW7rl-0002YB-L4
 for submit <at> debbugs.gnu.org; Tue, 23 Jul 2024 01:15:15 -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 <karl@HIDDEN>) id 1sW7rh-0002PX-2U
 for guix-patches@HIDDEN; Tue, 23 Jul 2024 01:15:09 -0400
Received: from mail-io1-xd35.google.com ([2607:f8b0:4864:20::d35])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <karl@HIDDEN>) id 1sW7re-0002v2-SA
 for guix-patches@HIDDEN; Tue, 23 Jul 2024 01:15:08 -0400
Received: by mail-io1-xd35.google.com with SMTP id
 ca18e2360f4ac-8036ce660e5so217713739f.1
 for <guix-patches@HIDDEN>; Mon, 22 Jul 2024 22:15:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=hallsby.com; s=google; t=1721711704; x=1722316504; 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=AfTt39ETgjlW7GJhGk3e8mswhaJYgw7zVrnPIraDcl0=;
 b=SUGOo+Dp5Rk/tAS1kENoDF/OpHVMU6fIDybLOfMpMdtv7aPK/7qExhK1o9D0z+4SN7
 JLQEiCRSuxddkWGFZAjSdibRK+7RbrENBQGicg/cns/aToY7ThAOiTlHqfuHhUCzywiJ
 JkoXTW826/RI0P40I9EMp6F5NkUDvm7bU3R+77RvUGuGIkGadNQQMgrUhzHIURuhNCOO
 iJEMuld+qxcC8osPHPSZqfJ5wd+qLoQlRuwtfBnwFuRB52ht7ie2YM8mols+YNgdlSgy
 rPWlI8+LQxYL9Zj/afm9/LPRCKDTzAfBjKkIVU0CiBC8FnTCu6Q9p5qPEEoUCfhcJEzO
 PjyA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1721711704; x=1722316504;
 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=AfTt39ETgjlW7GJhGk3e8mswhaJYgw7zVrnPIraDcl0=;
 b=IDUft8mKs+mC0V3ykJK4rJ1Yx6GBXn6M0zBflEzYpdNCuL5ji4CTpFf/VShQabXPwF
 yE4tEcbTHR+7ic02dVbQ7Tozk/kYzGjj0s6vXFQAM9W5jjxWbF7UvB1/YNlSpl9X/tfW
 Ftbr7bXr1f2yARdFrpmNvGKRqOpuu0Ul+n3utJAlPlpFCP4W+fMuzJeb+SmMF64I/xvC
 dX6bOFBggVZGMBSriK566kpjntO1wG6SaPx9c73Nosr8befd7gwrYKLRFBplBbo0Fdg0
 jJg09DLikuw3S2tPGbSm77yaIplxWveBp3m9PS5wEapvebqdqHqbQX1HftX8lXOhIQLK
 CLbA==
X-Gm-Message-State: AOJu0YzJrPesfNwce5WmHnYsChmmohNx7/dFh8Q4NiyE1pyIb2+y4Jfd
 +ekOsSJUVFSlIcPV8ti1wFWKMNOOzmhRly7STTHUPqyo2KoSLU5260yT6OeXqhaHa+1bL6a5jI0
 =
X-Google-Smtp-Source: AGHT+IEMwElDhc3rSxHT6rEt22rG7X+DWxsaQEeUPP1KWSv4Ydf4VybErm+hszkdbICFi02ZE1o2Sg==
X-Received: by 2002:a05:6e02:20ee:b0:396:d1c5:e70 with SMTP id
 e9e14a558f8ab-3993ff97b3amr104770895ab.3.1721711703564; 
 Mon, 22 Jul 2024 22:15:03 -0700 (PDT)
Received: from Karl-Desktop.raven
 (168-91-194-13.s3595.c3-0.frg-cbr1.chi-frg.il.cable.rcncustomer.com.
 [168.91.194.13]) by smtp.gmail.com with ESMTPSA id
 8926c6da1cb9f-4c2342f164esm1977580173.69.2024.07.22.22.15.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Jul 2024 22:15:03 -0700 (PDT)
From: Karl Hallsby <karl@HIDDEN>
Date: Tue, 23 Jul 2024 00:14:42 -0500
Message-ID: <cover.1721711392.git.karl@HIDDEN>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Received-SPF: pass client-ip=2607:f8b0:4864:20::d35;
 envelope-from=karl@HIDDEN; helo=mail-io1-xd35.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.4 (-)
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: -2.4 (--)

This service allows Xen hosts to *nicely* control Guix guests by requesting
graceful shutdowns, restarts, etc. You also get some system information about
the guest displayed by the Xen host.

Karl Hallsby (2):
  gnu: Add xe-guest-utilities.
  services: Add xe-guest-utilities-service-type.

 doc/guix.texi                   |  30 ++++++
 gnu/packages/virtualization.scm |  60 +++++++++++
 gnu/services/virtualization.scm | 179 +++++++++++++++++++++++++++++++-
 3 files changed, 268 insertions(+), 1 deletion(-)


base-commit: ad97f1bdb67015cffe92adba3b94c3b3df576008
--
2.45.2




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: Karl Hallsby <karl@HIDDEN>
Subject: bug#72249: Acknowledgement ([PATCH 0/2] Add xe-guest-utilities
 and daemon)
Message-ID: <handler.72249.B.17217117169820.ack <at> debbugs.gnu.org>
References: <cover.1721711392.git.karl@HIDDEN>
X-Gnu-PR-Message: ack 72249
X-Gnu-PR-Package: guix-patches
X-Gnu-PR-Keywords: patch
Reply-To: 72249 <at> debbugs.gnu.org
Date: Tue, 23 Jul 2024 05:16:01 +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
  Florian Pelz <pelzflorian@HIDDEN>, Ludovic Court=C3=A8s <ludo@gnu=
.org>, Matthew Trzcinski <matt@HIDDEN>, Maxim Cournoyer <maxim.courn=
oyer@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 72249 <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
72249: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D72249
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#72249] [PATCH 1/2] gnu: Add xe-guest-utilities.
Resent-From: Karl Hallsby <karl@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Tue, 23 Jul 2024 05:24:01 +0000
Resent-Message-ID: <handler.72249.B72249.172171223710813 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 72249
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 72249 <at> debbugs.gnu.org
Cc: Karl Hallsby <karl@HIDDEN>
Received: via spool by 72249-submit <at> debbugs.gnu.org id=B72249.172171223710813
          (code B ref 72249); Tue, 23 Jul 2024 05:24:01 +0000
Received: (at 72249) by debbugs.gnu.org; 23 Jul 2024 05:23:57 +0000
Received: from localhost ([127.0.0.1]:58971 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sW80D-0002oK-0H
	for submit <at> debbugs.gnu.org; Tue, 23 Jul 2024 01:23:57 -0400
Received: from mail-io1-f45.google.com ([209.85.166.45]:57583)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <karl@HIDDEN>) id 1sW808-0002o6-L4
 for 72249 <at> debbugs.gnu.org; Tue, 23 Jul 2024 01:23:56 -0400
Received: by mail-io1-f45.google.com with SMTP id
 ca18e2360f4ac-7f6e9662880so254095939f.2
 for <72249 <at> debbugs.gnu.org>; Mon, 22 Jul 2024 22:23:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=hallsby.com; s=google; t=1721712167; x=1722316967; 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=Y7Dbgr4mNVEMSx3bbuPoulWUZKiWHSnXL+GdGgA6Xt4=;
 b=FVehwTjCwyIwynMJ1haZS/0MoST9BlPl/7fgBWUoJSQURuXF592PGlEJ8t3WIc5l3P
 MRbVXV7BjfbYS/hU4yBPFoGZcSzNxcCtKztM+txQL2rIReT/juoTJhhZJ04qv0FihoAx
 3XHPs7h/xECB6ZZ6VjJr0NyoYoTDw1vvob6HfVUmWeClFGSWA3+JddP4EC4p69sdMdWd
 t7B35PkCvktmbMKfE5gwhivA7RgTZi74hWu1UkgPx15zC9dhTCic221qQNtT4aWfLGh0
 OXUfAiWurVNr6rhsb1v4mPsJVZFJseW/3Bz00+U5V3BvyXI5ebUnPOKgFNyMgdNWCN87
 73nQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1721712167; x=1722316967;
 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=Y7Dbgr4mNVEMSx3bbuPoulWUZKiWHSnXL+GdGgA6Xt4=;
 b=wvNYxzRh2Z0VxyFp0m7Ke7GT3ZDgdZ2jPNdtq4UpoAlm/bsDNapBUW7bK1j8lTo44W
 0NV2Km85BUUvPGVHkE8D5euZwbAKiE/KuiZPJ6h2GIYOWDQIPSOftvQ3RD7ziBzeCY6z
 N+wTGfGZlzYEFe8y681OFgcYhPp8lzWs4pzVFrv2x9ze+HwPxRsF5F60ue3P3fK9jiR5
 hFy0KDDNgx7UQsjIPyYcw5iTFg2b4/QplpFJbONJwr/Qj/CCayqE2nxoyPVtlmk5i61m
 3TxKnxrSEqtGzpxC2s/zu7f0V2CmVOwehcqT2nliyHAd6sWk3u2ij1A8APJurjSrSSd+
 /n5g==
X-Gm-Message-State: AOJu0YwUGfP6a/q0tzLWkUt5r4OggdGskkNyMDtrfZQcKCxo5K5LYB3u
 RzFEy0EiWyJxEB/OXMmSH1eU4tWEl78nN6JwGJcsAMMu0tOQoot20RhHAO5xWcELD/FljDq2xTI
 =
X-Google-Smtp-Source: AGHT+IFcEKXf9HXLpZrubEuOyrNG3EkJWgXkI/fay3JBAdJuww6gd3d9BH4tqEsbpu8p5tVBeYnhNw==
X-Received: by 2002:a05:6602:2b0a:b0:809:83e3:a35c with SMTP id
 ca18e2360f4ac-81aa9bcf127mr1399020739f.7.1721712167391; 
 Mon, 22 Jul 2024 22:22:47 -0700 (PDT)
Received: from Karl-Desktop.raven
 (168-91-194-13.s3595.c3-0.frg-cbr1.chi-frg.il.cable.rcncustomer.com.
 [168.91.194.13]) by smtp.gmail.com with ESMTPSA id
 ca18e2360f4ac-819aba11fd4sm285786539f.4.2024.07.22.22.22.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Jul 2024 22:22:47 -0700 (PDT)
From: Karl Hallsby <karl@HIDDEN>
Date: Tue, 23 Jul 2024 00:22:37 -0500
Message-ID: <e2a81c91a37d736f13d955b19ab1fef0fa65fc25.1721711392.git.karl@HIDDEN>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1721711392.git.karl@HIDDEN>
References: <cover.1721711392.git.karl@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
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/packages/virtualization.scm (xe-guest-utilities): Init at 8.4.0

Change-Id: I4daf19dc1964be00554e1c598ef88897081f5d52
---
 gnu/packages/virtualization.scm | 60 +++++++++++++++++++++++++++++++++
 gnu/services/virtualization.scm |  1 +
 2 files changed, 61 insertions(+)

diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 061748bb4a..dc5602e06a 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -91,6 +91,7 @@ (define-module (gnu packages virtualization)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages golang)
+  #:use-module (gnu packages golang-build)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages haskell)
@@ -2778,6 +2779,65 @@ (define-public xen
     (license license:gpl2)
     (supported-systems '("i686-linux" "x86_64-linux" "armhf-linux"))))
 
+(define-public xe-guest-utilities
+  (package
+    (name "xe-guest-utilities")
+    (version "8.4.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/xenserver/xe-guest-utilities")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1yqspizhq3ii6cz2w75slaxy8838yyri9pmgc2q1radnm7w735if"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/xenserver/xe-guest-utilities"
+      #:install-source? #f
+      #:tests? #f ; There are no tests.
+      #:phases
+      #~(modify-phases %standard-phases
+          ;; Despite using go-build-system, this project does not use Go's build
+          ;; infrastructure to do anything, instead relying on a Makefile.
+          ;; NOTE: This target builds a tarball, but it is only filled with
+          ;; 2 binaries, 1 script, and a bunch of text files; it is tiny.
+          (add-after 'patch-source-shebangs 'fix-udev-rule
+            (lambda* (#:key inputs import-path #:allow-other-keys)
+              (substitute* (string-append "src/" import-path "/mk/xen-vcpu-hotplug.rules")
+                (("/bin/sh") (search-input-file inputs "/bin/sh")))))
+          (replace 'build
+            (lambda* (#:key import-path #:allow-other-keys)
+              (with-directory-excursion (string-append "src/" import-path)
+                ;; Explicitly state version, removes git as native-input.
+                ;; NOTE: The final step of the Makefile's build target is to "cd"
+                ;; to the final build directory.
+                (invoke "make" (string-append "RELEASE=" #$version) "build"))))
+          ;; The default "install" actions produce package-manager-specific
+          ;; outputs, .deb, .rpm, and .tgz. We just copy the final build
+          ;; products out.
+          (replace 'install
+            (lambda* (#:key outputs import-path #:allow-other-keys)
+              (let* ((stage (string-append "src/" import-path "/build/stage"))
+                     (out (assoc-ref outputs "out")))
+                ;; Put udev rules in #$output/lib/udev/rules.d/
+                (copy-recursively (string-append stage "/etc/udev")
+                                  (string-append out "/lib/udev"))
+                ;; Copy produced binaries and scripts
+                (copy-recursively (string-append stage "/usr") out)))))))
+    (native-inputs (list go-golang-org-x-sys))
+    (inputs (list bash-minimal))
+    (home-page "https://github.com/xenserver/xe-guest-utilities")
+    (synopsis "XenServer guest utilities for unix-like operating systems")
+    (description "The XenServer guest utilities enable a Xen-based hypervisor,
+(Citrix XenServer, XCP-NG, etc.) to work with a Xen-enabled Unix-like guest VMs.
+This allows the guest to share information about its state back to the host,
+such IP address, memory usage, etc. and allows the host to inform the guest VM
+about events that change the virtualized hardware, such as hotplugging.")
+    (license license:bsd-2)))
+
 (define-public osinfo-db-tools
   (package
     (name "osinfo-db-tools")
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index d87e494348..c9f8225570 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2022 Oleg Pykhalov <go.wigust@HIDDEN>
 ;;; Copyright © 2022 Leo Nikkilä <hello@HIDDEN>
 ;;; Copyright © 2023 Efraim Flashner <efraim@HIDDEN>
+;;; Copyright © 2024 Raven Hallsby <karl@HIDDEN>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
-- 
2.45.2





Message sent to pelzflorian@HIDDEN, ludo@HIDDEN, matt@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#72249] [PATCH 2/2] services: Add xe-guest-utilities-service-type.
Resent-From: Karl Hallsby <karl@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: pelzflorian@HIDDEN, ludo@HIDDEN, matt@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN
Resent-Date: Tue, 23 Jul 2024 05:25:01 +0000
Resent-Message-ID: <handler.72249.B72249.172171224210849 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 72249
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 72249 <at> debbugs.gnu.org
Cc: Karl Hallsby <karl@HIDDEN>, Florian Pelz <pelzflorian@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Matthew Trzcinski <matt@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>
X-Debbugs-Original-Xcc: Florian Pelz <pelzflorian@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Matthew Trzcinski <matt@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Received: via spool by 72249-submit <at> debbugs.gnu.org id=B72249.172171224210849
          (code B ref 72249); Tue, 23 Jul 2024 05:25:01 +0000
Received: (at 72249) by debbugs.gnu.org; 23 Jul 2024 05:24:02 +0000
Received: from localhost ([127.0.0.1]:58974 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sW80H-0002oj-H5
	for submit <at> debbugs.gnu.org; Tue, 23 Jul 2024 01:24:02 -0400
Received: from mail-io1-f48.google.com ([209.85.166.48]:44508)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <karl@HIDDEN>) id 1sW80E-0002o9-RL
 for 72249 <at> debbugs.gnu.org; Tue, 23 Jul 2024 01:23:59 -0400
Received: by mail-io1-f48.google.com with SMTP id
 ca18e2360f4ac-7fb93b2e2a3so214539939f.1
 for <72249 <at> debbugs.gnu.org>; Mon, 22 Jul 2024 22:23:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=hallsby.com; s=google; t=1721712169; x=1722316969; 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=wDO4umrRiFPybL1CvELsnkMjputpRAygZI7aJJFfw6o=;
 b=NNfbn1RKMNDCbzdlNTw1yp9xiWEglNGrJKD7t+VFk3Q1HvRoHSUVpTq/pk7VrmGeZN
 uOq40zjcT/XcqVKUDwKDKKy7EVE9Wi755q6uvLicZxEfEHts63TwLnfSl8ugQFm7ZDZt
 aIpbFSkY/4JoSm7tHSfooD2URISUTTLoBST6UXa+qDDbXTKX7oqj68AigoyndiRnJVbM
 848uAXb468c4vhrnsAAPsMyHbblJ0HRR05uhhiXFVCSIXC2WVb2fYAXAXRzEfxy3y3Up
 AGQPD1wMsBVy1OCdW6VdBcw66wnEDQZcBKmPmWKncHzAhgpjgLyv9+vFojfawRh7iSX6
 VlOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1721712169; x=1722316969;
 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=wDO4umrRiFPybL1CvELsnkMjputpRAygZI7aJJFfw6o=;
 b=QvdbNn479/1aet3Nd58QK46mYCaJN3GcbQIqaRfmopfd7tALhf4G+885ZmenF8tgdJ
 2kQ6X3TisCYKn7a1mFUHWLA6rTTZ47On1oX+QjWequiDXGsziprzeZTzi4erKG8OGgTe
 Wug4tHJt9BvpT+7xfe5EcbuxnpIcT5ofvp1sKsg/4o1JEdBxVxsev1zKZyS6LKqBNZdX
 5YIZw7VZosWuzzJkUkwK/mD20BwSsKEZ+ws3TjTxNcCXAMib2zS0fuAuJVBRNE+8ip/A
 h/K/yF+C/6LWTjS/tHRvObsRZtqD3WFp8vqGXxP4+bnmyYG44yNfnItsSn/Iey9NNohO
 u/zw==
X-Gm-Message-State: AOJu0YwsI0B9Zb7Y5aDov4ICqpMFmZa6JJ0jqpgB+7/0tHTZGUVE+4Rr
 BFxgbEqhuqW1NqEFluauB6Gcs5QUyzd33IqgDTFh2XmUEg7j+jLN8zxb2THs7zwpjYonFaV28d4
 =
X-Google-Smtp-Source: AGHT+IFOsjjyPEPvBnoFbnEPhgbsPIKqYfXoJZpuj5bd4gwhrHHGFaUipw6S+wnC+VaEj6+RLOoI5g==
X-Received: by 2002:a05:6602:1601:b0:7f9:bef6:2068 with SMTP id
 ca18e2360f4ac-81b34880de9mr1154226839f.10.1721712168875; 
 Mon, 22 Jul 2024 22:22:48 -0700 (PDT)
Received: from Karl-Desktop.raven
 (168-91-194-13.s3595.c3-0.frg-cbr1.chi-frg.il.cable.rcncustomer.com.
 [168.91.194.13]) by smtp.gmail.com with ESMTPSA id
 ca18e2360f4ac-819aba11fd4sm285786539f.4.2024.07.22.22.22.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Jul 2024 22:22:48 -0700 (PDT)
From: Karl Hallsby <karl@HIDDEN>
Date: Tue, 23 Jul 2024 00:22:38 -0500
Message-ID: <1c2bcecabee79ce42af6d0d3d653f9fdf3ad5458.1721711392.git.karl@HIDDEN>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1721711392.git.karl@HIDDEN>
References: <cover.1721711392.git.karl@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/services/virtualization.scm (xe-guest-utilities-configuration,
  xe-guest-utilities-service-type): New variables.

Change-Id: Ife4e79fa6d1a9d5a21bf7479488884f2a5cf8d56
---
 doc/guix.texi                   |  30 ++++++
 gnu/services/virtualization.scm | 178 +++++++++++++++++++++++++++++++-
 2 files changed, 207 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 9ba96af459..6a29731b95 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -36873,6 +36873,36 @@ Virtualization Services
 @end table
 @end deftp
 
+@subsubheading Xen Guest Agent
+
+@cindex xen
+@cindex xen guest agent
+
+The Xen guest agent allows a Xen host to control the emulated system.
+The @code{xe-guest-agent} service runs the agent on Guix guests.
+
+@quotation Note
+The default Linux-libre kernel that Guix ships already enables the
+necessary features for a guest.  There is nothing you need to enable for
+the guest to fully support paravirtualization features.
+@end quotation
+
+@defvar xe-guest-agent-service-type
+Service type for the QEMU guest agent service.
+@end defvar
+
+@deftp {Data Type} xe-guest-agent-configuration
+Configuration for the @code{xen-guest-agent} service.
+
+@table @asis
+@item @code{package} (default: @code{xen-guest-utilities})
+The Xen guest utilities package to use.
+
+@item @code{pid-file} (default: @code{"/var/run/xe-daemon.pid"})
+Path to the file holding the PID of xe-deamon.
+@end table
+@end deftp
+
 
 @anchor{build-vm}
 @subsubheading Virtual Build Machines
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index c9f8225570..29d5de6cc7 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -33,6 +33,9 @@ (define-module (gnu services virtualization)
   #:autoload   (gnu packages gnupg) (guile-gcrypt)
   #:use-module (gnu packages package-management)
   #:use-module (gnu packages ssh)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages gawk)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages virtualization)
   #:use-module (gnu services base)
   #:use-module (gnu services configuration)
@@ -107,7 +110,10 @@ (define-module (gnu services virtualization)
 
             qemu-guest-agent-configuration
             qemu-guest-agent-configuration?
-            qemu-guest-agent-service-type))
+            qemu-guest-agent-service-type
+
+            xe-guest-agent-configuration
+            xe-guest-agent-service-type))
 
 (define (uglify-field-name field-name)
   (let ((str (symbol->string field-name)))
@@ -1004,6 +1010,77 @@ (define qemu-guest-agent-service-type
    (default-value (qemu-guest-agent-configuration))
    (description "Run the QEMU guest agent.")))
 
+
+;;;
+;;; Guest agent for VMs running under Xen
+;;;
+(define-configuration/no-serialization xe-guest-agent-configuration
+  (package
+   (package xe-guest-utilities)
+   "Xen guest management utilities package.")
+  (pid-file
+   (string "/var/run/xe-daemon.pid")
+   "Path to the file holding the PID of xe-deamon."))
+
+(define (generate-xe-guest-agent-documentation)
+  "Generate documentation for xe-guest-agent fields"
+  (generate-documentation
+   `((xe-guest-agent-configuration ,xe-guest-agent-configuration-fields))
+   'xe-guest-agent-configuration))
+
+(define (xe-guest-agent-shepherd-service config)
+  (let ((xe-guest-utils (xe-guest-agent-configuration-package config))
+        (pid-file (xe-guest-agent-configuration-pid-file config)))
+    (list
+     (shepherd-service
+      (provision '(xe-guest-agent))
+      (requirement '(networking user-processes udev))
+      (documentation "Run the Xen guest management agent.")
+      (start
+       #~(lambda _
+           (let ((pid (make-forkexec-constructor
+                       (list
+                        #$(file-append xe-guest-utils
+                                       "/sbin/xe-daemon")
+                        "-p" #$pid-file)
+                       #:log-file "/var/log/xe-daemon.log"
+                       #:pid-file #$pid-file
+                       #:environment-variables
+                       (list (string-append
+                              "PATH="
+                              #$(file-append xe-guest-utils "/bin") ":"
+                              ;; logger
+                              #$(file-append inetutils "/bin"))))))
+             ;; Run xe-linux-distribution script before starting the actual
+             ;; daemon. The script collects some basic system information that
+             ;; is shared back to the Xen host.
+             (system* #$(file-append xe-guest-utils "/sbin/xe-linux-distribution")
+                      "/var/cache/xe-linux-distribution")
+             ;; Finally, start and return the PID made by
+             ;; make-forkexec-constructor.
+             pid)))
+      (stop #~(make-kill-destructor))))))
+
+(define (xe-guest-agent-udev-rules-service config)
+  (let ((guest-utils (xe-guest-agent-configuration-package config)))
+    (list
+     (file->udev-rule "z10_xen-vcpu-hotplug.rules"
+                      (file-append
+                       guest-utils
+                       ;; I hate this z10_ prefix too
+                       "/lib/udev/rules.d/z10_xen-vcpu-hotplug.rules")))))
+
+(define xe-guest-agent-service-type
+  (service-type
+   (name 'xe-guest-agent)
+   (extensions
+    (list (service-extension shepherd-root-service-type
+                             xe-guest-agent-shepherd-service)
+          (service-extension udev-service-type
+                             xe-guest-agent-udev-rules-service)))
+   (default-value (xe-guest-agent-configuration))
+   (description "Run the Xen guest management utilities.")))
+
 
 ;;;
 ;;; Secrets for guest VMs.
@@ -1860,3 +1937,102 @@ (define hurd-vm-service-type
    (description
     "Provide a virtual machine (VM) running GNU/Hurd, also known as a
 @dfn{childhurd}.")))
+
+(define-configuration/no-serialization xe-guest-utilities-configuration
+  (xe-guest-utilities
+   (file-like xe-guest-utilities)
+   "XenServer guest utilities package.")
+  (pid-file
+   (string "/var/run/xe-daemon.pid")
+   "File holding the PID of xe-deamon."))
+
+(define (generate-xe-guest-utilities-documentation)
+  "Generate documentation for xe-guest-utilities fields"
+  (generate-documentation
+   `((xe-guest-utilities-configuration ,xe-guest-utilities-configuration-fields))
+   'xe-guest-utilities-configuration))
+
+(define (xe-guest-utils-service config)
+  (let ((pid-file (xe-guest-utilities-configuration-pid-file config)))
+    (list
+     ;; Generate <shepherd-service>s that run the xe-daemon forever.
+     (shepherd-service
+      (documentation "Run the xe-guest-utilities daemon.")
+      (provision '(xe-guest-utilities-daemon))
+      (requirement '(xe-guest-utilities-procfs
+                     xe-guest-utilities-distro))
+      (start #~(make-forkexec-constructor
+                (list #$(file-append xe-guest-utilities "/bin/xe-daemon")
+                      "-p" #$pid-file)
+                #:pid-file #$pid-file
+                #:environment-variables
+                (list (string-append
+                       "PATH=/run/current-system/profile/bin:"
+                       "/run/current-system/profile/sbin:"
+                       #$(file-append coreutils "/bin") ":"
+                       #$(file-append iproute "/bin")))))
+      (stop #~(make-kill-destructor)))
+
+  ;; Generate one-shot <shepherd-service>s that informs the host hypervisor about
+  ;; the distribution of the guest (Guix in this case)
+  (shepherd-service
+   (documentation "Inform host hypervisor of guest's distribution.")
+   (provision '(xe-guest-utilities-distro))
+   (requirement '(;;xe-guest-utilities-xend
+                  ))
+   (one-shot? #t)
+   (start #~(make-forkexec-constructor
+             (list #$(file-append xe-guest-utilities "/bin/xe-linux-distribution")
+                   "/var/run/xe-linux-distribution")
+             #:environment-variables
+             (list (string-append
+                    "PATH="
+                    #$(file-append xe-guest-utilities "/bin") ":"
+                    #$(file-append coreutils "/bin") ":" ;uname & co
+                    #$(file-append gawk "/bin") ":"
+                    #$(file-append sed "/bin")))))
+   (stop #~(make-kill-destructor)))
+
+  ;; Generate <shepherd-service>s to mount the xen directory in /proc.
+  (shepherd-service
+   (documentation "Mount /proc/xen files.")
+   (provision '(xe-guest-utilities-procfs))
+   (requirement '(file-systems))
+   (start #~(lambda ()
+              (mount "xenfs" "/proc/xen" "/proc/xen")
+              (member "/proc/xen" (mount-points))))
+   (stop #~(lambda ()
+             (umount "/proc/xen" MNT_DETACH)
+             (not (member "/proc/xen" (mount-points))))))
+
+  ;; Generate <shepherd-service>s to create the necessary temporary directories for XenStore.
+  (shepherd-service
+   (documentation "Provide a temporary directory for XenStore.")
+   (provision '(xe-guest-utilities-tmp-dir))
+   (one-shot? #t)
+   (requirement '(file-systems))
+   (start #~(lambda ()
+              (mkdir "/var/run/xenstored")
+              (chmod o755 "/var/run/xenstored")))
+   (stop #~(lambda ()
+             (delete-file-recursively "/var/run/xenstored")))))))
+
+(define (xe-guest-utils-udev-rules-service config)
+  (let ((guest-utils (xe-guest-utilities-configuration-xe-guest-utilities config)))
+    (list
+     (file->udev-rule "z10_xen-vcpu-hotplug.rules"
+                      (file-append
+                       guest-utils
+                       ;; I hate this z10_ prefix too
+                       "/etc/udev/rules.d/z10_xen-vcpu-hotplug.rules")))))
+
+(define xe-guest-utilities-service-type
+  (service-type
+   (name 'xe-guest-utilities)
+   (extensions (list (service-extension shepherd-root-service-type
+                                        xe-guest-utils-service)
+                     (service-extension udev-service-type
+                                        xe-guest-utils-udev-rules-service)))
+   (default-value (xe-guest-utilities-configuration))
+   (description
+    "Enable a Guix System VM to communicate with a Xen-based hypervisor host.")))
-- 
2.45.2





Message sent to sharlatanus@HIDDEN, guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#72249] [PATCH 1/2] gnu: Add xe-guest-utilities.
References: <cover.1721711392.git.karl@HIDDEN>
In-Reply-To: <cover.1721711392.git.karl@HIDDEN>
Resent-From: Karl Hallsby <karl@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: sharlatanus@HIDDEN, guix-patches@HIDDEN
Resent-Date: Wed, 08 Jan 2025 20:11:02 +0000
Resent-Message-ID: <handler.72249.B72249.17363670432251 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 72249
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 72249 <at> debbugs.gnu.org
Cc: Karl Hallsby <karl@HIDDEN>, Sharlatan Hellseher <sharlatanus@HIDDEN>
X-Debbugs-Original-Xcc: Sharlatan Hellseher <sharlatanus@HIDDEN>
Received: via spool by 72249-submit <at> debbugs.gnu.org id=B72249.17363670432251
          (code B ref 72249); Wed, 08 Jan 2025 20:11:02 +0000
Received: (at 72249) by debbugs.gnu.org; 8 Jan 2025 20:10:43 +0000
Received: from localhost ([127.0.0.1]:49092 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tVcO3-0000aF-0o
	for submit <at> debbugs.gnu.org; Wed, 08 Jan 2025 15:10:43 -0500
Received: from mail-io1-xd2c.google.com ([2607:f8b0:4864:20::d2c]:47188)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <karl@HIDDEN>) id 1tVcNy-0000Zt-Sk
 for 72249 <at> debbugs.gnu.org; Wed, 08 Jan 2025 15:10:41 -0500
Received: by mail-io1-xd2c.google.com with SMTP id
 ca18e2360f4ac-84cdb6fba9bso7426339f.2
 for <72249 <at> debbugs.gnu.org>; Wed, 08 Jan 2025 12:10:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=hallsby.com; s=google; t=1736367032; x=1736971832; darn=debbugs.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=somyza2vcM3JVbXzqiKgg/8tRBGz7YaOKrulL5YOpaY=;
 b=Sb26c20of/AURoGK8rGljN9PwnZTiHUbPpODt1IIk9sriKhE+IO57CkQXxpX2vWTpf
 HPKt6hzb0iC6CV2NO3F81/zvYpUSf7jMrUZ3u0F+RgghLc240Z1tQSAff8GiJSo6g3wO
 k1AwsjzxkJyoILEAF1IWnC60QTrq5Y8MBq+tyKnNBoCEVJhGzXbrqFMoZ6WKhjORfLa/
 2oVx3qo0kctEWRmO13h2x4lFxLxdULREMODJLCPuqFmf5BTBgzKRftIKLA5v2604eUzJ
 N7LFC+rOcnvUl16By0YBrkLE3L1obnBaEUmp2ITUXFwWOxaeozxn2DCl5vT/F5I0L3o4
 3c6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1736367032; x=1736971832;
 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=somyza2vcM3JVbXzqiKgg/8tRBGz7YaOKrulL5YOpaY=;
 b=QBXCvR3UHOW3np8aJpa2fGZl2ilHngW43pWUWnwcIlO/65nambThX8zyoFWODWxgOy
 wxVZsUgIp0UGG73BXpx36uxz/1WRjpWPu6ToOOJKwy2yMIwjuGXWPmLQ4QdiFWPec4if
 IQptCtpMTz8dpO9I4yHBYdZzz+vcxpRw5IWvqx0iPimy0rFVF4m0+ElivI+EX+4SaWt8
 1LPQLQiXWcjlkd/yAPE7EbVAsKNbJtAbWVwyi53XFe6VH1wQlpoWOIy3hCKxghyWnzmZ
 u9kpaXl6XmLj3diR3EXQnZh4IWciJ4YhdmbbrnC50DvXiWjdhqh+Vv2zPCF/vTiqPRYg
 OJGQ==
X-Gm-Message-State: AOJu0YxvNqDLzOcmnDJr+aAWdJyDGEHzRm+W16/lo7pgB2v/1ySnY3kr
 4bIUATPKmYbFEVZgTafYgrREQ3TrQvM1h84d+rcJjc+P0tUq2Xmdzsug7r3dRlqYIswWwu4C36c
 =
X-Gm-Gg: ASbGncuUFYWgWVQoKT8owGTcQOlyI7pEJAIet9wMvk5d9snGwGjvKL8qqJwQ7yNwQV2
 oQ7m07JZ358fY8XMaWgkL+la3dkahysOUz6wP/uvbC6sweA8ymJ1M3caMm4b1w3x0CfKipqgS0b
 /1ojJ3fiUQcUIRB/AKcHWNyyWeU43Nz2p1JEsA/xVcZjq+3uDJxABYrTuwK37Pjoz1AOcWmqf5o
 iFnNjZHBijdpflZAsoTUdIVsrzNZBMNnwvmnvusOzOSW6NUPFxeEs0oP+1MAQ==
X-Google-Smtp-Source: AGHT+IHvmpSFqx64aHr0ZEYcZ2eK15e0bRCO5jVBNQyaNTq3AU/7VcfOZ/Z99A6zDeDg81MIum07KA==
X-Received: by 2002:a05:6e02:87:b0:3a6:c98d:86bc with SMTP id
 e9e14a558f8ab-3ce3a86a258mr39807325ab.1.1736367032301; 
 Wed, 08 Jan 2025 12:10:32 -0800 (PST)
Received: from Karl-Desktop.raven ([207.237.222.72])
 by smtp.gmail.com with ESMTPSA id
 8926c6da1cb9f-4e68c1df14csm10674260173.125.2025.01.08.12.10.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 08 Jan 2025 12:10:31 -0800 (PST)
From: Karl Hallsby <karl@HIDDEN>
Date: Wed,  8 Jan 2025 14:10:25 -0600
Message-ID: <6920fcb2b7edd619b323c7f70d076a7a73ab0463.1736366732.git.karl@HIDDEN>
X-Mailer: git-send-email 2.46.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
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/packages/virtualization.scm (xe-guest-utilities): Init at 8.4.0

Change-Id: I4daf19dc1964be00554e1c598ef88897081f5d52
---
 gnu/packages/virtualization.scm | 88 +++++++++++++++++++++++++++++++++
 gnu/services/virtualization.scm |  1 +
 2 files changed, 89 insertions(+)

diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 9dff421341..3b162474af 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -104,6 +104,7 @@ (define-module (gnu packages virtualization)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages golang)
+  #:use-module (gnu packages golang-build)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
@@ -2772,6 +2773,93 @@ (define-public xen
     (license license:gpl2)
     (supported-systems '("i686-linux" "x86_64-linux" "armhf-linux"))))
 
+(define-public xe-guest-utilities
+  (package
+    (name "xe-guest-utilities")
+    (version "8.4.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/xenserver/xe-guest-utilities")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1yqspizhq3ii6cz2w75slaxy8838yyri9pmgc2q1radnm7w735if"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/xenserver/xe-guest-utilities"
+      #:install-source? #f
+      #:tests? #f ; There are no tests.
+      #:phases
+      #~(modify-phases %standard-phases
+          ;; Despite using go-build-system, this project does not use Go's build
+          ;; infrastructure to do anything, instead relying on a Makefile.
+          ;; NOTE: This target builds a tarball, but it is only filled with
+          ;; 2 binaries, 1 script, and a bunch of text files; it is tiny.
+          (add-after 'patch-source-shebangs 'fix-udev-rule
+            (lambda* (#:key inputs import-path #:allow-other-keys)
+              (substitute* (string-append "src/" import-path "/mk/xen-vcpu-hotplug.rules")
+                (("/bin/sh") (search-input-file inputs "/bin/sh")))))
+          (replace 'build
+            (lambda* (#:key import-path #:allow-other-keys)
+              (let* ((version #$version)
+                     (version-split (string-split version #\.))
+                     (major-version (list-ref version-split 0))
+                     (minor-version (list-ref version-split 1))
+                     (micro-version (list-ref version-split 2))
+                     (build-number  "0"))
+                (with-directory-excursion (string-append "src/" import-path)
+                  ;; Perform a buggy substitution. In Guix, the Go's guestmetric
+                  ;; import will resolve to the source version, NOT the version
+                  ;; the Makefile and sed substituted into build/. So we perform
+                  ;; the correct substitution.
+                  ;; This file list is what make & sed substitute, but we do it
+                  ;; in-place too.
+                  (substitute* (list "xe-daemon/xe-daemon.go"
+                                     "syslog/syslog.go"
+                                     "system/system.go"
+                                     "guestmetric/guestmetric.go"
+                                     "guestmetric/guestmetric_linux.go"
+                                     "xenstoreclient/xenstore.go"
+                                     "xenstore/xenstore.go")
+                    (("@PRODUCT_MAJOR_VERSION@") major-version)
+                    (("@PRODUCT_MINOR_VERSION@") minor-version)
+                    (("@PRODUCT_MICRO_VERSION@") micro-version)
+                    (("@NUMERIC_BUILD_NUMBER@")  build-number))
+                  ;; Explicitly state version, removes git as native-input and
+                  ;; removes using git commit hash as an ID.
+                  ;; NOTE: The final step of the Makefile's build target is to "cd"
+                  ;; to the final build directory.
+                  (invoke "make" "build"
+                          (string-append "RELEASE=" version)
+                          (string-append "PRODUCT_MAJOR_VERSION=" major-version)
+                          (string-append "PRODUCT_MINOR_VERSION=" minor-version)
+                          (string-append "PRODUCT_MICRO_VERSION=" micro-version))))))
+          ;; The default "install" actions produce package-manager-specific
+          ;; outputs, .deb, .rpm, and .tgz. We just copy the final build
+          ;; products out.
+          (replace 'install
+            (lambda* (#:key outputs import-path #:allow-other-keys)
+              (let* ((stage (string-append "src/" import-path "/build/stage"))
+                     (out (assoc-ref outputs "out")))
+                ;; Put udev rules in #$output/lib/udev/rules.d/
+                (copy-recursively (string-append stage "/etc/udev")
+                                  (string-append out "/lib/udev"))
+                ;; Copy produced binaries and scripts
+                (copy-recursively (string-append stage "/usr") out)))))))
+    (native-inputs (list go-golang-org-x-sys))
+    (inputs (list bash-minimal))
+    (home-page "https://github.com/xenserver/xe-guest-utilities")
+    (synopsis "XenServer guest utilities for unix-like operating systems")
+    (description "The XenServer guest utilities enable a Xen-based hypervisor,
+(Citrix XenServer, XCP-ng, etc.) to work with a Xen-enabled Unix-like guest VMs.
+This allows the guest to share information about its state back to the host,
+such IP address, memory usage, etc. and allows the host to inform the guest VM
+about events that change the virtualized hardware, such as hotplugging.")
+    (license license:bsd-2)))
+
 (define-public osinfo-db-tools
   (package
     (name "osinfo-db-tools")
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index 53f79e367b..c32c47484c 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2022 Oleg Pykhalov <go.wigust@HIDDEN>
 ;;; Copyright © 2022 Leo Nikkilä <hello@HIDDEN>
 ;;; Copyright © 2023 Efraim Flashner <efraim@HIDDEN>
+;;; Copyright © 2024 Raven Hallsby <karl@HIDDEN>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;

base-commit: 4eaeff997907bc1b67884a6dc087756a50f175e2
-- 
2.46.0





Message sent to ludo@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#72249] [PATCH 2/2] services: Add xe-guest-utilities-service-type.
Resent-From: Karl Hallsby <karl@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: ludo@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN
Resent-Date: Wed, 08 Jan 2025 20:11:02 +0000
Resent-Message-ID: <handler.72249.B72249.17363670462263 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 72249
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 72249 <at> debbugs.gnu.org
Cc: Karl Hallsby <karl@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>
X-Debbugs-Original-Xcc: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Received: via spool by 72249-submit <at> debbugs.gnu.org id=B72249.17363670462263
          (code B ref 72249); Wed, 08 Jan 2025 20:11:02 +0000
Received: (at 72249) by debbugs.gnu.org; 8 Jan 2025 20:10:46 +0000
Received: from localhost ([127.0.0.1]:49094 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tVcO5-0000aQ-PF
	for submit <at> debbugs.gnu.org; Wed, 08 Jan 2025 15:10:46 -0500
Received: from mail-io1-xd2c.google.com ([2607:f8b0:4864:20::d2c]:45296)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <karl@HIDDEN>) id 1tVcO2-0000Zx-0d
 for 72249 <at> debbugs.gnu.org; Wed, 08 Jan 2025 15:10:42 -0500
Received: by mail-io1-xd2c.google.com with SMTP id
 ca18e2360f4ac-844eac51429so10053039f.2
 for <72249 <at> debbugs.gnu.org>; Wed, 08 Jan 2025 12:10:42 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=hallsby.com; s=google; t=1736367036; x=1736971836; 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=8al9n/9z98ESk4P6kMa6R8/5phOstQcIlC/YejfmFA4=;
 b=Qm/u4lBZ6fTC04c/3lLGwDs3kcqqO4qJHFa6QCY1SaxygBmVlwOK8ODiF9xxDmJPuH
 zbEK1TggFqBbI+tNdtPo8i+x3DqY0SwDZd1d+n1w6K+HO92Q3w+JIE3UlTvJBdis8phq
 0ex+D5K4cI3rub1Zr+dnORx/DpZZMAL1v2hQZFqouNp6SDyetY5dmnpSvlrMCgGd2XCM
 zNY5JCf9mFI/7LKs/nW8Cg5/Orhrm3RIzumgLaIwNdcofpxkjKFwrSYq4YgRLaopH3C1
 949DmRg0oUD7P7DHyzkb/ISKRCofhkzDTOwVRPo3RVSYiMw/CNV7Ig0EzJlz3zqRBP3t
 Fqxw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1736367036; x=1736971836;
 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=8al9n/9z98ESk4P6kMa6R8/5phOstQcIlC/YejfmFA4=;
 b=p3ywhrs81uFo35LKz/3tQoQuox/nHmz7SNBA2rU/oq+BlRGvGL664cEXZAjNqh71sO
 fftRONE0NfDxuXc/SRwdeZzQNNLqm+PHC1a5rKa9MjnqPk081zrLJq1/kbY/y5W4K3Kb
 SPsKQxV9rH+xKqCZbxTwHq0atcUPHKVLplFM0YkyGA3kNigRLnNQr+T9m5Of6/K8Twz/
 nmgFRTj6CH4Do8+Kh5SbMLTzZPl17vBUCvGxzg6Eg0y9yZn+m86+oBhAqSZGIb/epor+
 FBmieCkBlY7b9eBG1Dg14md/c6VRVwwhHQ3d9SXqn+geQ421jNHfyy1bYqVx3R/CRoL/
 21UQ==
X-Gm-Message-State: AOJu0YxHzIdiyX92d3h299MfT4kjw0KR3J9v5Hzkefr4MIQByIjVWOfz
 qjbVMAwYUdwSAdf+T/85xorjliiuSRk165zPvXQUysinK4X/5TVCadRdhEW9DwA5dxl5U5N1QFU
 =
X-Gm-Gg: ASbGnctZgrKUrLV+7WgyPJG+G1mgjv67XVcBjB8Sg/R+J0e4gKJyxbEnpXBddm2j1+3
 9VwO5AawtYzFXgRtUta/WRBVAf+e+4edGxCJJ5DbgnMv7fXQD6zG9/YdSveHkkp6TuzH6YLF6Iy
 yZ8pq7nyUNE/5GCIRNOUMkI/l54zBTzOYpS1z7QVgNvejAkat0ikmYNvfwi1gXA2IW5Hstuc5/P
 XOQ/zxqtnEBdD35MdcotzHDZz1WuP5Qjz1YCpsoO/A43S3Ia8IpgIVcdvc5yA==
X-Google-Smtp-Source: AGHT+IELV2e65PAyCwd3N4iMUxaJFlRaYlJhomZjCfTtKyfBpqSnT5pi+lBOai3gKfBg4J5TvpyXDg==
X-Received: by 2002:a05:6e02:87:b0:3a7:6e72:fbb3 with SMTP id
 e9e14a558f8ab-3ce3a86a52amr36433965ab.4.1736367035910; 
 Wed, 08 Jan 2025 12:10:35 -0800 (PST)
Received: from Karl-Desktop.raven ([207.237.222.72])
 by smtp.gmail.com with ESMTPSA id
 8926c6da1cb9f-4e68c1df14csm10674260173.125.2025.01.08.12.10.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 08 Jan 2025 12:10:35 -0800 (PST)
From: Karl Hallsby <karl@HIDDEN>
Date: Wed,  8 Jan 2025 14:10:26 -0600
Message-ID: <05dbe98e7be3b45ddbf4a49df643e35333df78e7.1736366732.git.karl@HIDDEN>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <6920fcb2b7edd619b323c7f70d076a7a73ab0463.1736366732.git.karl@HIDDEN>
References: <6920fcb2b7edd619b323c7f70d076a7a73ab0463.1736366732.git.karl@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/services/virtualization.scm (xe-guest-utilities-configuration,
  xe-guest-utilities-service-type): New variables.
* doc/guix.texi: Document them.

Change-Id: Ife4e79fa6d1a9d5a21bf7479488884f2a5cf8d56
---
 doc/guix.texi                   | 37 +++++++++++++++
 gnu/services/virtualization.scm | 81 ++++++++++++++++++++++++++++++++-
 2 files changed, 117 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index f7b7569887..ee827717a1 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -37328,6 +37328,43 @@ Virtualization Services
 @end table
 @end deftp
 
+@subsubheading Xen Guest Agent
+
+@cindex xen
+@cindex xen guest agent
+
+The Xen guest agent allows a Xen host to control the emulated system.
+The @code{xe-guest-utilities} service runs the agent on Guix guests.
+
+@quotation Note
+The default Linux-libre kernel that Guix ships already enables the
+necessary paravirtualization features for a guest.  There is nothing you
+need to do for the guest to support Xen's paravirtualization features.
+
+The guest utilities are used to have the guest report information
+@emph{back} to the virtualizing host and support tasks that require
+cooperation between host and guest, like CPU hotplugging.
+@end quotation
+
+@defvar xe-guest-utilities-service-type
+Service type for the Xen guest utilities service.
+@end defvar
+
+@deftp {Data Type} xe-guest-utilities-configuration
+Configuration for the @code{xe-guest-utilities} service.
+
+@table @asis
+@item @code{package} (default: @code{xe-guest-utilities})
+The Xen guest utilities package to use.
+
+@item @code{pid-file} (default: @code{"/var/run/xe-daemon.pid"})
+Path to the file holding the PID of xe-deamon.
+
+@item @code{log-file} (default: @code{"/var/log/xe-guest-utilities.log"})
+Path to @code{xe-guest-utilities} log file.
+@end table
+@end deftp
+
 
 @anchor{build-vm}
 @subsubheading Virtual Build Machines
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index c32c47484c..874abcd73f 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -33,6 +33,9 @@ (define-module (gnu services virtualization)
   #:autoload   (gnu packages gnupg) (guile-gcrypt)
   #:use-module (gnu packages package-management)
   #:use-module (gnu packages ssh)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages gawk)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages virtualization)
   #:use-module (gnu services base)
   #:use-module (gnu services configuration)
@@ -107,7 +110,10 @@ (define-module (gnu services virtualization)
 
             qemu-guest-agent-configuration
             qemu-guest-agent-configuration?
-            qemu-guest-agent-service-type))
+            qemu-guest-agent-service-type
+
+            xe-guest-utilities-configuration
+            xe-guest-utilities-service-type))
 
 (define (uglify-field-name field-name)
   (let ((str (symbol->string field-name)))
@@ -1004,6 +1010,79 @@ (define qemu-guest-agent-service-type
    (default-value (qemu-guest-agent-configuration))
    (description "Run the QEMU guest agent.")))
 
+
+;;;
+;;; Guest agent for VMs running under Xen
+;;;
+(define-configuration/no-serialization xe-guest-utilities-configuration
+  (package
+   (package xe-guest-utilities)
+   "Xen guest management utilities package.")
+  (pid-file
+   (string "/var/run/xe-daemon.pid")
+   "Path to the file holding the PID of xe-deamon.")
+  (log-file
+   (string "/var/log/xe-guest-utilties.log")
+   "Path to xe-guest-utilities log file."))
+
+(define (generate-xe-guest-utilities-documentation)
+  "Generate documentation for xe-guest-utilities-configuration fields"
+  (generate-documentation
+   `((xe-guest-utilities-configuration ,xe-guest-utilities-configuration-fields))
+   'xe-guest-utilities-configuration))
+
+(define (xe-guest-utilities-shepherd-service config)
+  (let ((xe-guest-utils (xe-guest-utilities-configuration-package config))
+        (pid-file (xe-guest-utilities-configuration-pid-file config))
+        (log-file (xe-guest-utilities-configuration-log-file config)))
+    (list
+     (shepherd-service
+      (provision '(xen-guest-agent))
+      (requirement '(networking user-processes udev))
+      (documentation "Run the Xen guest management agent.")
+      (start
+       #~(lambda _
+           (let ((pid (make-forkexec-constructor
+                       (list
+                        #$(file-append xe-guest-utils
+                                       "/sbin/xe-daemon")
+                        "-p" #$pid-file)
+                       #:log-file #$log-file
+                       #:pid-file #$pid-file
+                       #:environment-variables
+                       (list (string-append
+                              "PATH="
+                              #$(file-append xe-guest-utils "/bin") ":"
+                              ;; logger
+                              #$(file-append inetutils "/bin"))))))
+             ;; Run xe-linux-distribution script before starting the actual
+             ;; daemon. The script collects some basic system information that
+             ;; is shared back to the Xen host.
+             (system* #$(file-append xe-guest-utils "/sbin/xe-linux-distribution")
+                      "/var/cache/xe-linux-distribution")
+             ;; Finally, start and return the PID made by
+             ;; make-forkexec-constructor.
+             pid)))
+      (stop #~(make-kill-destructor))))))
+
+(define (xe-guest-utilities-udev-rules-service config)
+  (let ((guest-utils (xe-guest-utilities-configuration-package config)))
+    (list
+     (file->udev-rule
+      "z10_xen-vcpu-hotplug.rules"
+      (file-append guest-utils "/lib/udev/rules.d/z10_xen-vcpu-hotplug.rules")))))
+
+(define xe-guest-utilities-service-type
+  (service-type
+   (name 'xe-guest-utilities)
+   (extensions
+    (list (service-extension shepherd-root-service-type
+                             xe-guest-utilities-shepherd-service)
+          (service-extension udev-service-type
+                             xe-guest-utilities-udev-rules-service)))
+   (default-value (xe-guest-utilities-configuration))
+   (description "Run the Xen guest management utilities.")))
+
 
 ;;;
 ;;; Secrets for guest VMs.
-- 
2.46.0





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#72249] [PATCH 2/2] services: Add xe-guest-utilities-service-type.
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: Thu, 09 Jan 2025 13:46:01 +0000
Resent-Message-ID: <handler.72249.B72249.17364303131464 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 72249
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Karl Hallsby <karl@HIDDEN>
Cc: 72249 <at> debbugs.gnu.org, Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Received: via spool by 72249-submit <at> debbugs.gnu.org id=B72249.17364303131464
          (code B ref 72249); Thu, 09 Jan 2025 13:46:01 +0000
Received: (at 72249) by debbugs.gnu.org; 9 Jan 2025 13:45:13 +0000
Received: from localhost ([127.0.0.1]:51196 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tVsqX-0000NY-Bd
	for submit <at> debbugs.gnu.org; Thu, 09 Jan 2025 08:45:13 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:39528)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1tVsqU-0000IU-Ql
 for 72249 <at> debbugs.gnu.org; Thu, 09 Jan 2025 08:45:12 -0500
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 1tVsqP-0003xj-Da; Thu, 09 Jan 2025 08:45:05 -0500
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=8vXZIHRqtGw9Mwwt2PHRHk2hAr5xzV5fyY8puuhD+NA=; b=RJcc+CiaFBVkD9AT+gFQ
 nrTKGggfBU1jWOOs53ncLP0f5V0zgAYmiE9AR6wkv9iIMxrVm+9SDiSvtmF+GryQa50Ltmj0ldQ85
 cfhhWRELnXoiT/LtZLffbGbRCX+TU6xQ/Mb5mJN3GeWIsHr3wZwgIkTMPpYw1r8JwiDRCP0QXr/RP
 jQYIbx2aaLPc2kt8hQ5MDKaLe2+Brq1lVsCG7ZSmCET5Ga54IXSA6CMuw9IbrqkTMlq0rqsVEWOMt
 BKB7wysv2hwEFh1WbNmr/9xH4UaqSKr+u+Fwy3uccy+qZmcXLzpg/kmxdUObpdOK1Zq7blHo1D7Gz
 SoAVawfabyFXZg==;
From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
In-Reply-To: <05dbe98e7be3b45ddbf4a49df643e35333df78e7.1736366732.git.karl@HIDDEN>
 (Karl Hallsby's message of "Wed, 8 Jan 2025 14:10:26 -0600")
References: <6920fcb2b7edd619b323c7f70d076a7a73ab0463.1736366732.git.karl@HIDDEN>
 <05dbe98e7be3b45ddbf4a49df643e35333df78e7.1736366732.git.karl@HIDDEN>
X-URL: http://www.fdn.fr/~lcourtes/
X-Revolutionary-Date: =?UTF-8?Q?D=C3=A9cadi?= 20 =?UTF-8?Q?Niv=C3=B4se?= an
 233 de la =?UTF-8?Q?R=C3=A9volution,?= jour du Van
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: Thu, 09 Jan 2025 14:45:00 +0100
Message-ID: <87plkwp0df.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 (---)

Hello,

Karl Hallsby <karl@HIDDEN> skribis:

> * gnu/services/virtualization.scm (xe-guest-utilities-configuration,
>   xe-guest-utilities-service-type): New variables.
> * doc/guix.texi: Document them.
>
> Change-Id: Ife4e79fa6d1a9d5a21bf7479488884f2a5cf8d56

I=E2=80=99m only looking at the doc side of things.  Minor comments:

> +@cindex xen
> +@cindex xen guest agent

=E2=80=9CXen=E2=80=9D, capitalized.

> +The Xen guest agent allows a Xen host to control the emulated system.
> +The @code{xe-guest-utilities} service runs the agent on Guix guests.

I=E2=80=99m surprised it=E2=80=99s all =E2=80=9Cxe-=E2=80=9D, not =E2=80=9C=
xen-=E2=80=9D, but I guess that=E2=80=99s the way it
is.  :-)

It would be nice to add a sentence or two about what said utilities do,
perhaps with a link to upstream documentation if that helps?

> +@item @code{log-file} (default: @code{"/var/log/xe-guest-utilities.log"})
> +Path to @code{xe-guest-utilities} log file.

=E2=80=9CName of the @code{xe-guest-utilities} log file.=E2=80=9D

(We use the term =E2=80=9Cpath=E2=80=9D for =E2=80=9Csearch paths=E2=80=9D.)

Apart from that LGTM!

Thanks,
Ludo=E2=80=99.




Message sent to ludo@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#72249] [PATCH] services: Add xe-guest-utilities-service-type.
References: <cover.1721711392.git.karl@HIDDEN>
In-Reply-To: <cover.1721711392.git.karl@HIDDEN>
Resent-From: Karl Hallsby <karl@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: ludo@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN
Resent-Date: Fri, 10 Jan 2025 07:02:01 +0000
Resent-Message-ID: <handler.72249.B72249.1736492484748 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 72249
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 72249 <at> debbugs.gnu.org
Cc: Karl Hallsby <karl@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>
X-Debbugs-Original-Xcc: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Received: via spool by 72249-submit <at> debbugs.gnu.org id=B72249.1736492484748
          (code B ref 72249); Fri, 10 Jan 2025 07:02:01 +0000
Received: (at 72249) by debbugs.gnu.org; 10 Jan 2025 07:01:24 +0000
Received: from localhost ([127.0.0.1]:56203 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tW91I-0000C0-3m
	for submit <at> debbugs.gnu.org; Fri, 10 Jan 2025 02:01:24 -0500
Received: from mail-io1-xd29.google.com ([2607:f8b0:4864:20::d29]:57744)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <karl@HIDDEN>) id 1tW91F-0000Bk-Ci
 for 72249 <at> debbugs.gnu.org; Fri, 10 Jan 2025 02:01:22 -0500
Received: by mail-io1-xd29.google.com with SMTP id
 ca18e2360f4ac-844dfe4b136so43867839f.3
 for <72249 <at> debbugs.gnu.org>; Thu, 09 Jan 2025 23:01:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=hallsby.com; s=google; t=1736492474; x=1737097274; darn=debbugs.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=Z0EJee9vFjm9IXj8noabH1VxgucUslavG+ol44X00ZY=;
 b=VIcxdsHRRV9sIyb97R5aMFp4D9LWxsFbynIr4zGFUV4LUYcFjCXxMeqzlL0gajac4o
 RpN7kXVlR0abdkvBLL08SHPKzOUheGmuqj9eOzdv8uyqF5ypc67ufnXJJeHHuN9gNM98
 rym4o8RSG/XQc9yRwRdhFiRZ0rk5z5nSWJJZMTolymAHr//Q8LxsHpCR7N/hBJUq+G1X
 1nkfuN0GSRmxSBSeNoTonE/EfOtQILZbkjeLxeUIMQ3BuYZl1RdzOBKJay4ISUKlkw5w
 PT8NuNG/9NXTUN1iYymn64Ks70r3a9zMXGmUIdmJv0aK/Ja/Fp/96dUVk3cHBS+3DUXP
 GKpw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1736492474; x=1737097274;
 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=Z0EJee9vFjm9IXj8noabH1VxgucUslavG+ol44X00ZY=;
 b=J+xXNtvdzSmXE/O2UU+Rewj3cVy/1VKbTNUFVNSalwMujxquxbHvHv2j+1LmS6dF2q
 f+tOkH6jg4FZe5T+tuONRUqXK9z0XDWIoRXbh60jMnRtc02mEs7pkpL+pH0Y5cbmYmG3
 ui9IIp/NGjK6vAunBZc5x39WO70pyhk8aJxfujYrd+LUWfU7RsDLi8tmM3wqbGl0KCAu
 xb5oK+lcDxDINzLgVESWzykQQX7QwFNK5Ib27i1vYUYHeuFwSYkYmei2t/odrF9kdjsi
 xXYWESbg6SK94Q4jmEDbS4R0ZVDJKQIFjAjVqaIoOUYpEdvVRHHdK05Q0XxHm/Ul9SCh
 +ErA==
X-Gm-Message-State: AOJu0YyA0ocmZe4x/vwMSm/BjkpF8Hio+SlnjJGLQJoFo6anZ+f6Vngo
 a9VfbKEBY9SJEqMTZQfvSkN9G2Tqxb8vhQ1Ywbjxe7MkWzZzm5qICkTFfYdZJhKWkwFsEzSXhNs
 =
X-Gm-Gg: ASbGncthZ5QZ/9UF5ug1vc6B/lIZbO+q4G79UyoR2Kuem9f/ZM9PZKpNzkPqxevll0l
 Js54jjUZoG8hAC/9NLuUj42ckZcTxkypY02HUqnVbyrTmMirPOzR11n9OSKynUajZP7q/BfIbes
 Rc0AvY6y5GMBKvKKtlFUSvIW1CTFGtTR+NjWUwbytZAydj6+4hAYk4Isx2K+ZiOuC8vegNjihpd
 yUFyFsuNE0ME5Ye4F99gDM5GEH6eGZNWrOup/g5sMi1oDqoDfoayhMtOicDwA==
X-Google-Smtp-Source: AGHT+IEo/ksnhlcoB5dKJ11u2knNlsw28Z7QQIK5aNq3/m9f7yRwlLJHgjgVf1pN+C6FxLvdzzyjLg==
X-Received: by 2002:a05:6602:36cf:b0:843:e9c1:930b with SMTP id
 ca18e2360f4ac-84ce0194e69mr919091939f.14.1736492474359; 
 Thu, 09 Jan 2025 23:01:14 -0800 (PST)
Received: from Karl-Desktop.raven ([207.237.222.72])
 by smtp.gmail.com with ESMTPSA id
 8926c6da1cb9f-4ea1b5f83cdsm743437173.15.2025.01.09.23.01.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 09 Jan 2025 23:01:12 -0800 (PST)
From: Karl Hallsby <karl@HIDDEN>
Date: Fri, 10 Jan 2025 01:00:59 -0600
Message-ID: <73106db7b8187d4b6bcc5d0c421ea3314ed7a498.1736491649.git.karl@HIDDEN>
X-Mailer: git-send-email 2.46.0
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/services/virtualization.scm (xe-guest-utilities-configuration,
  xe-guest-utilities-service-type): New variables.
* doc/guix.texi: Document them.

Change-Id: Ife4e79fa6d1a9d5a21bf7479488884f2a5cf8d56
---
 doc/guix.texi                   | 71 +++++++++++++++++++++++++++++
 gnu/services/virtualization.scm | 81 ++++++++++++++++++++++++++++++++-
 2 files changed, 151 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index f7b7569887..afb886128b 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -37328,6 +37328,77 @@ Virtualization Services
 @end table
 @end deftp
 
+@subsubheading Xen Guest Agent
+
+@cindex Xen
+@cindex Xen guest agent
+
+The Xen guest agent allows a Xen host to control the emulated system.
+The @code{xe-guest-utilities} service runs the agent on Guix guests.
+
+@url{https://github.com/xenserver/xe-guest-utilities, xe-guest-utilities} collects information about the running virtualized guest. This includes:
+@itemize
+@item
+static information
+@itemize
+@item
+The operating system running
+@item
+The Linux kernel version
+@end itemize
+
+@item
+dynamic information
+@itemize
+@item
+Network interfaces (devices) being added/removed
+@item
+Network connections being unplugged/plugged-in
+@item
+CPUs being added or removed
+@item
+The guest migrating, being paused/resumed, etc.
+@end itemize
+
+@item
+ephemeral information
+@itemize
+@item
+The amount of memory currently in-use and free
+@item
+The amount of disk-space used
+@end itemize
+@end itemize
+
+@quotation Note
+The default Linux-libre kernel that Guix ships already enables the
+necessary paravirtualization features for a guest.  There is nothing you
+need to do for the guest to support Xen's paravirtualization features.
+
+The guest utilities are used to have the guest report information
+@emph{back} to the virtualizing host and support tasks that require
+cooperation between host and guest, like CPU hotplugging.
+@end quotation
+
+@defvar xe-guest-utilities-service-type
+Service type for the Xen guest utilities service.
+@end defvar
+
+@deftp {Data Type} xe-guest-utilities-configuration
+Configuration for the @code{xe-guest-utilities} service.
+
+@table @asis
+@item @code{package} (default: @code{xe-guest-utilities})
+The Xen guest utilities package to use.
+
+@item @code{pid-file} (default: @code{"/var/run/xe-daemon.pid"})
+Name of the file holding the PID of @code{xe-deamon}.
+
+@item @code{log-file} (default: @code{"/var/log/xe-guest-utilities.log"})
+Name of the @code{xe-guest-utilities} log file.
+@end table
+@end deftp
+
 
 @anchor{build-vm}
 @subsubheading Virtual Build Machines
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index c32c47484c..874abcd73f 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -33,6 +33,9 @@ (define-module (gnu services virtualization)
   #:autoload   (gnu packages gnupg) (guile-gcrypt)
   #:use-module (gnu packages package-management)
   #:use-module (gnu packages ssh)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages gawk)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages virtualization)
   #:use-module (gnu services base)
   #:use-module (gnu services configuration)
@@ -107,7 +110,10 @@ (define-module (gnu services virtualization)
 
             qemu-guest-agent-configuration
             qemu-guest-agent-configuration?
-            qemu-guest-agent-service-type))
+            qemu-guest-agent-service-type
+
+            xe-guest-utilities-configuration
+            xe-guest-utilities-service-type))
 
 (define (uglify-field-name field-name)
   (let ((str (symbol->string field-name)))
@@ -1004,6 +1010,79 @@ (define qemu-guest-agent-service-type
    (default-value (qemu-guest-agent-configuration))
    (description "Run the QEMU guest agent.")))
 
+
+;;;
+;;; Guest agent for VMs running under Xen
+;;;
+(define-configuration/no-serialization xe-guest-utilities-configuration
+  (package
+   (package xe-guest-utilities)
+   "Xen guest management utilities package.")
+  (pid-file
+   (string "/var/run/xe-daemon.pid")
+   "Path to the file holding the PID of xe-deamon.")
+  (log-file
+   (string "/var/log/xe-guest-utilties.log")
+   "Path to xe-guest-utilities log file."))
+
+(define (generate-xe-guest-utilities-documentation)
+  "Generate documentation for xe-guest-utilities-configuration fields"
+  (generate-documentation
+   `((xe-guest-utilities-configuration ,xe-guest-utilities-configuration-fields))
+   'xe-guest-utilities-configuration))
+
+(define (xe-guest-utilities-shepherd-service config)
+  (let ((xe-guest-utils (xe-guest-utilities-configuration-package config))
+        (pid-file (xe-guest-utilities-configuration-pid-file config))
+        (log-file (xe-guest-utilities-configuration-log-file config)))
+    (list
+     (shepherd-service
+      (provision '(xen-guest-agent))
+      (requirement '(networking user-processes udev))
+      (documentation "Run the Xen guest management agent.")
+      (start
+       #~(lambda _
+           (let ((pid (make-forkexec-constructor
+                       (list
+                        #$(file-append xe-guest-utils
+                                       "/sbin/xe-daemon")
+                        "-p" #$pid-file)
+                       #:log-file #$log-file
+                       #:pid-file #$pid-file
+                       #:environment-variables
+                       (list (string-append
+                              "PATH="
+                              #$(file-append xe-guest-utils "/bin") ":"
+                              ;; logger
+                              #$(file-append inetutils "/bin"))))))
+             ;; Run xe-linux-distribution script before starting the actual
+             ;; daemon. The script collects some basic system information that
+             ;; is shared back to the Xen host.
+             (system* #$(file-append xe-guest-utils "/sbin/xe-linux-distribution")
+                      "/var/cache/xe-linux-distribution")
+             ;; Finally, start and return the PID made by
+             ;; make-forkexec-constructor.
+             pid)))
+      (stop #~(make-kill-destructor))))))
+
+(define (xe-guest-utilities-udev-rules-service config)
+  (let ((guest-utils (xe-guest-utilities-configuration-package config)))
+    (list
+     (file->udev-rule
+      "z10_xen-vcpu-hotplug.rules"
+      (file-append guest-utils "/lib/udev/rules.d/z10_xen-vcpu-hotplug.rules")))))
+
+(define xe-guest-utilities-service-type
+  (service-type
+   (name 'xe-guest-utilities)
+   (extensions
+    (list (service-extension shepherd-root-service-type
+                             xe-guest-utilities-shepherd-service)
+          (service-extension udev-service-type
+                             xe-guest-utilities-udev-rules-service)))
+   (default-value (xe-guest-utilities-configuration))
+   (description "Run the Xen guest management utilities.")))
+
 
 ;;;
 ;;; Secrets for guest VMs.

base-commit: 4eaeff997907bc1b67884a6dc087756a50f175e2
prerequisite-patch-id: daabcb5995f03ed867a27648e973e1c2203f2bc9
-- 
2.46.0





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#72249] [PATCH 2/2] services: Add xe-guest-utilities-service-type.
Resent-From: "Karl G. Hallsby" <karl@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 11 Jan 2025 21:47:01 +0000
Resent-Message-ID: <handler.72249.B72249.173663197126059 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 72249
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 72249 <at> debbugs.gnu.org
Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Received: via spool by 72249-submit <at> debbugs.gnu.org id=B72249.173663197126059
          (code B ref 72249); Sat, 11 Jan 2025 21:47:01 +0000
Received: (at 72249) by debbugs.gnu.org; 11 Jan 2025 21:46:11 +0000
Received: from localhost ([127.0.0.1]:45159 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tWjJ4-0006mF-P7
	for submit <at> debbugs.gnu.org; Sat, 11 Jan 2025 16:46:11 -0500
Received: from mail-io1-xd2d.google.com ([2607:f8b0:4864:20::d2d]:52631)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <karl@HIDDEN>) id 1tWjJ2-0006lz-Of
 for 72249 <at> debbugs.gnu.org; Sat, 11 Jan 2025 16:46:09 -0500
Received: by mail-io1-xd2d.google.com with SMTP id
 ca18e2360f4ac-844ee15d6f4so246520439f.1
 for <72249 <at> debbugs.gnu.org>; Sat, 11 Jan 2025 13:46:08 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=hallsby.com; s=google; t=1736631962; x=1737236762; darn=debbugs.gnu.org;
 h=content-transfer-encoding:mime-version:message-id:date:user-agent
 :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=R1Erk3reqiiWY3rN/edSQOizAaz84yCLMU9kSh5IKaY=;
 b=UoW8jzx2Ti+Do0PxheiMH1LRfIlme+OLOkz+8fXurhBan3ZkSZcCmlNP1SMumuFevJ
 aZvp7sBsmqJhapEtLXAejHjJEI6YuVdOl1+rQ0MzFTenWpGnhMfhwNpB0Yd5LN0n+MjE
 dVOcWIxw6gAKWI82f+jzIwbcKc0QebWDQtzP0X8icohcgGrRc9TPbgXe4rj2pkG+to20
 N8bS043hIJAAJ8xlhBqwm7DIwBA1+OgVKm5BBuKVM0T46eVUQieFXIlspWVq0l69uIAS
 aQLUhCtvN35Znn3XhJZbg3cTiVh0crnkVe2k0NHUon4TrVN4Bpb5aNjDAcapD+jR2mbt
 wk8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1736631962; x=1737236762;
 h=content-transfer-encoding:mime-version:message-id:date:user-agent
 :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from
 :to:cc:subject:date:message-id:reply-to;
 bh=R1Erk3reqiiWY3rN/edSQOizAaz84yCLMU9kSh5IKaY=;
 b=jTMs6sWJR1Q3MaYZSUjMeZBwLffJxBzpaBYNOz04mrWtOvO2GkzEOZnczYfUoRL44s
 QBmsHNid3U+V8cHA/Kpa2alxXR/kmmrRaij+ABI7DWMOdKX6LJmu5u4QwG/y7bUj57H6
 E2HnWu5VqkjtOeyvBfUMH/RDzWIutDrcB3uWv87daC0Gy1MQk3isyAVXG4eNYoPjga+S
 IRUZ6ybwFfYKk5OK60GCf0gGCOzL+vJSjPlEZrTA7FkpgV2X4R4UBsOX1hZG4MN7nVtT
 V4DLeof3U7B6NP0gZxd2X9oGzOpDrDhasZVvRGiEj7YxcVIBNfghM+jkEnirRGnK1C5H
 FMfw==
X-Gm-Message-State: AOJu0YxDf1twBCKRX3PD5k1z4aG03UQO5XA3NJDD5cu7y3Mp/Hw764wv
 vzmTAKvkGN1qzKbeej7HMgSDrbNHCV1gGG3PpGXB5NfttOhiCLhjsGwLENvOY7ksUdb2oPTp/SQ
 =
X-Gm-Gg: ASbGnctUGH1WNrnRB6JYCym0XQm80wHwCFF9FchSMnVDbC9e9+N824eYws21m3LpRSE
 yahGmWvHn8zsVgiArRkoaM5gUGGB5EePrImQyHDFyCJRI06USZciDKcb5q5RHfmGx5tbJ8HZuTl
 XJJ+e3gEYNMludc3ybMXiLZUMnfmrj1A8t5sQmxWeQCWPMl10uAqAcoXleWoSWUOBy6GmCTLKFt
 7/HtGlOndDQP8kS/ALZS7rqQ5bnv9K3bsGygvCEme1mep0unA==
X-Google-Smtp-Source: AGHT+IGSPo+BMX6qr4r0m2Ftty3EDG6Ei09njoor29npqqM/u2AiEO4/k0pCl1qwZFDY816jM+Ah/Q==
X-Received: by 2002:a05:6602:6cc6:b0:843:e8d0:a728 with SMTP id
 ca18e2360f4ac-84ce0092d9dmr1644134439f.4.1736631962029; 
 Sat, 11 Jan 2025 13:46:02 -0800 (PST)
Received: from localhost ([207.237.222.72]) by smtp.gmail.com with ESMTPSA id
 ca18e2360f4ac-84d4fb32323sm176326439f.19.2025.01.11.13.46.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 11 Jan 2025 13:46:00 -0800 (PST)
From: "Karl G. Hallsby" <karl@HIDDEN>
In-Reply-To: <87plkwp0df.fsf@HIDDEN> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'s message of "Thu, 09 Jan 2025 14:45:00 +0100")
References: <6920fcb2b7edd619b323c7f70d076a7a73ab0463.1736366732.git.karl@HIDDEN>
 <05dbe98e7be3b45ddbf4a49df643e35333df78e7.1736366732.git.karl@HIDDEN>
 <87plkwp0df.fsf@HIDDEN>
User-Agent: mu4e 1.12.7; emacs 29.4
Date: Sat, 11 Jan 2025 15:45:59 -0600
Message-ID: <87ed19nhwo.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
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 (-)

Hi,

Ludovic Court=C3=A8s <ludo@HIDDEN> writes:

> =E2=80=9CXen=E2=80=9D, capitalized.

> It would be nice to add a sentence or two about what said utilities do,
> perhaps with a link to upstream documentation if that helps?

> (We use the term =E2=80=9Cpath=E2=80=9D for =E2=80=9Csearch paths=E2=80=
=9D.)

All requested changes to documentation have been made.

P.S. Sorry for double-emailing you Ludo, I'm still figuring out how to
make Emacs, mu4e, debbugs, and everything else play well together.





Last modified: Sun, 12 Jan 2025 05:45:02 UTC

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