app-emulation/open-vm-tools: Sync with Gentoo

It's from Gentoo commit ecc674a080e039b5db316f4f8258315c1936801a.
This commit is contained in:
Krzesimir Nowak 2023-07-05 17:02:39 +02:00
parent 6f2189e94f
commit b1e69f4c41
15 changed files with 455 additions and 158 deletions

View File

@ -1 +1,2 @@
DIST open-vm-tools-12.3.0-22234872.tar.gz 4362694 BLAKE2B dbbcc3af51737cd9f4ed67a5d77e74dc3040e872b1af58e06a691c74987c3f39b9923c837a18629d758a807c81237f9398c436212d2acef687d35cc8acee2b43 SHA512 942be3c225d5724e236959dc0d422358b99d2844ed8f1c2d2ca06ea5959c12b1a5ac4fa47ee48c27d1c1291f6d783d1cf87303bf64b8117fd96f226ae4d632e5 DIST open-vm-tools-12.2.0-21223074.tar.gz 4365836 BLAKE2B ecac1ada523b9ba6e6f9e880f700a9c35200e9093c81f3367ce3b196365166f682f7d8ba290f624417b83c3573894020fe6b4cbd82a117412ebe80df283f32db SHA512 d663d8ea455264cad7d3eaac16c5d08672e8e10f7a9171be40fff69e208ae697bc0e8af498c978d8de470ed273351b42c54994b2c552fdc05b828c80f4826b84
DIST open-vm-tools-12.2.5-21855600.tar.gz 4365531 BLAKE2B 1df621aea3d349af45c41268f3ab9ef6dc012bc7b74b8ff399a3819f75c92b408f272c03e31ff74d7f1aceda8a88e5755064236b87403d8ef2717567de174434 SHA512 72db3b88f61624d26e8ff7e37e4fc52ecd0bec0b6f076d935870c03312321c5e0b406d05eae7012872734a50626ed760dff2cf872e26ec18ebf200aff5ed12ef

View File

@ -1,3 +0,0 @@
When updating the version of open-vm-tools the ebuild version of
oem-vmware must be updated to match as well. That way the reported "OEM"
version directly reflects the installed tools.

View File

@ -0,0 +1,24 @@
From fdf599994d58ef47b73dc94d21d3556a2ec5d9da Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Sat, 26 Nov 2016 11:54:33 -0500
Subject: [PATCH] build: drop -Werror
---
open-vm-tools/configure.ac | 1 -
1 file changed, 1 deletion(-)
diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
index 8d4604e8..4d925f22 100644
--- a/open-vm-tools/configure.ac
+++ b/open-vm-tools/configure.ac
@@ -1137,7 +1137,6 @@ AC_C_VOLATILE
### General flags / actions
CFLAGS="$CFLAGS -Wall"
-CFLAGS="$CFLAGS -Werror"
# -Wno-unknown-pragmas is due to gcc not understanding '#pragma ident'
# in Xlib.h on OpenSolaris.
--
2.11.0.rc2

View File

@ -0,0 +1,26 @@
From 08caf83eaa0e66cee8f3e49479cd201a10bb3919 Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Sat, 25 Sep 2021 21:14:25 -0400
Subject: [PATCH] lib/unicode: add ICU_LIBS to LDADD
---
open-vm-tools/lib/unicode/Makefile.am | 2 ++
1 file changed, 2 insertions(+)
diff --git a/open-vm-tools/lib/unicode/Makefile.am b/open-vm-tools/lib/unicode/Makefile.am
index 4284c51c..40261fba 100644
--- a/open-vm-tools/lib/unicode/Makefile.am
+++ b/open-vm-tools/lib/unicode/Makefile.am
@@ -25,7 +25,9 @@ libUnicode_la_SOURCES += unicodeSimpleTypes.c
libUnicode_la_SOURCES += unicodeSimpleOperations.c
libUnicode_la_SOURCES += unicodeSimpleTransforms.c
libUnicode_la_SOURCES += unicodeStatic.c
+libUnicode_la_LIBADD =
if HAVE_ICU
libUnicode_la_SOURCES += unicodeICU.c
+libUnicode_la_LIBADD += @ICU_LIBS@
endif
--
2.33.0

View File

@ -0,0 +1,2 @@
#!/bin/sh
hgfsmounter "$@" >/dev/null 2>&1 || vmhgfs-fuse "$@"

View File

