fork
Configure Feed
Select the types of activity you want to include in your feed.
lol
fork
Configure Feed
Select the types of activity you want to include in your feed.
1{ stdenv
2, lib
3, fetchFromGitHub
4, makeWrapper
5, autoreconfHook
6, bash
7, fuse3
8, libmspack
9, openssl
10, pam
11, xercesc
12, icu
13, libdnet
14, procps
15, libtirpc
16, rpcsvc-proto
17, libX11
18, libXext
19, libXinerama
20, libXi
21, libXrender
22, libXrandr
23, libXtst
24, libxcrypt
25, libxml2
26, pkg-config
27, glib
28, gdk-pixbuf-xlib
29, gtk3
30, gtkmm3
31, iproute2
32, dbus
33, systemd
34, which
35, libdrm
36, udev
37, util-linux
38, xmlsec
39, withX ? true
40}:
41
42stdenv.mkDerivation (finalAttrs: {
43 pname = "open-vm-tools";
44 version = "12.3.5";
45
46 src = fetchFromGitHub {
47 owner = "vmware";
48 repo = "open-vm-tools";
49 rev = "stable-${finalAttrs.version}";
50 hash = "sha256-OuESPenXVDKLckIZ3sQCtQXZXCL6xSLZOxZWVEX2XMk=";
51 };
52
53 sourceRoot = "${finalAttrs.src.name}/open-vm-tools";
54
55 outputs = [ "out" "dev" ];
56
57 nativeBuildInputs = [
58 autoreconfHook
59 makeWrapper
60 pkg-config
61 ];
62
63 buildInputs = [
64 fuse3
65 glib
66 icu
67 libdnet
68 libdrm
69 libmspack
70 libtirpc
71 libxcrypt
72 libxml2
73 openssl
74 pam
75 procps
76 rpcsvc-proto
77 udev
78 xercesc
79 xmlsec
80 ] ++ lib.optionals withX [
81 gdk-pixbuf-xlib
82 gtk3
83 gtkmm3
84 libX11
85 libXext
86 libXinerama
87 libXi
88 libXrender
89 libXrandr
90 libXtst
91 ];
92
93 postPatch = ''
94 sed -i Makefile.am \
95 -e 's,etc/vmware-tools,''${prefix}/etc/vmware-tools,'
96 sed -i scripts/Makefile.am \
97 -e 's,^confdir = ,confdir = ''${prefix},' \
98 -e 's,usr/bin,''${prefix}/usr/bin,'
99 sed -i services/vmtoolsd/Makefile.am \
100 -e 's,etc/vmware-tools,''${prefix}/etc/vmware-tools,' \
101 -e 's,$(PAM_PREFIX),''${prefix}/$(PAM_PREFIX),'
102 sed -i vgauth/service/Makefile.am \
103 -e 's,/etc/vmware-tools/vgauth/schemas,''${prefix}/etc/vmware-tools/vgauth/schemas,' \
104 -e 's,$(DESTDIR)/etc/vmware-tools/vgauth.conf,''${prefix}/etc/vmware-tools/vgauth.conf,'
105
106 # don't abort on any warning
107 sed -i 's,CFLAGS="$CFLAGS -Werror",,' configure.ac
108
109 # Make reboot work, shutdown is not in /sbin on NixOS
110 sed -i 's,/sbin/shutdown,shutdown,' lib/system/systemLinux.c
111
112 # Fix paths to fuse3 (we do not use fuse2 so that is not modified)
113 sed -i 's,/bin/fusermount3,${fuse3}/bin/fusermount3,' vmhgfs-fuse/config.c
114
115 substituteInPlace services/plugins/vix/foundryToolsDaemon.c \
116 --replace "/usr/bin/vmhgfs-fuse" "${placeholder "out"}/bin/vmhgfs-fuse" \
117 --replace "/bin/mount" "${util-linux}/bin/mount"
118 '';
119
120 configureFlags = [
121 "--without-kernel-modules"
122 "--with-udev-rules-dir=${placeholder "out"}/lib/udev/rules.d"
123 "--with-fuse=fuse3"
124 ] ++ lib.optional (!withX) "--without-x";
125
126 enableParallelBuilding = true;
127
128 preConfigure = ''
129 mkdir -p ${placeholder "out"}/lib/udev/rules.d
130 '';
131
132 postInstall = ''
133 wrapProgram "$out/etc/vmware-tools/scripts/vmware/network" \
134 --prefix PATH ':' "${lib.makeBinPath [ iproute2 dbus systemd which ]}"
135 substituteInPlace "$out/lib/udev/rules.d/99-vmware-scsi-udev.rules" --replace "/bin/sh" "${bash}/bin/sh"
136 '';
137
138 meta = with lib; {
139 homepage = "https://github.com/vmware/open-vm-tools";
140 changelog = "https://github.com/vmware/open-vm-tools/releases/tag/stable-${finalAttrs.version}";
141 description = "Set of tools for VMWare guests to improve host-guest interaction";
142 longDescription = ''
143 A set of services and modules that enable several features in VMware products for
144 better management of, and seamless user interactions with, guests.
145 '';
146 license = licenses.gpl2;
147 platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" ];
148 maintainers = with maintainers; [ joamaki kjeremy ];
149 };
150})