From 27cf8b83fbf2cb9394d1c123a4ab237caa5d0d2c Mon Sep 17 00:00:00 2001
From: Xiami <i@f2light.com>
Date: Wed, 4 Jul 2018 17:54:00 +0800
Subject: app-emulation/open-vm-tools: Bump to 10.2.5 and update the ebuild

- Update LICENSE
- According to configure.ac:
  - Introducing more features
  - Update IUSE, REQUIRED_USE and DEPENDs
- Patches for migrate to libtirpc (and keep -Werror)

Package-Manager: Portage-2.3.40, Repoman-2.3.9
Closes: https://github.com/gentoo/gentoo/pull/9039
Closes: https://bugs.gentoo.org/658086
---
 app-emulation/open-vm-tools/Manifest               |   1 +
 .../open-vm-tools/files/10.2.5-libtirpc.patch      |  45 ++++++
 app-emulation/open-vm-tools/files/vgauthd.service  |  14 ++
 app-emulation/open-vm-tools/files/vmtoolsd.service |   2 +-
 .../open-vm-tools/files/vmtoolsd.vgauth.service    |  14 ++
 app-emulation/open-vm-tools/metadata.xml           |  16 +-
 .../open-vm-tools/open-vm-tools-10.2.5.ebuild      | 172 +++++++++++++++++++++
 7 files changed, 260 insertions(+), 4 deletions(-)
 create mode 100644 app-emulation/open-vm-tools/files/10.2.5-libtirpc.patch
 create mode 100644 app-emulation/open-vm-tools/files/vgauthd.service
 create mode 100644 app-emulation/open-vm-tools/files/vmtoolsd.vgauth.service
 create mode 100644 app-emulation/open-vm-tools/open-vm-tools-10.2.5.ebuild

diff --git a/app-emulation/open-vm-tools/Manifest b/app-emulation/open-vm-tools/Manifest
index a8bf132586f3..09a1e723dfe6 100644
--- a/app-emulation/open-vm-tools/Manifest
+++ b/app-emulation/open-vm-tools/Manifest
@@ -1,2 +1,3 @@
 DIST open-vm-tools-10.1.10-6082533.tar.gz 5111726 BLAKE2B 22e2e901c542ae14b7537bc26ff848359f30bde6824a16968b70070dd6e57c92fbf76dca0d02e35ef45bda257725e207632b0602a4336bd2d9c97d10fb094967 SHA512 60c52a24509cb0630f2ad649fe6717fefff624fc2a5c736ced35cbdb8f639264d482e063e8140eedb39216adfb1231d58232bfef0233ebc477ba4f9a732c5965
 DIST open-vm-tools-10.1.15-6677369.tar.gz 5153995 BLAKE2B 03c6b359df8f42f1ba65331dcac67e8ce86b0fce9a572c1665d3f385cae14f1757611d3948d30bb5b2e40bb2b4673bb244c45f56098faf09d6de515bb937ea3f SHA512 fe3699a7f704bdadc4c274c963d177f4700067e7436074554b7cf113ffa341ad0e4753016214f947418fd5a7cb4a6f2c0342acf074b6b414b3fd18fd2ea2bc58