@ -1,31 +0,0 @@
From d41aae8430eb0148dda9f71f311626bbe779d115 Mon Sep 17 00:00:00 2001
From: Benjamin Gilbert <benjamin.gilbert@coreos.com>
Date: Tue, 21 Mar 2017 16:04:30 -0700
Subject: [PATCH] configure: Add options for fuse, hgfs, and udev
---
open-vm-tools/configure.ac | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
index ab315b84..33839087 100644
--- a/open-vm-tools/configure.ac
+++ b/open-vm-tools/configure.ac
@@ -1425,7 +1433,13 @@ if test "$os" = "solaris"; then
fi
fi
-if test "$os" = "linux"; then
+AC_ARG_WITH([udev-rules],
+ [AS_HELP_STRING([--without-udev-rules],
+ [don't install udev rules])],
+ [],
+ [with_udev_rules=yes])
+
+if test "$os" = "linux" -a "$with_udev_rules" = "yes"; then
have_udev="yes"
AC_ARG_WITH([udev-rules-dir],
[AS_HELP_STRING([--with-udev-rules-dir=DIR],
--
2.26.3

View File

@ -0,0 +1,2 @@
# Set this to no to disable drag and drop (and vmblock) loading.
VM_DRAG_AND_DROP="yes"

View File

@ -0,0 +1,59 @@
#!/sbin/openrc-run
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
pidfile="/run/vmtoolsd.pid"
command="/usr/bin/vmtoolsd"
command_args="-b ${pidfile}"
vmblockmntpt="/proc/fs/vmblock/mountPoint"
vmblockfusemntpt="/run/vmblock-fuse"
depend() {
before checkfs fsck net X
}
start_vmblock() {
checkpath -d -m 1777 /tmp/VMwareDnD
if command -v vmware-vmblock-fuse > /dev/null; then
modprobe fuse > /dev/null 2>&1
checkpath -d "${vmblockfusemntpt}"
ebegin "Mounting vmblock-fuse"
vmware-vmblock-fuse \
-o subtype=vmware-vmblock,default_permissions,allow_other \
"${vmblockfusemntpt}"
eend $?
else
modprobe vmblock > /dev/null 2>&1
checkpath -d "${vmblockmntpt}"
ebegin "Mounting vmblock"
mount -t vmblock vmblock "${vmblockmntpt}"
eend $?
fi
}
stop_vmblock() {
if [ -d "${vmblockfusemntpt}" ]; then
ebegin "Unmounting vmblock-fuse"
umount "${vmblockfusemntpt}"
eend $?
else
ebegin "Unmounting vmblock"
umount "${vmblockmntpt}"
eend $?
fi
}
start_pre() {
if [ x"${VM_DRAG_AND_DROP}" = xyes ]; then
start_vmblock
fi
return 0
}
stop_post() {
if [ x"${VM_DRAG_AND_DROP}" = xyes ]; then
stop_vmblock
fi
return 0
}

View File

@ -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

View File

@ -0,0 +1,11 @@
[Unit]
Description=Service for virtual machines hosted on VMware
Documentation=https://github.com/vmware/open-vm-tools
ConditionVirtualization=vmware
[Service]
ExecStart=/usr/bin/vmtoolsd
TimeoutStopSec=5
[Install]
WantedBy=multi-user.target

View File

@ -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

View File

@ -1,14 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata> <pkgmetadata>
<maintainer type="person"> <!-- maintainer-needed -->
<email>floppym@gentoo.org</email>
<name>Mike Gilbert</name>
</maintainer>
<maintainer type="project">
<email>vmware@gentoo.org</email>
<name>Gentoo VMware Project</name>
</maintainer>
<longdescription> <longdescription>
The Open Virtual Machine Tools (open-vm-tools) are the open source The Open Virtual Machine Tools (open-vm-tools) are the open source
implementation of VMware Tools. They are a set of guest operating system implementation of VMware Tools. They are a set of guest operating system
@ -16,21 +9,17 @@
of virtual machines. of virtual machines.
</longdescription> </longdescription>
<use> <use>
<flag name="caf">Build Common Agent Framework</flag>
<flag name="deploypkg">Build deploypkg plugin</flag> <flag name="deploypkg">Build deploypkg plugin</flag>
<flag name="dnet">Enable support for nicinfo</flag> <flag name="dnet">Enable support for nicinfo</flag>
<flag name="doc">Generate API documentation</flag> <flag name="doc">Generate API documentation</flag>
<flag name="fuse">Enable vmblock-fuse/vmhgfs-fuse</flag> <flag name="fuse">Enable vmblock-fuse/vmhgfs-fuse</flag>
<flag name="grabbitmqproxy">Build grabbitmqproxy plugin</flag>
<flag name="gtkmm">Compile with Gtkmm and sigc++ (Recommended)</flag> <flag name="gtkmm">Compile with Gtkmm and sigc++ (Recommended)</flag>
<flag name="multimon">Enable multimon (Requires X)</flag> <flag name="multimon">Enable multimon (Requires X)</flag>
<flag name="pic">Force shared libraries to be built as PIC</flag>
<flag name="resolutionkms">Build the linux/unix resolutionkms module</flag> <flag name="resolutionkms">Build the linux/unix resolutionkms module</flag>
<flag name="vgauth">Build vgauth</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> </use>
<upstream> <upstream>
<remote-id type="github">vmware/open-vm-tools</remote-id> <remote-id type="github">vmware/open-vm-tools</remote-id>
<remote-id type="cpe">cpe:/a:vmware:tools</remote-id>
</upstream> </upstream>
</pkgmetadata> </pkgmetadata>

View File

@ -0,0 +1,149 @@
# Copyright 2007-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools linux-info pam systemd udev
DESCRIPTION="Tools for VMware guests"
HOMEPAGE="https://github.com/vmware/open-vm-tools"
MY_P="${P}-21223074"
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 +deploypkg +dnet doc +fuse gtkmm +icu multimon pam +resolutionkms +ssl +vgauth"
REQUIRED_USE="
multimon? ( X )
vgauth? ( ssl )
"
RDEPEND="
dev-libs/glib
net-libs/libtirpc
deploypkg? ( dev-libs/libmspack )
fuse? ( sys-fs/fuse:0 )
pam? ( sys-libs/pam )
!pam? ( virtual/libcrypt:= )
ssl? ( dev-libs/openssl:0= )
vgauth? (
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-xlib
x11-libs/gtk+:3
gtkmm? (
dev-cpp/gtkmm:3.0
dev-libs/libsigc++:2
)
)
dnet? ( dev-libs/libdnet )
icu? ( dev-libs/icu:= )
resolutionkms? (
x11-libs/libdrm[video_cards_vmware]
virtual/libudev
)
"
DEPEND="${RDEPEND}
net-libs/rpcsvc-proto
"
BDEPEND="
dev-util/glib-utils
virtual/pkgconfig
doc? ( app-doc/doxygen )
"
S="${WORKDIR}/${MY_P}"
PATCHES=(
"${FILESDIR}/10.1.0-Werror.patch"
"${FILESDIR}/11.3.5-icu.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"
kernel_is -lt 5 5 || CONFIG_CHECK+=" ~X86_IOPL_IOPERM"
linux-info_pkg_setup
}
src_prepare() {
eapply -p2 "${PATCHES[@]}"
eapply_user
eautoreconf
}
src_configure() {
local myeconfargs=(
--disable-glibc-check
--without-root-privileges
$(use_enable multimon)
$(use_with X x)
$(use_with X gtk3)
$(use_with gtkmm gtkmm3)
$(use_enable doc docs)
--disable-tests
$(use_enable resolutionkms)
--disable-static
$(use_enable deploypkg)
$(use_with pam)
$(use_enable vgauth)
$(use_with dnet)
$(use_with icu)
--with-udev-rules-dir="$(get_udevdir)/rules.d"
)
# Avoid a bug in configure.ac
use ssl || myeconfargs+=( --without-ssl )
econf "${myeconfargs[@]}"
}
src_install() {
default
find "${ED}" -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
# 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
fi
}
pkg_postinst() {
udev_reload
}
pkg_postrm() {
udev_reload
}

View File

@ -0,0 +1,149 @@
# Copyright 2007-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools linux-info pam systemd udev
DESCRIPTION="Tools for VMware guests"
HOMEPAGE="https://github.com/vmware/open-vm-tools"
MY_P="${P}-21855600"
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 +deploypkg +dnet doc +fuse gtkmm +icu multimon pam +resolutionkms +ssl +vgauth"
REQUIRED_USE="
multimon? ( X )
vgauth? ( ssl )
"
RDEPEND="
dev-libs/glib
net-libs/libtirpc
deploypkg? ( dev-libs/libmspack )
fuse? ( sys-fs/fuse:0 )
pam? ( sys-libs/pam )
!pam? ( virtual/libcrypt:= )
ssl? ( dev-libs/openssl:0= )
vgauth? (
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-xlib
x11-libs/gtk+:3
gtkmm? (
dev-cpp/gtkmm:3.0
dev-libs/libsigc++:2
)
)
dnet? ( dev-libs/libdnet )
icu? ( dev-libs/icu:= )
resolutionkms? (
x11-libs/libdrm[video_cards_vmware]
virtual/libudev
)
"
DEPEND="${RDEPEND}
net-libs/rpcsvc-proto
"
BDEPEND="
dev-util/glib-utils
virtual/pkgconfig
doc? ( app-doc/doxygen )
"
S="${WORKDIR}/${MY_P}"
PATCHES=(
"${FILESDIR}/10.1.0-Werror.patch"
"${FILESDIR}/11.3.5-icu.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"
kernel_is -lt 5 5 || CONFIG_CHECK+=" ~X86_IOPL_IOPERM"
linux-info_pkg_setup
}
src_prepare() {
eapply -p2 "${PATCHES[@]}"
eapply_user
eautoreconf
}
src_configure() {
local myeconfargs=(
--disable-glibc-check
--without-root-privileges
$(use_enable multimon)
$(use_with X x)
$(use_with X gtk3)
$(use_with gtkmm gtkmm3)
$(use_enable doc docs)
--disable-tests
$(use_enable resolutionkms)
--disable-static
$(use_enable deploypkg)
$(use_with pam)
$(use_enable vgauth)
$(use_with dnet)
$(use_with icu)
--with-udev-rules-dir="$(get_udevdir)/rules.d"
)
# Avoid a bug in configure.ac
use ssl || myeconfargs+=( --without-ssl )
econf "${myeconfargs[@]}"
}
src_install() {
default
find "${ED}" -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
# 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
fi
}
pkg_postinst() {
udev_reload
}
pkg_postrm() {
udev_reload
}

View File

@ -1,109 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit autotools flag-o-matic multilib toolchain-funcs
DESCRIPTION="Opensourced tools for VMware guests"
HOMEPAGE="https://github.com/vmware/open-vm-tools"
MY_P="${P}-22234872"
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"
# Flatcar: add USE flag salt-minion
IUSE="+deploypkg +dnet +pic salt-minion" # TODO: pam
DEPEND="dev-libs/glib:2
net-libs/libtirpc
deploypkg? ( dev-libs/libmspack )
dnet? ( dev-libs/libdnet )"
# Runtime dependencies provided by CoreOS, not the OEM:
# dev-libs/glib:2
# sys-apps/ethtool
# pam? ( sys-libs/pam )
RDEPEND="dnet? ( dev-libs/libdnet )
deploypkg? ( dev-libs/libmspack )"
S="${WORKDIR}/${MY_P}"
PATCHES=(
"${FILESDIR}/${PN}-0001-configure-Add-options-for-fuse-hgfs-and-udev.patch"
)
src_prepare() {
eapply -p2 "${PATCHES[@]}"
eapply_user
eautoreconf
}
# Override configure's use of pkg-config to ensure ${SYSROOT} is respected.
override_vmw_check_lib() {
local lib="$1"
local var="$2"
local pkgconfig="$(tc-getPKG_CONFIG)"
export "CUSTOM_${var}_CPPFLAGS=$(${pkgconfig} --cflags ${lib})"
export "CUSTOM_${var}_LIBS=$(${pkgconfig} --libs ${lib})"
}
src_configure() {
local oemlib="/oem/$(get_libdir)"
local oeminc="/oem/include"
# set rpath even if oem is in ld.so.conf
append-ldflags "-Wl,-rpath,${oemlib}"
# libdnet is installed to /oem
export CUSTOM_DNET_CPPFLAGS="-I=${oeminc}"
export CUSTOM_DNET_LIBS="-L=${oemlib}"
export CUSTOM_MSPACK_CPPFLAGS="-I=${oeminc}"
export CUSTOM_MSPACK_LIBS="-L=${oemlib}"
# for everything else configure is still wrong because it calls
# pkg-config directly instead of favoring the ${CHOST}-pkg-config
# wrapper or using the standard autoconf macro.
override_vmw_check_lib glib-2.0 GLIB2
override_vmw_check_lib gmodule-2.0 GMODULE
override_vmw_check_lib gobject-2.0 GOBJECT
override_vmw_check_lib gthread-2.0 GTHREAD
local myeconfargs=(
--prefix=/oem
$(use_enable deploypkg)
$(use_enable salt-minion)
--disable-containerinfo
--disable-docs
--disable-multimon
--disable-tests
--without-fuse
--without-icu
--without-kernel-modules
--without-pam
--without-udev-rules
--without-x
--disable-vgauth
$(use_with dnet)
$(use_with pic)
)
# TODO: $(use_with pam)
econf "${myeconfargs[@]}"
# Bugs 260878, 326761
find ./ -name Makefile | xargs sed -i -e 's/-Werror//g' || die "sed out Werror failed"
}
src_install() {
# Relocate event scripts, a symlink will be created by the systemd
# unit.
emake DESTDIR="${D}" confdir=/oem/vmware-tools install
rm "${D}"/etc/pam.d/vmtoolsd
# TODO: pamd_mimic_system vmtoolsd auth account
# We never bother with i10n on CoreOS
rm -rf "${D}"/usr/share/open-vm-tools
}