GNU bug report logs - #75445
[PATCH 0/7] Add xen-guest-agent and daemon

Previous Next

Package: guix-patches;

Reported by: Karl Hallsby <karl <at> hallsby.com>

Date: Wed, 8 Jan 2025 20:16:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 75445 in the body.
You can then email your comments to 75445 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to ludo <at> gnu.org, maxim.cournoyer <at> gmail.com, guix-patches <at> gnu.org:
bug#75445; Package guix-patches. (Wed, 08 Jan 2025 20:16:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Karl Hallsby <karl <at> hallsby.com>:
New bug report received and forwarded. Copy sent to ludo <at> gnu.org, maxim.cournoyer <at> gmail.com, guix-patches <at> gnu.org. (Wed, 08 Jan 2025 20:16:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Karl Hallsby <karl <at> hallsby.com>
To: guix-patches <at> gnu.org
Cc: Karl Hallsby <karl <at> hallsby.com>
Subject: [PATCH 0/7] Add xen-guest-agent and daemon
Date: Wed,  8 Jan 2025 14:12:48 -0600
This train adds the necessary Rust packages requried to build the
xen-guest-agent package, builds it, and defines a service-type for
running it as a daemon.

The guest agent allows the virtualizing host (Xen) to receive
information about the running OS guest and the host to send graceful
versions of commands to the guest.

The service-type is mutually exclusive with the xe-guest-utilities
service-type and daemon introduced in issue #72249.

Karl Hallsby (7):
  gnu: Add rust-uname-0.1.
  gnu: Add rust-xenstore-sys-0.3
  gnu: Add rust-xenstore-sys-0.2
  gnu: Add rust-xenstore-rs-0.7
  gnu: Add rust-xenstore-rs-0.6
  gnu: Add xen-guest-agent.
  services: Add xen-guest-agent-service-type.

 doc/guix.texi                   |  24 +++++++
 gnu/packages/crates-io.scm      | 112 ++++++++++++++++++++++++++++++++
 gnu/packages/virtualization.scm |  51 +++++++++++++++
 gnu/services/virtualization.scm |  34 +++++++++-
 4 files changed, 220 insertions(+), 1 deletion(-)


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





Information forwarded to efraim <at> flashner.co.il, guix-patches <at> gnu.org:
bug#75445; Package guix-patches. (Wed, 08 Jan 2025 20:20:02 GMT) Full text and rfc822 format available.

Message #8 received at 75445 <at> debbugs.gnu.org (full text, mbox):

From: Karl Hallsby <karl <at> hallsby.com>
To: 75445 <at> debbugs.gnu.org
Cc: Karl Hallsby <karl <at> hallsby.com>
Subject: [PATCH 1/7] gnu: Add rust-uname-0.1.
Date: Wed,  8 Jan 2025 14:18:55 -0600
* gnu/packages/crates-io.scm (rust-uname-0.1): New variable.

Generated by "guix import".

Change-Id: I8ea68f2575742659600754ac932bd86388a6af34
---
 gnu/packages/crates-io.scm | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index b94cc9a60a..f8b74e5d78 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -90523,6 +90523,26 @@ (define-public rust-unarray-0.1
     (description "Utilities for working with uninitialized arrays.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-uname-0.1
+  (package
+    (name "rust-uname")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "uname" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1j1xd1rryml4j1hf07kahva9d5ym8m9jz9z20hfdpr1jrbq8jbxp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/icorderi/rust-uname")
+    (synopsis "Name and information about current kernel")
+    (description
+     "This package provides Name and information about current kernel.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-uncased-0.9
   (package
     (name "rust-uncased")
-- 
2.46.0





Information forwarded to efraim <at> flashner.co.il, guix-patches <at> gnu.org:
bug#75445; Package guix-patches. (Wed, 08 Jan 2025 20:20:03 GMT) Full text and rfc822 format available.

Message #11 received at 75445 <at> debbugs.gnu.org (full text, mbox):

From: Karl Hallsby <karl <at> hallsby.com>
To: 75445 <at> debbugs.gnu.org
Cc: Karl Hallsby <karl <at> hallsby.com>
Subject: [PATCH 2/7] gnu: Add rust-xenstore-sys-0.3
Date: Wed,  8 Jan 2025 14:18:56 -0600
* gnu/packages/crates-io.scm (rust-xenstore-sys-0.3): New variable.

Generated by "guix import".

Change-Id: I91b20f282325f6a1c3548eff981eb5158d982cc1
---
 gnu/packages/crates-io.scm | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index f8b74e5d78..2705b0f42f 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -95556,6 +95556,26 @@ (define-public rust-xdg-home-1
     (description "The user's home directory as per the XDG Specification.")
     (license license:expat)))
 
+(define-public rust-xenstore-sys-0.3
+  (package
+    (name "rust-xenstore-sys")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "xenstore-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "02dpapjj251z3b3qm3xlx71jjs0inbq55l2jcjh8g16yvz1a8r58"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-bindgen" ,rust-bindgen-0.53)
+                       ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (home-page "https://github.com/Wenzel/xenstore-sys")
+    (synopsis "Rust FFI bindings for libxenstore")
+    (description "This package provides Rust FFI bindings for libxenstore.")
+    (license license:gpl3)))
+
 (define-public rust-xflags-macros-0.2
   (package
     (name "rust-xflags-macros")
-- 
2.46.0





Information forwarded to efraim <at> flashner.co.il, guix-patches <at> gnu.org:
bug#75445; Package guix-patches. (Wed, 08 Jan 2025 20:20:03 GMT) Full text and rfc822 format available.

Message #14 received at 75445 <at> debbugs.gnu.org (full text, mbox):

From: Karl Hallsby <karl <at> hallsby.com>
To: 75445 <at> debbugs.gnu.org
Cc: Karl Hallsby <karl <at> hallsby.com>
Subject: [PATCH 4/7] gnu: Add rust-xenstore-rs-0.7
Date: Wed,  8 Jan 2025 14:18:58 -0600
* gnu/packages/crates-io.scm (rust-xenstore-rs-0.7): New variable.

Generated by "guix import".

Change-Id: Id227093e9647716dab92430eb86e7d5bf89daf86
---
 gnu/packages/crates-io.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 42e1f1e9b6..2d7f9515bd 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -95556,6 +95556,31 @@ (define-public rust-xdg-home-1
     (description "The user's home directory as per the XDG Specification.")
     (license license:expat)))
 
+(define-public rust-xenstore-rs-0.7
+  (package
+    (name "rust-xenstore-rs")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "xenstore-rs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "02izqilgfby7g14ndr76fmqrpcgx9q4m1rgky6r7ld5p73i3w0zv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-futures" ,rust-futures-0.3)
+                       ("rust-libc" ,rust-libc-0.2)
+                       ("rust-libloading" ,rust-libloading-0.8)
+                       ("rust-log" ,rust-log-0.4)
+                       ("rust-tokio" ,rust-tokio-1)
+                       ("rust-xenstore-sys" ,rust-xenstore-sys-0.3))
+       #:cargo-development-inputs (("rust-clap" ,rust-clap-4))))
+    (home-page "https://github.com/Wenzel/xenstore")
+    (synopsis "Rust FFI bindings for libxenstore")
+    (description "This package provides Rust FFI bindings for libxenstore.")
+    (license license:gpl3)))
+
 (define-public rust-xenstore-sys-0.3
   (package
     (name "rust-xenstore-sys")
-- 
2.46.0





Information forwarded to efraim <at> flashner.co.il, guix-patches <at> gnu.org:
bug#75445; Package guix-patches. (Wed, 08 Jan 2025 20:20:04 GMT) Full text and rfc822 format available.

Message #17 received at 75445 <at> debbugs.gnu.org (full text, mbox):

From: Karl Hallsby <karl <at> hallsby.com>
To: 75445 <at> debbugs.gnu.org
Cc: Karl Hallsby <karl <at> hallsby.com>
Subject: [PATCH 3/7] gnu: Add rust-xenstore-sys-0.2
Date: Wed,  8 Jan 2025 14:18:57 -0600
* gnu/packages/crates-io.scm (rust-xenstore-sys-0.2): New variable.

Generated by "guix import".

Change-Id: Ifdcf25fb557cc040e42a3029437da645198cedb6
---
 gnu/packages/crates-io.scm | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 2705b0f42f..42e1f1e9b6 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -95576,6 +95576,27 @@ (define-public rust-xenstore-sys-0.3
     (description "This package provides Rust FFI bindings for libxenstore.")
     (license license:gpl3)))
 
+(define-public rust-xenstore-sys-0.2
+  (package
+    (inherit rust-xenstore-sys-0.3)
+    (name "rust-xenstore-sys")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "xenstore-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1xrjy0d3cg9qrznfsfjrgha8si1dvdyfx3g7c76hbb7lnim5vmj7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-bindgen" ,rust-bindgen-0.53)
+                       ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (home-page "https://github.com/Wenzel/xenstore-sys")
+    (synopsis "Rust FFI bindings for libxenstore")
+    (description "This package provides Rust FFI bindings for libxenstore.")
+    (license license:gpl3)))
+
 (define-public rust-xflags-macros-0.2
   (package
     (name "rust-xflags-macros")
-- 
2.46.0





Information forwarded to efraim <at> flashner.co.il, guix-patches <at> gnu.org:
bug#75445; Package guix-patches. (Wed, 08 Jan 2025 20:20:04 GMT) Full text and rfc822 format available.

Message #20 received at 75445 <at> debbugs.gnu.org (full text, mbox):

From: Karl Hallsby <karl <at> hallsby.com>
To: 75445 <at> debbugs.gnu.org
Cc: Karl Hallsby <karl <at> hallsby.com>
Subject: [PATCH 5/7] gnu: Add rust-xenstore-rs-0.6
Date: Wed,  8 Jan 2025 14:18:59 -0600
* gnu/packages/crates-io.scm (rust-xenstore-rs-0.6): New variable.

Change-Id: I11cc6f5f014201c89d7e306b73ca8aa928f7a2cb
---
 gnu/packages/crates-io.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 2d7f9515bd..f3abebeece 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -95581,6 +95581,32 @@ (define-public rust-xenstore-rs-0.7
     (description "This package provides Rust FFI bindings for libxenstore.")
     (license license:gpl3)))
 
+(define-public rust-xenstore-rs-0.6
+  (package
+    (inherit rust-xenstore-rs-0.7)
+    (name "rust-xenstore-rs")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "xenstore-rs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1i8wdif8q2cxbrmcp2jxcqg95a4yfsp1m3j4yldcgad3ksl5l4qs"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-futures" ,rust-futures-0.3)
+                       ("rust-libc" ,rust-libc-0.2)
+                       ("rust-libloading" ,rust-libloading-0.8)
+                       ("rust-log" ,rust-log-0.4)
+                       ("rust-tokio" ,rust-tokio-1)
+                       ("rust-xenstore-sys" ,rust-xenstore-sys-0.2))
+       #:cargo-development-inputs (("rust-clap" ,rust-clap-4))))
+    (home-page "https://github.com/Wenzel/xenstore")
+    (synopsis "Rust FFI bindings for libxenstore")
+    (description "This package provides Rust FFI bindings for libxenstore.")
+    (license license:gpl3)))
+
 (define-public rust-xenstore-sys-0.3
   (package
     (name "rust-xenstore-sys")
-- 
2.46.0





Information forwarded to sharlatanus <at> gmail.com, guix-patches <at> gnu.org:
bug#75445; Package guix-patches. (Wed, 08 Jan 2025 20:20:05 GMT) Full text and rfc822 format available.

Message #23 received at 75445 <at> debbugs.gnu.org (full text, mbox):

From: Karl Hallsby <karl <at> hallsby.com>
To: 75445 <at> debbugs.gnu.org
Cc: Karl Hallsby <karl <at> hallsby.com>
Subject: [PATCH 6/7] gnu: Add xen-guest-agent.
Date: Wed,  8 Jan 2025 14:19:00 -0600
* gnu/packages/virtualization.scm (xen-guest-agent): New variable.

This is intended to replace xe-guest-utilities in the long run. Right now it
is a drop-in replacement.

Change-Id: I6277edc2298c6154d722f7f206e7955222228710
---
 gnu/packages/virtualization.scm | 51 +++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 3b162474af..95e36b7d1b 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -79,6 +79,7 @@ (define-module (gnu packages virtualization)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages containers)
   #:use-module (gnu packages cpio)
+  #:use-module (gnu packages crates-io)
   #:use-module (gnu packages cross-base)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages cryptsetup)
@@ -119,6 +120,7 @@ (define-module (gnu packages virtualization)
   #:use-module (gnu packages libbsd)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages man)
@@ -160,6 +162,7 @@ (define-module (gnu packages virtualization)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix build-system cargo)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
@@ -2860,6 +2863,54 @@ (define-public xe-guest-utilities
 about events that change the virtualized hardware, such as hotplugging.")
     (license license:bsd-2)))
 
+(define-public xen-guest-agent
+  (package
+    (name "xen-guest-agent")
+    (version "0.4.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/xen-project/xen-guest-agent")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "1ab6mgrvnd49m0ay9fbfyd02xaf3qvkwhyyavra4a7wpz0brg54h"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:install-source? #f
+       #:cargo-inputs (("rust-futures" ,rust-futures-0.3)
+                       ("rust-libc" ,rust-libc-0.2)
+                       ("rust-tokio" ,rust-tokio-1)
+                       ("rust-netlink-packet-core" ,rust-netlink-packet-core-0.7)
+                       ("rust-netlink-packet-route" ,rust-netlink-packet-route-0.18)
+                       ("rust-netlink-proto" ,rust-netlink-proto-0.11)
+                       ("rust-rtnetlink" ,rust-rtnetlink-0.14)
+                       ("rust-async-stream" ,rust-async-stream-0.3)
+                       ("rust-os-info" ,rust-os-info-3)
+                       ("rust-pnet-datalink" ,rust-pnet-datalink-0.34)
+                       ("rust-pnet-base" ,rust-pnet-base-0.34)
+                       ("rust-ipnetwork" ,rust-ipnetwork-0.17)
+                       ("rust-log" ,rust-log-0.4)
+                       ("rust-env-logger" ,rust-env-logger-0.10)
+                       ("rust-clap" ,rust-clap-4)
+                       ("rust-xenstore-rs" ,rust-xenstore-rs-0.6)
+                       ;; Unix-specific dependencies
+                       ("rust-uname" ,rust-uname-0.1)
+                       ("rust-syslog" ,rust-syslog-6)
+                       ("rust-sysctl" ,rust-sysctl-0.5))))
+    (native-inputs
+     (list pkg-config
+           xen ; Pull in Xen for libxenstore
+           clang))
+    (home-page "https://gitlab.com/xen-project/xen-guest-agent")
+    (synopsis "Provides guest VM information to hosting Xen hypervisor")
+    (description "The agent gathers some guest information, and writes them to
+xenstore so tooling in dom0 can read it.  The default behavior is to be
+compatible with the XAPI toolstack as currently used in XCP-ng and Citrix
+Hypervisor/Xenserver, and thus roughly follow what @code{xe-guest-utilities}
+is doing.")
+    (license license:agpl3)))
+
 (define-public osinfo-db-tools
   (package
     (name "osinfo-db-tools")
-- 
2.46.0





Information forwarded to ludo <at> gnu.org, maxim.cournoyer <at> gmail.com, guix-patches <at> gnu.org:
bug#75445; Package guix-patches. (Wed, 08 Jan 2025 20:20:05 GMT) Full text and rfc822 format available.

Message #26 received at 75445 <at> debbugs.gnu.org (full text, mbox):

From: Karl Hallsby <karl <at> hallsby.com>
To: 75445 <at> debbugs.gnu.org
Cc: Karl Hallsby <karl <at> hallsby.com>
Subject: [PATCH 7/7] services: Add xen-guest-agent-service-type.
Date: Wed,  8 Jan 2025 14:19:01 -0600
* gnu/services/virtualization.scm (xen-guest-agent-configuration,
  xen-guest-agent-service-type): New variables.
* doc/guix.texi: Document them.

Change-Id: Id1b1f4fc2b193d73f4401e74a214222dfe1b6ea7
---
 doc/guix.texi                   | 24 +++++++++++++++++++++++
 gnu/services/virtualization.scm | 34 ++++++++++++++++++++++++++++++++-
 2 files changed, 57 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index ee827717a1..89f153146a 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -37365,6 +37365,30 @@ Virtualization Services
 @end table
 @end deftp
 
+@code{xe-guest-utilities} is the standard guest utilities used for Xen
+guests.  More recently the Xen Project has been working to develop
+@code{xen-guest-agent}, a modern drop-in replacement for
+@code{xe-guest-utilities}.  While they nearly have feature-parity,
+@code{xen-guest-agent} currently lacks some of the features of its
+predecessor, namely disk metrics and ``PV drivers version''.
+
+@defvar xen-guest-agent-service-type
+Service type for the Xen guest agent service.
+@end defvar
+
+@deftp {Data Type} xen-guest-agent-configuration
+Configuration for the @code{xen-guest-agent} service.
+
+@table @asis
+@item @code{package} (default: @code{xen-guest-agent})
+The Xen guest agent package to use.
+@end table
+@end deftp
+
+@quotation Warning
+@code{xe-guest-utilities} and @code{xen-guest-agent} are mutually exclusive.
+@end quotation
+
 
 @anchor{build-vm}
 @subsubheading Virtual Build Machines
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index 874abcd73f..b697ae9526 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -113,7 +113,9 @@ (define-module (gnu services virtualization)
             qemu-guest-agent-service-type
 
             xe-guest-utilities-configuration
-            xe-guest-utilities-service-type))
+            xe-guest-utilities-service-type
+            xen-guest-agent-configuration
+            xen-guest-agent-service-type))
 
 (define (uglify-field-name field-name)
   (let ((str (symbol->string field-name)))
@@ -1083,6 +1085,36 @@ (define xe-guest-utilities-service-type
    (default-value (xe-guest-utilities-configuration))
    (description "Run the Xen guest management utilities.")))
 
+(define-configuration/no-serialization xen-guest-agent-configuration
+  (package
+    (package xen-guest-agent)
+    "Xen guest agent package."))
+
+(define (generate-xen-guest-agent-documentation)
+  "Generate documentation for xen-guest-agent-configuration fields"
+  (generate-documentation
+   `((xen-guest-agent-configuration ,xen-guest-agent-configuration-fields))
+   'xen-guest-agent-configuration))
+
+(define (xen-guest-agent-shepherd-service config)
+  (list
+   (shepherd-service
+    (provision '(xen-guest-agent))
+    (requirement '(networking user-processes udev))
+    (documentation "Run the Xen guest management agent.")
+    (start #~(make-forkexec-constructor
+              (list #$(file-append xen-guest-agent "/bin/xen-guest-agent"))))
+    (stop #~(make-kill-destructor)))))
+
+(define xen-guest-agent-service-type
+  (service-type
+   (name 'xen-guest-agent)
+   (extensions
+    (list (service-extension shepherd-root-service-type
+                             xen-guest-agent-shepherd-service)))
+   (default-value (xen-guest-agent-configuration))
+   (description "Run the Xen guest management utilities.")))
+
 
 ;;;
 ;;; Secrets for guest VMs.
-- 
2.46.0





Information forwarded to guix-patches <at> gnu.org:
bug#75445; Package guix-patches. (Thu, 09 Jan 2025 15:11:02 GMT) Full text and rfc822 format available.

Message #29 received at 75445 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Karl Hallsby <karl <at> hallsby.com>
Cc: 75445 <at> debbugs.gnu.org, Ludovic Courtès <ludo <at> gnu.org>,
 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Subject: Re: [bug#75445] [PATCH 0/7] Add xen-guest-agent and daemon
Date: Thu, 9 Jan 2025 17:10:20 +0200
[Message part 1 (text/plain, inline)]
I pushed 3 of the 5 rust- packages (not the 2 that weren't actually
needed) and xen-guest-agent, and I'll let you all handle the service.

On Wed, Jan 08, 2025 at 02:12:48PM -0600, Karl Hallsby via Guix-patches via wrote:
> This train adds the necessary Rust packages requried to build the
> xen-guest-agent package, builds it, and defines a service-type for
> running it as a daemon.
> 
> The guest agent allows the virtualizing host (Xen) to receive
> information about the running OS guest and the host to send graceful
> versions of commands to the guest.
> 
> The service-type is mutually exclusive with the xe-guest-utilities
> service-type and daemon introduced in issue #72249.
> 
> Karl Hallsby (7):
>   gnu: Add rust-uname-0.1.
>   gnu: Add rust-xenstore-sys-0.3
>   gnu: Add rust-xenstore-sys-0.2
>   gnu: Add rust-xenstore-rs-0.7
>   gnu: Add rust-xenstore-rs-0.6
>   gnu: Add xen-guest-agent.
>   services: Add xen-guest-agent-service-type.
> 
>  doc/guix.texi                   |  24 +++++++
>  gnu/packages/crates-io.scm      | 112 ++++++++++++++++++++++++++++++++
>  gnu/packages/virtualization.scm |  51 +++++++++++++++
>  gnu/services/virtualization.scm |  34 +++++++++-
>  4 files changed, 220 insertions(+), 1 deletion(-)
> 
> 
> base-commit: 4eaeff997907bc1b67884a6dc087756a50f175e2
> prerequisite-patch-id: daabcb5995f03ed867a27648e973e1c2203f2bc9
> prerequisite-patch-id: 10ca9a0912c5ab863ed39f14959581e75962ada9
> -- 
> 2.46.0
> 

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#75445; Package guix-patches. (Mon, 17 Feb 2025 05:01:02 GMT) Full text and rfc822 format available.

Message #32 received at 75445 <at> debbugs.gnu.org (full text, mbox):

From: "Raven Hallsby" <karl <at> hallsby.com>
To: 75445 <at> debbugs.gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>,
 Efraim Flashner <efraim <at> flashner.co.il>,
 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Subject: Re: [bug#75445] [PATCH 0/7] Add xen-guest-agent and daemon
Date: Sun, 16 Feb 2025 23:00:41 -0600
> ... and I'll let you all handle the service.

Just to keep this moving, are there any edits I need to make to get the
service-type merged? It is significantly simpler than its
xe-guest-utilities cousin, because it supports fewer features.

Efraim Flashner <efraim <at> flashner.co.il> writes:

> I pushed 3 of the 5 rust- packages (not the 2 that weren't actually
> needed) and xen-guest-agent, and I'll let you all handle the service.
>
> On Wed, Jan 08, 2025 at 02:12:48PM -0600, Karl Hallsby via Guix-patches via wrote:
>> This train adds the necessary Rust packages requried to build the
>> xen-guest-agent package, builds it, and defines a service-type for
>> running it as a daemon.
>>
>> The guest agent allows the virtualizing host (Xen) to receive
>> information about the running OS guest and the host to send graceful
>> versions of commands to the guest.
>>
>> The service-type is mutually exclusive with the xe-guest-utilities
>> service-type and daemon introduced in issue #72249.
>>
>> Karl Hallsby (7):
>>   gnu: Add rust-uname-0.1.
>>   gnu: Add rust-xenstore-sys-0.3
>>   gnu: Add rust-xenstore-sys-0.2
>>   gnu: Add rust-xenstore-rs-0.7
>>   gnu: Add rust-xenstore-rs-0.6
>>   gnu: Add xen-guest-agent.
>>   services: Add xen-guest-agent-service-type.
>>
>>  doc/guix.texi                   |  24 +++++++
>>  gnu/packages/crates-io.scm      | 112 ++++++++++++++++++++++++++++++++
>>  gnu/packages/virtualization.scm |  51 +++++++++++++++
>>  gnu/services/virtualization.scm |  34 +++++++++-
>>  4 files changed, 220 insertions(+), 1 deletion(-)
>>
>>
>> base-commit: 4eaeff997907bc1b67884a6dc087756a50f175e2
>> prerequisite-patch-id: daabcb5995f03ed867a27648e973e1c2203f2bc9
>> prerequisite-patch-id: 10ca9a0912c5ab863ed39f14959581e75962ada9
>> --
>> 2.46.0
>>

--
Raven Hallsby




Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Fri, 21 Feb 2025 13:32:04 GMT) Full text and rfc822 format available.

Notification sent to Karl Hallsby <karl <at> hallsby.com>:
bug acknowledged by developer. (Fri, 21 Feb 2025 13:32:05 GMT) Full text and rfc822 format available.

Message #37 received at 75445-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Karl Hallsby <karl <at> hallsby.com>
Cc: 75445-done <at> debbugs.gnu.org, Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Subject: Re: [bug#75445] [PATCH 7/7] services: Add
 xen-guest-agent-service-type.
Date: Fri, 21 Feb 2025 14:31:47 +0100
Karl Hallsby <karl <at> hallsby.com> skribis:

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

Applied, thanks!

As mentioned before, it would be great if you could see what it would
take to write a system test (and thus, a way to boot Xen) so that these
services don’t bitrot.

Thanks,
Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#75445; Package guix-patches. (Sun, 23 Feb 2025 03:30:02 GMT) Full text and rfc822 format available.

Message #40 received at 75445 <at> debbugs.gnu.org (full text, mbox):

From: Raven Hallsby <karl <at> hallsby.com>
To: 75445 <at> debbugs.gnu.org
Subject: Re: bug#75445: closed (Re: [bug#75445] [PATCH 7/7] services: Add
 xen-guest-agent-service-type.)
Date: Sat, 22 Feb 2025 21:29:04 -0600
> Applied, thanks!

Excellent! Thanks!

> As mentioned before, it would be great if you could see what it would
> take to write a system test (and thus, a way to boot Xen) so that these
> services don’t bitrot.

I agree. Looking at the system-level marionette virtual machine
infrastructure, it looks like the only supported hypervisor is QEMU &
Linux's KVM. Xen fundamentally behaves differently than QEMU & KVM, so
getting system tests working might be difficult.

I have been toying with the idea that the marionette VM could create a
fake Xen device entry in /dev/xen... socket(?) that we can pull the
known sent data out of. This would workaround the Linux VM expecting Xen
running underneath it. Does this seem like a reasonable work-around?

Or should we investigate abstracting the virtualization backend to
support running a Guix VM on both QEMU/KVM and Xen? This would give us
another way to verify reproducibility by running system tests inside a
different hypervisor.

help-debbugs <at> gnu.org (GNU bug Tracking System) writes:

> Your bug report
>
> #75445: [PATCH 0/7] Add xen-guest-agent and daemon
>
> which was filed against the guix-patches package, has been closed.
>
> The explanation is attached below, along with your original report.
> If you require more details, please reply to 75445 <at> debbugs.gnu.org.
>
> --
> 75445: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=75445
> GNU Bug Tracking System
> Contact help-debbugs <at> gnu.org with problems
>
> From: Ludovic Courtès <ludo <at> gnu.org>
> Subject: Re: [bug#75445] [PATCH 7/7] services: Add
>  xen-guest-agent-service-type.
> To: Karl Hallsby <karl <at> hallsby.com>
> Cc: 75445-done <at> debbugs.gnu.org, Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
> Date: Fri, 21 Feb 2025 14:31:47 +0100 (1 day, 13 hours, 51 minutes ago)
>
> Karl Hallsby <karl <at> hallsby.com> skribis:
>
>> * gnu/services/virtualization.scm (xen-guest-agent-configuration,
>>   xen-guest-agent-service-type): New variables.
>> * doc/guix.texi: Document them.
>>
>> Change-Id: Id1b1f4fc2b193d73f4401e74a214222dfe1b6ea7
>

>
>
> Thanks,
> Ludo’.
>
> ----------
>
> From: Karl Hallsby <karl <at> hallsby.com>
> Subject: [PATCH 0/7] Add xen-guest-agent and daemon
> To: guix-patches <at> gnu.org
> Cc: Karl Hallsby <karl <at> hallsby.com>
> Date: Wed,  8 Jan 2025 14:12:48 -0600
> Date: Wed,  8 Jan 2025 14:12:48 -0600 (6 weeks, 3 days, 7 hours ago)
>
> This train adds the necessary Rust packages requried to build the
> xen-guest-agent package, builds it, and defines a service-type for
> running it as a daemon.
>
> The guest agent allows the virtualizing host (Xen) to receive
> information about the running OS guest and the host to send graceful
> versions of commands to the guest.
>
> The service-type is mutually exclusive with the xe-guest-utilities
> service-type and daemon introduced in issue #72249.
>
> Karl Hallsby (7):
>   gnu: Add rust-uname-0.1.
>   gnu: Add rust-xenstore-sys-0.3
>   gnu: Add rust-xenstore-sys-0.2
>   gnu: Add rust-xenstore-rs-0.7
>   gnu: Add rust-xenstore-rs-0.6
>   gnu: Add xen-guest-agent.
>   services: Add xen-guest-agent-service-type.
>
>  doc/guix.texi                   |  24 +++++++
>  gnu/packages/crates-io.scm      | 112 ++++++++++++++++++++++++++++++++
>  gnu/packages/virtualization.scm |  51 +++++++++++++++
>  gnu/services/virtualization.scm |  34 +++++++++-
>  4 files changed, 220 insertions(+), 1 deletion(-)
>
>
> base-commit: 4eaeff997907bc1b67884a6dc087756a50f175e2
> prerequisite-patch-id: daabcb5995f03ed867a27648e973e1c2203f2bc9
> prerequisite-patch-id: 10ca9a0912c5ab863ed39f14959581e75962ada9

--
Raven Hallsby




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 23 Mar 2025 11:24:35 GMT) Full text and rfc822 format available.

This bug report was last modified 87 days ago.

Previous Next


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