+DIST open-vm-tools-10.2.5-8068406.tar.gz 4818035 BLAKE2B 87e3edc42afceaf9efe69ae8cbd1abfbbf959fe09a721dbe4737ca30c6b57dcf1d8bff23bb3ed3d2236c31e7f3e6fd4d10a689b40b3b725eb580609a68bb7090 SHA512 da2f26b4b22e195af111cc16d5819aeb963f0dfa18b5d2677d897549836ec8679808315646f7f86ae36862df9e623bbcb5d553dae97a68b3ef928a5c07ea2e68
diff --git a/app-emulation/open-vm-tools/files/10.2.5-libtirpc.patch b/app-emulation/open-vm-tools/files/10.2.5-libtirpc.patch
new file mode 100644
index 000000000000..a9dfb42b2fc4
--- /dev/null
+++ b/app-emulation/open-vm-tools/files/10.2.5-libtirpc.patch
@@ -0,0 +1,45 @@
+From 75505fed193fc3779560b57c1b0d6d4209b05bf9 Mon Sep 17 00:00:00 2001
+From: Xiami <i@f2light.com>
+Date: Thu, 14 Jun 2018 16:23:00 +0800
+Subject: [PATCH] lib/dynxdr: for libtirpc
+
+glibc-2.26 do not provide RPC support by default.
+This workaround only works for Gentoo as ebuild forces libtirpc.
+---
+ open-vm-tools/lib/dynxdr/dynxdr.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/open-vm-tools/lib/dynxdr/dynxdr.c b/open-vm-tools/lib/dynxdr/dynxdr.c
+index 95fdc7e2..d3182733 100644
+--- a/open-vm-tools/lib/dynxdr/dynxdr.c
++++ b/open-vm-tools/lib/dynxdr/dynxdr.c
+@@ -55,7 +55,7 @@ typedef struct DynXdrData {
+  * Mac OS X, FreeBSD and Solaris don't take a const parameter to the
+  * "x_getpostn" function.
+  */
+-#if defined(__APPLE__) || defined(__FreeBSD__) || defined(sun)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined(sun) || defined(_TIRPC_XDR_H)
+ #  define DYNXDR_GETPOS_CONST
+ #else
+ #  define DYNXDR_GETPOS_CONST const
+@@ -172,7 +172,7 @@ DynXdrSetPos(XDR *xdrs, // IN
+ }
+ 
+ 
+-#if defined(__GLIBC__) || (defined(sun) && (defined(_LP64) || defined(_KERNEL)))
++#if (defined(__GLIBC__) && !defined(_TIRPC_XDR_H)) || (defined(sun) && (defined(_LP64) || defined(_KERNEL)))
+ /*
+  *-----------------------------------------------------------------------------
+  *
+@@ -322,7 +322,7 @@ DynXdr_Create(XDR *in)  // IN
+       DynXdrSetPos,     /* x_setpostn */
+       DynXdrInline,     /* x_inline */
+       NULL,             /* x_destroy */
+-#if defined(__GLIBC__)
++#if defined(__GLIBC__) && !defined(_TIRPC_XDR_H)
+       NULL,             /* x_getint32 */
+       DynXdrPutInt32,   /* x_putint32 */
+ #elif defined(__APPLE__)
+-- 
+2.16.4
+
diff --git a/app-emulation/open-vm-tools/files/vgauthd.service b/app-emulation/open-vm-tools/files/vgauthd.service
new file mode 100644
index 000000000000..db27bd56ef51
--- /dev/null
+++ b/app-emulation/open-vm-tools/files/vgauthd.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=VGAuth Service for open-vm-tools
+Documentation=https://github.com/vmware/open-vm-tools
+ConditionVirtualization=vmware
+PartOf=vmtoolsd.service
+
+[Service]
+# For dev-libs/xerces-c[iconv,-icu]
+EnvironmentFile=-/etc/env.d/50xerces-c
+ExecStart=/usr/bin/VGAuthService -s
+TimeoutStopSec=5
+
+[Install]
+RequiredBy=vmtoolsd.service
diff --git a/app-emulation/open-vm-tools/files/vmtoolsd.service b/app-emulation/open-vm-tools/files/vmtoolsd.service
index 426d4fbd993c..1226291bc8da 100644
--- a/app-emulation/open-vm-tools/files/vmtoolsd.service
+++ b/app-emulation/open-vm-tools/files/vmtoolsd.service
@@ -1,6 +1,6 @@
 [Unit]
 Description=Service for virtual machines hosted on VMware
-Documentation=http://open-vm-tools.sourceforge.net/about.php
+Documentation=https://github.com/vmware/open-vm-tools
 ConditionVirtualization=vmware
 
 [Service]
diff --git a/app-emulation/open-vm-tools/files/vmtoolsd.vgauth.service b/app-emulation/open-vm-tools/files/vmtoolsd.vgauth.service
new file mode 100644
index 000000000000..1cb6e00ecf51
--- /dev/null
+++ b/app-emulation/open-vm-tools/files/vmtoolsd.vgauth.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Service for virtual machines hosted on VMware
+Documentation=https://github.com/vmware/open-vm-tools
+ConditionVirtualization=vmware
+Requires=vgauthd.service
+After=vgauthd.service
+
+[Service]
+ExecStart=/usr/bin/vmtoolsd
+TimeoutStopSec=5
+
+[Install]
+WantedBy=multi-user.target
+Also=vgauthd.service
diff --git a/app-emulation/open-vm-tools/metadata.xml b/app-emulation/open-vm-tools/metadata.xml
index 53c18420cae0..e493eb3e04bf 100644
--- a/app-emulation/open-vm-tools/metadata.xml
+++ b/app-emulation/open-vm-tools/metadata.xml
@@ -16,13 +16,23 @@
 		of virtual machines.
 	</longdescription>
 	<use>
+		<flag name="caf">Build Common Agent Framework</flag>
+		<flag name="deploypkg">Build deploypkg plugin</flag>
+		<flag name="dnet">Enable support for nicinfo</flag>
 		<flag name="doc">Generate API documentation</flag>
-		<flag name="grabbitmqproxy">Enable grabbitmqproxy</flag>
+		<flag name="fuse">Enable vmblock-fuse/vmhgfs-fuse</flag>
+		<flag name="grabbitmqproxy">Build grabbitmqproxy plugin</flag>
+		<flag name="gtk2">Compile with GTK+ 2</flag>
+		<flag name="gtk3">Compile with GTK+ 3 (Recommended)</flag>
+		<flag name="gtkmm">Compile with Gtkmm and sigc++ (Recommended)</flag>
+		<flag name="multimon">Enable multimon (Requires X)</flag>
 		<flag name="pic">Force shared libraries to be built as PIC</flag>
-		<flag name="vgauth">Enable vgauth</flag>
+		<flag name="resolutionkms">Build the linux/unix resolutionkms module</flag>
+		<flag name="vgauth">Build vgauth</flag>
+		<flag name="xml-security-c">Build vgauth with xml-security-c instead of xmlsec1</flag>
+		<flag name="xmlsec">Build vgauth with xmlsec1 instead of xml-security-c</flag>
 	</use>
 	<upstream>
 		<remote-id type="github">vmware/open-vm-tools</remote-id>
-		<remote-id type="sourceforge">open-vm-tools</remote-id>
 	</upstream>
 </pkgmetadata>
diff --git a/app-emulation/open-vm-tools/open-vm-tools-10.2.5.ebuild b/app-emulation/open-vm-tools/open-vm-tools-10.2.5.ebuild
new file mode 100644
index 000000000000..9efaa12f5387
--- /dev/null
+++ b/app-emulation/open-vm-tools/open-vm-tools-10.2.5.ebuild
@@ -0,0 +1,172 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools flag-o-matic linux-info pam systemd toolchain-funcs user
+
+DESCRIPTION="Opensourced tools for VMware guests"
+HOMEPAGE="https://github.com/vmware/open-vm-tools"
+MY_P="${P}-8068406"
+SRC_URI="https://github.com/vmware/open-vm-tools/releases/download/stable-${PV}/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="X caf +deploypkg +dnet doc +fuse +grabbitmqproxy gtk2 gtk3 gtkmm +icu multimon pam +resolutionkms +ssl static-libs test +vgauth +xml-security-c xmlsec"
+REQUIRED_USE="
+	X? ( ^^ ( gtk2 gtk3 ) )
+	gtk2? ( X )
+	gtk3? ( X )
+	gtkmm? ( || ( gtk2 gtk3 ) )
+	multimon? ( X )
+	vgauth? (
+		^^ ( xmlsec xml-security-c )
+		ssl
+	)
+	caf? ( vgauth ssl )
+	grabbitmqproxy? ( ssl )
+"
+
+RDEPEND="
+	dev-libs/glib
+	net-libs/libtirpc
+	deploypkg? ( dev-libs/libmspack )
+	fuse? ( sys-fs/fuse:0 )
+	pam? ( virtual/pam )
+	ssl? ( dev-libs/openssl:0 )
+	vgauth? (
+		xml-security-c? ( dev-libs/xerces-c dev-libs/xml-security-c )
+		xmlsec? ( dev-libs/libxml2 dev-libs/xmlsec )
+	)
+	X? (
+		x11-libs/libXext
+		multimon? ( x11-libs/libXinerama )
+		x11-libs/libXi
+		x11-libs/libXrender
+		x11-libs/libXrandr
+		x11-libs/libXtst
+		x11-libs/libSM
+		x11-libs/libXcomposite
+		x11-libs/gdk-pixbuf:2
+		gtk3? (
+			x11-libs/gtk+:3
+			gtkmm? ( dev-cpp/gtkmm:3.0 )
+		)
+		gtk2? (
+			x11-libs/gtk+:2
+			gtkmm? ( dev-cpp/gtkmm:2.4 )
+		)
+		gtkmm? ( dev-libs/libsigc++:2 )
+	)
+	dnet? ( dev-libs/libdnet )
+	icu? ( dev-libs/icu:= )
+	caf? (
+		dev-libs/log4cpp
+		net-libs/rabbitmq-c
+	)
+	resolutionkms? (
+		x11-libs/libdrm
+		virtual/libudev
+	)
+"
+
+DEPEND="${RDEPEND}
+	virtual/pkgconfig
+	net-libs/rpcsvc-proto
+	doc? ( app-doc/doxygen )
+	test? ( dev-util/cunit )
+"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+	"${FILESDIR}/10.1.0-mount.vmhgfs.patch"
+	"${FILESDIR}/10.2.5-libtirpc.patch"
+)
+
+pkg_setup() {
+	local CONFIG_CHECK="~VMWARE_BALLOON ~VMWARE_PVSCSI ~VMXNET3"
+	use X && CONFIG_CHECK+=" ~DRM_VMWGFX"
+	kernel_is -lt 3 9 || CONFIG_CHECK+=" ~VMWARE_VMCI ~VMWARE_VMCI_VSOCKETS"
+	kernel_is -lt 3 || CONFIG_CHECK+=" ~FUSE_FS"
+	linux-info_pkg_setup
+}
+
+src_prepare() {
+	eapply -p2 "${PATCHES[@]}"
+	eapply_user
+	eautoreconf
+}
+
+src_configure() {
+	# On >=sys-libs/glibc-2.26, SunRPC no longer provided
+	# Use libtirpc and rpcsvc-proto instead
+	append-cppflags "$($(tc-getPKG_CONFIG) --cflags libtirpc)"
+	export LIBVMTOOLS_LIBADD="$($(tc-getPKG_CONFIG) --libs libtirpc)"
+	local myeconfargs=(
+		--without-root-privileges
+		$(use_enable multimon)
+		$(use_with X x)
+		$(use_with gtk3)
+		$(use_with gtk2)
+		$(use gtk3 && use_with gtkmm gtkmm3)
+		$(use gtk2 && use_with gtkmm)
+		$(use_enable doc docs)
+		$(use_enable test tests)
+		$(use_enable resolutionkms)
+		$(use_enable static-libs static)
+		$(use_enable deploypkg)
+		$(use_enable grabbitmqproxy)
+		$(use_with pam)
+		$(use_enable vgauth)
+		$(use vgauth && use_enable xmlsec xmlsec1)
+		$(use vgauth && use_enable xml-security-c xmlsecurity)
+		$(use_enable caf)
+		$(use_with dnet)
+		$(use_with icu)
+	)
+	# Avoid a bug in configure.ac
+	use ssl || myeconfargs+=( --without-ssl )
+
+	econf "${myeconfargs[@]}"
+}
+
+src_install() {
+	default
+	find "${D}" -name '*.la' -delete || die
+
+	if use pam; then
+		rm "${ED%/}"/etc/pam.d/vmtoolsd || die
+		pamd_mimic_system vmtoolsd auth account
+	fi
+
+	newinitd "${FILESDIR}/open-vm-tools.initd" vmware-tools
+	newconfd "${FILESDIR}/open-vm-tools.confd" vmware-tools
+
+	if use vgauth; then
+		systemd_newunit "${FILESDIR}"/vmtoolsd.vgauth.service vmtoolsd.service
+		systemd_dounit "${FILESDIR}"/vgauthd.service
+	else
+		systemd_dounit "${FILESDIR}"/vmtoolsd.service
+	fi
+
+	# Replace mount.vmhgfs with a wrapper
+	mv "${ED%/}"/usr/sbin/{mount.vmhgfs,hgfsmounter} || die
+	dosbin "${FILESDIR}/mount.vmhgfs"
+
+	# Make fstype = vmhgfs-fuse work in fstab
+	dosym vmhgfs-fuse /usr/bin/mount.vmhgfs-fuse
+
+	if use X; then
+		fperms 4711 /usr/bin/vmware-user-suid-wrapper
+		dobin scripts/common/vmware-xdg-detect-de
+
+		elog "To be able to use the drag'n'drop feature of VMware for file"
+		elog "exchange, please add the users to the 'vmware' group."
+	fi
+}
+
+pkg_postinst() {
+	enewgroup vmware
+}
-- 
cgit v1.2.3-65-gdbad