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
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
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
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
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
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
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.
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
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.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.