Received: (at 72249) by debbugs.gnu.org; 11 Jan 2025 21:46:11 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 11 16:46:11 2025 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> To: 72249 <at> debbugs.gnu.org Subject: Re: [bug#72249] [PATCH 2/2] services: Add xe-guest-utilities-service-type. In-Reply-To: <87plkwp0df.fsf@HIDDEN> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?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-Debbugs-Envelope-To: 72249 Cc: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN> 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.
guix-patches@HIDDEN
:bug#72249
; Package guix-patches
.
Full text available.Received: (at 72249) by debbugs.gnu.org; 10 Jan 2025 07:01:24 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 10 02:01:24 2025 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> To: 72249 <at> debbugs.gnu.org Subject: [PATCH] services: Add xe-guest-utilities-service-type. 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 X-Debbugs-Cc: Ludovic Courtès <ludo@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN> Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 72249 Cc: Karl Hallsby <karl@HIDDEN> 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
ludo@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN
:bug#72249
; Package guix-patches
.
Full text available.Received: (at 72249) by debbugs.gnu.org; 9 Jan 2025 13:45:13 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 09 08:45:13 2025 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: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: Karl Hallsby <karl@HIDDEN> Subject: Re: [bug#72249] [PATCH 2/2] services: Add xe-guest-utilities-service-type. 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=2C?= 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-Debbugs-Envelope-To: 72249 Cc: 72249 <at> debbugs.gnu.org, Maxim Cournoyer <maxim.cournoyer@HIDDEN> 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.
guix-patches@HIDDEN
:bug#72249
; Package guix-patches
.
Full text available.Received: (at 72249) by debbugs.gnu.org; 8 Jan 2025 20:10:46 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 08 15:10:46 2025 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> To: 72249 <at> debbugs.gnu.org Subject: [PATCH 2/2] services: Add xe-guest-utilities-service-type. 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 X-Debbugs-Cc: Ludovic Courtès <ludo@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN> Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 72249 Cc: Karl Hallsby <karl@HIDDEN> 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
ludo@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN
:bug#72249
; Package guix-patches
.
Full text available.Received: (at 72249) by debbugs.gnu.org; 8 Jan 2025 20:10:43 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 08 15:10:43 2025 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> To: 72249 <at> debbugs.gnu.org Subject: [PATCH 1/2] gnu: Add xe-guest-utilities. 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 X-Debbugs-Cc: Sharlatan Hellseher <sharlatanus@HIDDEN> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 72249 Cc: Karl Hallsby <karl@HIDDEN> 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
sharlatanus@HIDDEN, guix-patches@HIDDEN
:bug#72249
; Package guix-patches
.
Full text available.Received: (at 72249) by debbugs.gnu.org; 23 Jul 2024 05:24:02 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jul 23 01:24:02 2024 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> To: 72249 <at> debbugs.gnu.org Subject: [PATCH 2/2] services: Add xe-guest-utilities-service-type. 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 X-Debbugs-Cc: Florian Pelz <pelzflorian@HIDDEN>, Ludovic Courtès <ludo@HIDDEN>, Matthew Trzcinski <matt@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN> Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 72249 Cc: Karl Hallsby <karl@HIDDEN> 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
pelzflorian@HIDDEN, ludo@HIDDEN, matt@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN
:bug#72249
; Package guix-patches
.
Full text available.Received: (at 72249) by debbugs.gnu.org; 23 Jul 2024 05:23:57 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jul 23 01:23:57 2024 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> To: 72249 <at> debbugs.gnu.org Subject: [PATCH 1/2] gnu: Add xe-guest-utilities. 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-Debbugs-Envelope-To: 72249 Cc: Karl Hallsby <karl@HIDDEN> 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
guix-patches@HIDDEN
:bug#72249
; Package guix-patches
.
Full text available.Received: (at submit) by debbugs.gnu.org; 23 Jul 2024 05:15:16 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jul 23 01:15:16 2024 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> To: guix-patches@HIDDEN Subject: [PATCH 0/2] Add xe-guest-utilities and daemon 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 X-Debbugs-Cc: Florian Pelz <pelzflorian@HIDDEN>, Ludovic Courtès <ludo@HIDDEN>, Matthew Trzcinski <matt@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN> 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-Debbugs-Envelope-To: submit Cc: Karl Hallsby <karl@HIDDEN> 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
Karl Hallsby <karl@HIDDEN>
:pelzflorian@HIDDEN, ludo@HIDDEN, matt@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN
.
Full text available.pelzflorian@HIDDEN, ludo@HIDDEN, matt@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN
:bug#72249
; Package guix-patches
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.