summary refs log tree commit diff
path: root/pkgs/applications/virtualization/open-vm-tools/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/virtualization/open-vm-tools/default.nix')
-rw-r--r--pkgs/applications/virtualization/open-vm-tools/default.nix138
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 ];
   };
 }