3
0
Fork 0
forked from mirrors/nixpkgs

open-vm-tools: 10.0.7 -> 10.1.0

Also add an option to disable all the X11 stuff.
This commit is contained in:
Tuomas Tynkkynen 2016-12-01 16:59:53 +02:00
parent 182a369ab9
commit a14ef4ad52
4 changed files with 57 additions and 53 deletions

View file

@ -4,12 +4,19 @@ with lib;
let
cfg = config.services.vmwareGuest;
open-vm-tools = pkgs.open-vm-tools;
open-vm-tools = if cfg.headless then pkgs.open-vm-tools-headless else pkgs.open-vm-tools;
xf86inputvmmouse = pkgs.xorg.xf86inputvmmouse;
in
{
options = {
services.vmwareGuest.enable = mkEnableOption "VMWare Guest Support";
services.vmwareGuest = {
enable = mkEnableOption "VMWare Guest Support";
headless = mkOption {
type = types.bool;
default = false;
description = "Whether to disable X11-related features.";
};
};
};
config = mkIf cfg.enable {
@ -28,7 +35,7 @@ in
environment.etc."vmware-tools".source = "${pkgs.open-vm-tools}/etc/vmware-tools/*";
services.xserver = {
services.xserver = mkIf (!cfg.headless) {
videoDrivers = mkOverride 50 [ "vmware" ];
modules = [ xf86inputvmmouse ];

View file

@ -1,42 +1,48 @@
{ stdenv, lib, fetchFromGitHub, makeWrapper, autoreconfHook,
libmspack, openssl, pam, xercesc, icu, libdnet, procps,
xlibsWrapper, libXinerama, libXi, libXrender, libXrandr, libXtst,
pkgconfig, glib, gtk, gtkmm, iproute, dbus, systemd }:
fuse, libmspack, openssl, pam, xercesc, icu, libdnet, procps,
libX11, libXext, libXinerama, libXi, libXrender, libXrandr, libXtst,
pkgconfig, glib, gtk, gtkmm, iproute, dbus, systemd, which,
withX ? true }:
let
majorVersion = "10.0";
minorVersion = "7";
version = "${majorVersion}.${minorVersion}";
in stdenv.mkDerivation rec {
stdenv.mkDerivation rec {
name = "open-vm-tools-${version}";
version = "10.1.0";
src = fetchFromGitHub {
owner = "vmware";
repo = "open-vm-tools";
rev = "stable-${version}";
sha256 = "0xxgppxjisg3jly21r7mjk06rc4n7ssyvapasxhbi2d1bw0xkvrj";
sha256 = "1qzk4mvw618ca4j9agsfpqch9jgwghvdc4rpkvlyz8kirvh9iniz";
};
sourceRoot = "${src.name}/open-vm-tools";
buildInputs =
[ autoreconfHook makeWrapper libmspack openssl pam xercesc icu libdnet procps
pkgconfig glib gtk gtkmm xlibsWrapper libXinerama libXi libXrender libXrandr libXtst ];
outputs = [ "out" "dev" ];
postPatch = ''
sed -i s,-Werror,,g configure.ac
sed -i 's,^confdir = ,confdir = ''${prefix},' scripts/Makefile.am
sed -i 's,etc/vmware-tools,''${prefix}/etc/vmware-tools,' services/vmtoolsd/Makefile.am
'';
nativeBuildInputs = [ autoreconfHook makeWrapper pkgconfig ];
buildInputs = [ fuse glib icu libdnet libmspack openssl pam procps xercesc ]
++ lib.optionals withX [ gtk gtkmm libX11 libXext libXinerama libXi libXrender libXrandr libXtst ];
patches = [ ./recognize_nixos.patch ];
postPatch = ''
# Build bugfix for 10.1.0, stolen from Arch PKGBUILD
mkdir -p common-agent/etc/config
sed -i 's|.*common-agent/etc/config/Makefile.*|\\|' configure.ac
configureFlags = "--without-kernel-modules --without-xmlsecurity";
sed -i 's,^confdir = ,confdir = ''${prefix},' 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
sed -i 's,$(UDEVRULESDIR),''${prefix}/$(UDEVRULESDIR),' udev/Makefile.am
'';
configureFlags = [ "--without-kernel-modules" "--without-xmlsecurity" ]
++ lib.optional (!withX) "--without-x";
enableParallelBuilding = true;
postInstall = ''
sed -i 's,which ,command -v ,' "$out/etc/vmware-tools/scripts/vmware/network"
wrapProgram "$out/etc/vmware-tools/scripts/vmware/network" \
--prefix PATH ':' "${lib.makeBinPath [ iproute dbus systemd ]}"
wrapProgram "$out/etc/vmware-tools/scripts/vmware/network" \
--prefix PATH ':' "${lib.makeBinPath [ iproute dbus systemd which ]}"
'';
meta = with stdenv.lib; {

View file

@ -1,30 +1,20 @@
diff -ruN open-vm-tools.orig/lib/include/guest_os.h open-vm-tools/lib/include/guest_os.h
--- open-vm-tools.orig/lib/include/guest_os.h 2016-02-12 00:50:33.000000000 +0000
+++ open-vm-tools/lib/include/guest_os.h 2016-04-18 20:07:41.677251511 +0000
@@ -222,6 +222,7 @@
diff --git a/lib/include/guest_os.h b/open-vm-tools/lib/include/guest_os.h
index ef202e3..c7a105d 100644
--- a/lib/include/guest_os.h
+++ b/lib/include/guest_os.h
@@ -238,6 +238,7 @@ Bool Gos_InSetArray(uint32 gos, const uint32 *set);
#define STR_OS_MANDRAKE_FULL "Mandrake Linux"
#define STR_OS_MANDRIVA "mandriva"
#define STR_OS_MKLINUX "MkLinux"
+#define STR_OS_NIXOS "NixOS"
#define STR_OS_NOVELL "nld9"
#define STR_OS_NOVELL_FULL "Novell Linux Desktop 9"
#define STR_OS_ORACLE "oraclelinux"
diff -ruN open-vm-tools.orig/lib/include/vmblock.h open-vm-tools/lib/include/vmblock.h
--- open-vm-tools.orig/lib/include/vmblock.h 2016-02-12 00:50:33.000000000 +0000
+++ open-vm-tools/lib/include/vmblock.h 2016-04-18 21:51:15.651235848 +0000
@@ -145,7 +145,7 @@
# define VMBLOCK_DEVICE_MODE VMBLOCK_FUSE_DEVICE_MODE
# define VMBLOCK_MOUNT_POINT VMBLOCK_FUSE_MOUNT_POINT
-#elif defined(linux)
+#elif defined(__linux__)
# define VMBLOCK_ADD_FILEBLOCK 98
# define VMBLOCK_DEL_FILEBLOCK 99
# ifdef VMX86_DEVEL
diff -ruN open-vm-tools.orig/lib/misc/hostinfoPosix.c open-vm-tools/lib/misc/hostinfoPosix.c
--- open-vm-tools.orig/lib/misc/hostinfoPosix.c 2016-02-12 00:50:33.000000000 +0000
+++ open-vm-tools/lib/misc/hostinfoPosix.c 2016-04-18 20:09:45.841668252 +0000
@@ -195,6 +195,7 @@
#define STR_OS_ORACLE6 "oraclelinux6"
diff --git a/lib/misc/hostinfoPosix.c b/open-vm-tools/lib/misc/hostinfoPosix.c
index 0f55070..2d8467c 100644
--- a/lib/misc/hostinfoPosix.c
+++ b/lib/misc/hostinfoPosix.c
@@ -195,6 +195,7 @@ static const DistroInfo distroArray[] = {
{"Mandrake", "/etc/mandrake-release"},
{"Mandriva", "/etc/mandriva-release"},
{"MkLinux", "/etc/mklinux-release"},
@ -32,12 +22,12 @@ diff -ruN open-vm-tools.orig/lib/misc/hostinfoPosix.c open-vm-tools/lib/misc/hos
{"Novell", "/etc/nld-release"},
{"OracleLinux", "/etc/oracle-release"},
{"Photon", "/etc/lsb-release"},
@@ -619,6 +620,8 @@
Str_Strcpy(distroShort, STR_OS_MANDRIVA, distroShortSize);
} else if (strstr(distroLower, "mklinux")) {
Str_Strcpy(distroShort, STR_OS_MKLINUX, distroShortSize);
@@ -554,6 +555,8 @@ HostinfoGetOSShortName(char *distro, // IN: full distro name
}
} else if (strstr(distroLower, "mandrake")) {
Str_Strcpy(distroShort, STR_OS_MANDRAKE, distroShortSize);
+ } else if (strstr(distroLower, "nixos")) {
+ Str_Strcpy(distroShort, STR_OS_NIXOS, distroShortSize);
} else if (strstr(distroLower, "pld")) {
Str_Strcpy(distroShort, STR_OS_PLD, distroShortSize);
} else if (strstr(distroLower, "slackware")) {
} else if (strstr(distroLower, "turbolinux")) {
Str_Strcpy(distroShort, STR_OS_TURBO, distroShortSize);
} else if (strstr(distroLower, "sun")) {

View file

@ -11606,6 +11606,7 @@ with pkgs;
open-vm-tools = callPackage ../applications/virtualization/open-vm-tools {
inherit (gnome2) gtk gtkmm;
};
open-vm-tools-headless = open-vm-tools.override { withX = false; };
delve = callPackage ../development/tools/delve { };