On 2023-09-17 12:06, Sharlatan Hellseher wrote: > * gnu/packages/virtualization.scm (vmware-open-vm-tools, > vmware-open-vm-tools-gtk): New variables. > --- > gnu/packages/virtualization.scm | 154 ++++++++++++++++++++++++++++++++ > 1 file changed, 154 insertions(+) > > diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm > index f5bdedd45e..04ed253e8a 100644 > --- a/gnu/packages/virtualization.scm > +++ b/gnu/packages/virtualization.scm > @@ -30,6 +30,7 @@ > ;;; Copyright © 2022 Zhu Zihao > ;;; Copyright © 2023 Juliana Sims > ;;; Copyright © 2023 Ahmad Draidi > +;;; Copyright © 2023 Sharlatan Hellseher > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -65,6 +66,7 @@ (define-module (gnu packages virtualization) > #:use-module (gnu packages compression) > #:use-module (gnu packages containers) > #:use-module (gnu packages cross-base) > + #:use-module (gnu packages crypto) > #:use-module (gnu packages cryptsetup) > #:use-module (gnu packages curl) > #:use-module (gnu packages cyrus-sasl) > @@ -1722,6 +1724,158 @@ (define-public virt-manager > domains, their live performance and resource utilization statistics.") > (license license:gpl2+))) > > +(define-public vmware-open-vm-tools > + (package > + (name "vmware-open-vm-tools") > + (version "12.3.0") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/vmware/open-vm-tools") > + (commit (string-append "stable-" version)))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 "1hbimhady0v1kd45azknl1lgzgldhgdjd7bj540rn3y4cai5cnk1")))) > + (build-system gnu-build-system) > + (arguments > + (list > + #:configure-flags > + #~(list "--with-fuse=fuse3" > + "--without-kernel-modules" > + "--without-x" > + (string-append > + "--with-udev-rules-dir=" #$output "/lib/udev/rules.d")) > + ;; TODO: Add iproute2 dbus which commands wrap. > + #:phases > + #~(modify-phases %standard-phases > + (add-after 'unpack 'chdir > + (lambda _ > + (chdir "open-vm-tools"))) > + (replace 'bootstrap > + (lambda _ > + (system* "autoreconf" "-if"))) > + (add-after 'bootstrap 'patch-paths > + (lambda _ > + (substitute* "Makefile.am" > + (("/etc/vmware-tools/") > + (string-append #$output "/etc/vmware-tools/"))) > + (substitute* "scripts/Makefile.am" > + (("/etc/vmware-tools") > + (string-append #$output "/etc/vmware-tools")) > + (("/usr/bin") > + (string-append #$output "/bin"))) > + (substitute* "services/vmtoolsd/Makefile.am" > + (("/etc/vmware-tools") > + (string-append #$output "/etc/vmware-tools")) > + (("\\$\\(PAM_PREFIX\\)") > + (string-append #$output "/$(PAM_PREFIX)"))) > + (substitute* "vgauth/service/Makefile.am" > + (("/etc/vmware-tools/vgauth/schemas") > + (string-append #$output "/etc/vmware-tools/vgauth/schemas")) > + (("etc/vmware-tools/vgauth.conf") > + (string-append #$output "/etc/vmware-tools/vgauth.conf"))) > + (substitute* "vmhgfs-fuse/config.c" > + (("/bin/fusermount3") > + (string-append > + #$(this-package-input "fuse") "/bin/fusermount3"))) > + ;; XXX: This part might need more testing with shutdown and halt > + ;; commands provided by Shepherd. > + (substitute* "lib/system/systemLinux.c" > + (("/sbin/shutdown") > + (string-append > + #$(this-package-input "shepherd") "/sbin/shutdown")) > + (("/bin/reboot") > + (string-append > + #$(this-package-input "shepherd") "/sbin/reboot"))) > + (substitute* "services/plugins/vix/foundryToolsDaemon.c" > + (("/bin/mount") > + (string-append > + #$(this-package-input "util-linux") "/bin/mount")) > + (("/usr/bin/vmhgfs-fuse") > + (string-append #$output "/bin/vmhgfs-fuse")))))))) > + (native-inputs > + (list `(,glib "bin") ; for glib-genmarshal > + autoconf > + automake > + libltdl > + libtool > + pkg-config)) > + (inputs > + (list eudev > + fuse > + glib > + xmlsec > + libmspack > + ;; libdnet ; Not packed > + libtirpc > + libxcrypt > + libxml2 > + linux-pam > + openssl > + procps > + rpcsvc-proto > + shepherd ;for 'halt' and 'reboot', invoked from VMWare host. > + util-linux > + xmlsec)) > + (home-page "https://github.com/vmware/open-vm-tools") > + (synopsis "Tools for VMWare guest VM to enhance host-guest integration") > + (description > + "@code{open-vm-tools} is a set of services and modules that enable several > +features in VMware products for better management of, and seamless user > +interactions with, guests. It includes kernel modules for enhancing the > +performance of virtual machines running Linux or other VMware supported Unix > +like guest operating systems. The package built without kernel modules, so I remove this sentence from description. > + > +@code{open-vm-tools} enables the following features in VMware products: > + > +@itemize > +@item The ability to perform virtual machine power operations gracefully. > +@item Execution of VMware provided or user configured scripts in guests during > +various power operations. > +@item The ability to run programs, commands and file system operation in guests > +to enhance guest automation. > +@item Authentication for guest operations. > +@item Periodic collection of network, disk, and memory usage information from > +the guest. > +@item Generation of heartbeat from guests to hosts so VMware's HA solution can > +determine guests' availability. > +@item Clock synchronization between guests and hosts or client desktops. > +@item Quiescing guest file systems to allow hosts to capture > +file-system-consistent guest snapshots. > +@item Execution of pre-freeze and post-thaw scripts while quiescing guest file > +systems. > +@item The ability to customize guest operating systems immediately after > +powering on virtual machines. > +@item Enabling shared folders between host and guest file systems on VMware > +Workstation and VMware Fusion. > +@item Copying and pasting text, graphics, and files between guests and hosts or > +client desktops. > +@end itemize") > + (license license:gpl2))) > + > +(define-public vmware-open-vm-tools-gtk > + (package/inherit vmware-open-vm-tools > + (name "vmware-open-vm-tools-gtk") > + (inputs > + (modify-inputs (package-inputs vmware-open-vm-tools) > + (prepend gdk-pixbuf-xlib > + gtk+ > + gtkmm-3 > + libdrm > + libx11 > + libxext > + libxi > + libxinerama > + libxrandr > + libxrender > + libxtst))) > + (arguments > + (substitute-keyword-arguments (package-arguments vmware-open-vm-tools) > + ((#:configure-flags flags) > + #~(delete "--without-x" #$flags)))) > + (description "This package provides a GTK+ support for @code{open-vm-tools}."))) > + > (define-public criu > (package > (name "criu") Thank you very much for the patches! Applied, pushed. -- Best regards, Andrew Tropin