diff options
Diffstat (limited to 'pkgs/applications/virtualization/open-vm-tools/default.nix')
-rw-r--r-- | pkgs/applications/virtualization/open-vm-tools/default.nix | 138 |
1 files changed, 101 insertions, 37 deletions
diff --git a/pkgs/applications/virtualization/open-vm-tools/default.nix b/pkgs/applications/virtualization/open-vm-tools/default.nix index 7755795306a..66c6086aed0 100644 --- a/pkgs/applications/virtualization/open-vm-tools/default.nix +++ b/pkgs/applications/virtualization/open-vm-tools/default.nix @@ -1,8 +1,41 @@ -{ stdenv, lib, fetchFromGitHub, makeWrapper, autoreconfHook -, bash, fuse3, libmspack, openssl, pam, xercesc, icu, libdnet, procps, libtirpc, rpcsvc-proto -, libX11, libXext, libXinerama, libXi, libXrender, libXrandr, libXtst, libxcrypt -, pkg-config, glib, gdk-pixbuf-xlib, gtk3, gtkmm3, iproute2, dbus, systemd, which -, libdrm, udev, util-linux +{ stdenv +, lib +, fetchFromGitHub +, makeWrapper +, autoreconfHook +, bash +, fuse3 +, libmspack +, openssl +, pam +, xercesc +, icu +, libdnet +, procps +, libtirpc +, rpcsvc-proto +, libX11 +, libXext +, libXinerama +, libXi +, libXrender +, libXrandr +, libXtst +, libxcrypt +, libxml2 +, pkg-config +, glib +, gdk-pixbuf-xlib +, gtk3 +, gtkmm3 +, iproute2 +, dbus +, systemd +, which +, libdrm +, udev +, util-linux +, xmlsec , withX ? true }: @@ -11,9 +44,9 @@ stdenv.mkDerivation rec { version = "12.1.0"; src = fetchFromGitHub { - owner = "vmware"; - repo = "open-vm-tools"; - rev = "stable-${version}"; + owner = "vmware"; + repo = "open-vm-tools"; + rev = "stable-${version}"; hash = "sha256-PgrLu0Bm9Vom5WNl43312QFWKojdXDAGn3Nvj4hzPrQ="; }; @@ -21,46 +54,77 @@ stdenv.mkDerivation rec { outputs = [ "out" "dev" ]; - nativeBuildInputs = [ autoreconfHook makeWrapper pkg-config ]; - buildInputs = [ fuse3 glib icu libdnet libdrm libmspack libtirpc libxcrypt openssl pam procps rpcsvc-proto udev xercesc ] - ++ lib.optionals withX [ gdk-pixbuf-xlib gtk3 gtkmm3 libX11 libXext libXinerama libXi libXrender libXrandr libXtst ]; - - postPatch = '' - sed -i 's,etc/vmware-tools,''${prefix}/etc/vmware-tools,' Makefile.am - sed -i 's,^confdir = ,confdir = ''${prefix},' scripts/Makefile.am - sed -i 's,usr/bin,''${prefix}/usr/bin,' scripts/Makefile.am - sed -i 's,etc/vmware-tools,''${prefix}/etc/vmware-tools,' services/vmtoolsd/Makefile.am - sed -i 's,$(PAM_PREFIX),''${prefix}/$(PAM_PREFIX),' services/vmtoolsd/Makefile.am - - # Avoid a glibc >= 2.25 deprecation warning that gets fatal via -Werror. - sed 1i'#include <sys/sysmacros.h>' -i lib/wiper/wiperPosix.c - - # Make reboot work, shutdown is not in /sbin on NixOS - sed -i 's,/sbin/shutdown,shutdown,' lib/system/systemLinux.c + nativeBuildInputs = [ + autoreconfHook + makeWrapper + pkg-config + ]; - # Fix paths to fuse3 (we do not use fuse2 so that is not modified) - sed -i 's,/bin/fusermount3,${fuse3}/bin/fusermount3,' vmhgfs-fuse/config.c + buildInputs = [ + fuse3 + glib + icu + libdnet + libdrm + libmspack + libtirpc + libxcrypt + libxml2 + openssl + pam + procps + rpcsvc-proto + udev + xercesc + xmlsec + ] ++ lib.optionals withX [ + gdk-pixbuf-xlib + gtk3 + gtkmm3 + libX11 + libXext + libXinerama + libXi + libXrender + libXrandr + libXtst + ]; - substituteInPlace services/plugins/vix/foundryToolsDaemon.c \ - --replace "/usr/bin/vmhgfs-fuse" "${placeholder "out"}/bin/vmhgfs-fuse" \ - --replace "/bin/mount" "${util-linux}/bin/mount" + postPatch = '' + sed -i Makefile.am \ + -e 's,etc/vmware-tools,''${prefix}/etc/vmware-tools,' + sed -i scripts/Makefile.am \ + -e 's,^confdir = ,confdir = ''${prefix},' \ + -e 's,usr/bin,''${prefix}/usr/bin,' + sed -i services/vmtoolsd/Makefile.am \ + -e 's,etc/vmware-tools,''${prefix}/etc/vmware-tools,' \ + -e 's,$(PAM_PREFIX),''${prefix}/$(PAM_PREFIX),' + sed -i vgauth/service/Makefile.am \ + -e 's,/etc/vmware-tools/vgauth/schemas,''${prefix}/etc/vmware-tools/vgauth/schemas,' \ + -e 's,$(DESTDIR)/etc/vmware-tools/vgauth.conf,''${prefix}/etc/vmware-tools/vgauth.conf,' + + # don't abort on any warning + sed -i 's,CFLAGS="$CFLAGS -Werror",,' configure.ac + + # Make reboot work, shutdown is not in /sbin on NixOS + sed -i 's,/sbin/shutdown,shutdown,' lib/system/systemLinux.c + + # Fix paths to fuse3 (we do not use fuse2 so that is not modified) + sed -i 's,/bin/fusermount3,${fuse3}/bin/fusermount3,' vmhgfs-fuse/config.c + + substituteInPlace services/plugins/vix/foundryToolsDaemon.c \ + --replace "/usr/bin/vmhgfs-fuse" "${placeholder "out"}/bin/vmhgfs-fuse" \ + --replace "/bin/mount" "${util-linux}/bin/mount" ''; configureFlags = [ "--without-kernel-modules" - "--without-xmlsecurity" "--with-udev-rules-dir=${placeholder "out"}/lib/udev/rules.d" "--with-fuse=fuse3" ] ++ lib.optional (!withX) "--without-x"; enableParallelBuilding = true; - NIX_CFLAGS_COMPILE = builtins.toString [ - # fix build with gcc9 - "-Wno-error=address-of-packed-member" - "-Wno-error=format-overflow" - ]; - preConfigure = '' mkdir -p ${placeholder "out"}/lib/udev/rules.d ''; @@ -79,7 +143,7 @@ stdenv.mkDerivation rec { better management of, and seamless user interactions with, guests. ''; license = licenses.gpl2; - platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" ]; + platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" ]; maintainers = with maintainers; [ joamaki ]; }; } |