Sync with portage [Sat Sep 5 16:45:37 MSK 2015].

mhiretskiy 7
root 9 years ago
parent 13d7e2c932
commit 6096c6119a

@ -1,3 +1,3 @@
DIST file-roller-3.14.2.tar.xz 1387784 SHA256 1815e736715afe8c0f3fbda41c76c07289220d4855345f779c632adf5e074e50 SHA512 92ff42e4fe06e3ea54e71806157fbb95f9e5f247142e9e857f61f61748fd0e1b99a73cfb35fd3ea890c3e19da0d2176af9a017a8eb918eff9ddc0371b09ed11d WHIRLPOOL db4e5519fe298759dbb0f048a597d4cd8ef6610b04eab9f77ee21905726f19e15312cdfc47aa80c2f55490ad4f400e7cac0664e24376b40a340d780e5f0809bf
DIST file-roller-3.16.2.tar.xz 1409944 SHA256 60897ff24d4822395a227b62811c3b8768b701844961e93303d6d6d9463d7e3f SHA512 ac8c36c3b186bd4eb2ae41fe2e777a15074f09863402a56614a8ad0a89d6e480046fb2566db1be907ea1155ebe4aff6733e32e0f59547435db451757fb3cb15f WHIRLPOOL 3e20ba55d57d69a838f1602322478752eb2f172e8f713c23099edd3446c4b811306d101e23393a8d088382145d4bbf72c66c7ec62796e6eba47e4a4f46fd3ff7
DIST file-roller-3.16.3.tar.xz 1411360 SHA256 2b3a1111caba26e67b96559a3118a700dbfb6a4c6ad7ebd3e509df227995411c SHA512 999d08d6ea5ae975a026c351c5f216fd503b78eb65e8f417f8afdce152c816f631bd5c6b1a430a5baefa19541e3d718c59beef4773242a6ba087479061ed42ea WHIRLPOOL 2534ae5ad2bb3886d4963bb30a5ef67a82c698f74d64fc0ddc1cac0a37ab258b4fa7e569d031ec1a715a0d3f99b70aae54d16f88d18b95ce7f77654cede4f176
DIST file-roller-3.16.4.tar.xz 1412224 SHA256 5455980b2c9c7eb063d2d65560ae7ab2e7f01b208ea3947e151680231c7a4185 SHA512 76378e16cd7f37a336b3eb3c6106cf36c2ea6e9209c23175810e2b80dc13a7b62b04cfcdea0b2bf69251baf7b164e85c34d99813cdbfd07433f73aba9c7361ae WHIRLPOOL 0d8736e13b97a4a005ae53bd9885b10c8a7797e10e0d8f4548e4112490ebc3ce91b0e5349b251bdca5d0f392318be7ea4fb324e3399300e362f47b024217849d

@ -9,7 +9,7 @@ GNOME2_LA_PUNT="yes"
inherit eutils gnome2 readme.gentoo
DESCRIPTION="Archive manager for GNOME"
HOMEPAGE="http://fileroller.sourceforge.net/ https://wiki.gnome.org/Apps/FileRoller"
HOMEPAGE="https://wiki.gnome.org/Apps/FileRoller"
LICENSE="GPL-2+ CC-BY-SA-3.0"
SLOT="0"
@ -35,6 +35,7 @@ RDEPEND="
DEPEND="${RDEPEND}
dev-util/desktop-file-utils
>=dev-util/intltool-0.40.0
dev-util/itstool
sys-devel/gettext
virtual/pkgconfig
"
@ -61,13 +62,8 @@ unstuff - app-arch/stuffit
zoo - app-arch/zoo"
src_prepare() {
# Use absolute path to GNU tar since star doesn't have the same
# options. On Gentoo, star is /usr/bin/tar, GNU tar is /bin/tar
epatch "${FILESDIR}"/${PN}-2.10.3-use_bin_tar.patch
# File providing Gentoo package names for various archivers
cp -f "${FILESDIR}"/3.6.0-packages.match data/packages.match || die
gnome2_src_prepare
}
@ -81,8 +77,7 @@ src_configure() {
--enable-magic \
--enable-libarchive \
$(use_enable nautilus nautilus-actions) \
$(use_enable packagekit) \
ITSTOOL=$(type -P true)
$(use_enable packagekit)
}
src_install() {

@ -1,2 +1,3 @@
DIST gedit-3.14.3.tar.xz 2875192 SHA256 cd6c9f556ec12001e4b250091a1d7405cd807cce7fe767bc89ed2c25aa96a319 SHA512 2237ad697161cff5755336775cf128136d7cefdece0d335246735b3ae1b9d2cadb29ae36be2000cd7fb02d6a4187aac1d2ff7935bec5c64b5b880fe84f330b01 WHIRLPOOL 39ffa7ece00f712f052c78107b3f95cd0e3a744932d22f5e946141b3bc8954643ae091f75508d9761761fb041a18b43e50b23ed1c0ff3d7ac0bdce9464cc71cd
DIST gedit-3.16.2.tar.xz 2905916 SHA256 db60a9408711b00f3780f5f5b657e9f44722c88c683ba6e9f2b4885631f429aa SHA512 511d70099eeb857a3e25d789c44302756d108ff84634c4c7386e1e1de8dd08834cf57991311c69aa81da23510027523bc7cde313b689feb1a8e08eb01b017648 WHIRLPOOL ce51f82265664839d686ea91388f8dc906c5dcf666032f4073792832aabfa9a04dbd99e4aeef5cfd733a753eaf63daaa5b55dce3c67bb0cdb01d96595d36b4f9
DIST gedit-3.16.3.tar.xz 2924392 SHA256 c28df44a29ee5707441f89e94b513079d709111afec4bd4b079a1dff0242cdb2 SHA512 479370c25be4b8c6f2fc77628e835b763194fdc9ce1858bb8fe4641964e6911db573b28300d8cc5519a5e4ddef980d28c224a315c3879770265be9328b70e925 WHIRLPOOL 604690b148f2af10358c1d567521e49a406594c390d8b67a22a4879ce1d70398d0de43865cc3874d29b51d9c86103fa765b5cde181008172e5617333b1ab3b9e

@ -0,0 +1,107 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="5"
GCONF_DEBUG="no"
GNOME2_LA_PUNT="yes" # plugins are dlopened
PYTHON_COMPAT=( python3_{3,4} )
VALA_MIN_API_VERSION="0.26"
VALA_USE_DEPEND="vapigen"
inherit eutils gnome2 multilib python-r1 vala virtualx
DESCRIPTION="A text editor for the GNOME desktop"
HOMEPAGE="https://wiki.gnome.org/Apps/Gedit"
LICENSE="GPL-2+ CC-BY-SA-3.0"
SLOT="0"
IUSE="+introspection +python spell vala"
# python-single-r1 would request disabling PYTHON_TARGETS on libpeas
# we need to fix that
REQUIRED_USE="
python? ( introspection )
python? ( ^^ ( $(python_gen_useflags '*') ) )
"
KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux"
# X libs are not needed for OSX (aqua)
COMMON_DEPEND="
>=dev-libs/libxml2-2.5.0:2
>=dev-libs/glib-2.40:2[dbus]
>=x11-libs/gtk+-3.16:3[introspection?]
>=x11-libs/gtksourceview-3.16:3.0[introspection?]
>=dev-libs/libpeas-1.7.0[gtk]
gnome-base/gsettings-desktop-schemas
gnome-base/gvfs
x11-libs/libX11
net-libs/libsoup:2.4
introspection? ( >=dev-libs/gobject-introspection-0.9.3:= )
python? (
${PYTHON_DEPS}
dev-python/pycairo[${PYTHON_USEDEP}]
>=dev-python/pygobject-3:3[cairo,${PYTHON_USEDEP}]
dev-libs/libpeas[${PYTHON_USEDEP}] )
spell? (
>=app-text/enchant-1.2:=
>=app-text/iso-codes-0.35 )
"
RDEPEND="${COMMON_DEPEND}
x11-themes/gnome-icon-theme-symbolic
"
DEPEND="${COMMON_DEPEND}
${vala_depend}
app-text/docbook-xml-dtd:4.1.2
>=app-text/scrollkeeper-0.3.11
dev-libs/libxml2:2
>=dev-util/gtk-doc-am-1
>=dev-util/intltool-0.50.1
dev-util/itstool
>=sys-devel/gettext-0.18
virtual/pkgconfig
"
# yelp-tools, gnome-common needed to eautoreconf
pkg_setup() {
use python && [[ ${MERGE_TYPE} != binary ]] && python_setup
}
src_prepare() {
vala_src_prepare
gnome2_src_prepare
}
src_configure() {
DOCS="AUTHORS BUGS ChangeLog MAINTAINERS NEWS README"
gnome2_src_configure \
--disable-deprecations \
--enable-updater \
--enable-gvfs-metadata \
$(use_enable introspection) \
$(use_enable spell) \
$(use_enable python) \
$(use_enable vala)
}
src_test() {
# FIXME: this should be handled at eclass level
"${EROOT}${GLIB_COMPILE_SCHEMAS}" --allow-any-name "${S}/data" || die
unset DBUS_SESSION_BUS_ADDRESS
GSETTINGS_SCHEMA_DIR="${S}/data" Xemake check
}
src_install() {
local args=()
# manually set pyoverridesdir due to bug #524018 and AM_PATH_PYTHON limitations
use python && args+=( pyoverridesdir="$(python_get_sitedir)/gi/overrides" )
gnome2_src_install "${args[@]}"
}

@ -1,2 +1,3 @@
DIST latexila-3.14.4.tar.xz 1139644 SHA256 8e087040260a6eb777382c55fd3d1260f1686453052ccdf1a5b9e0e4178c4d62 SHA512 88b3f2c8d931e49370614021f69e0711b3e78b1e49ad99601ea70f570c551b4f89558fdc3f5abaf68adba4e819a542ba3159c830b134c7e9679fbeffe8f3934d WHIRLPOOL 2d2925470e2fd27fa79b553ec8e1e9442c7817df36a907c47ace3b6b33d58977ae571aec6cc3f787e6de98c679f355592add59e3bf2e04d7090d75d8aae17068
DIST latexila-3.16.1.tar.xz 1059308 SHA256 ab2d769546e10c86670e86271024c023c0a87f1b72856955c1883416a9f333f0 SHA512 b6854a301006c04c6f87cc3e9d5fc167ac7b3e0c7ac11fdce3dd6a0dca74d69b3ec51130feb8a8af505b50f6f85cb0684f7102bf5cc976fe1f845dd604863314 WHIRLPOOL 30ce694b1ddb5d71932679d31fb890aca0afc71634d6cdf744faddd792f47589c7593c43b6476b932002d70f74f4c738cef38f38fc6caa0452b1e13b205c57cc
DIST latexila-3.16.2.tar.xz 1058776 SHA256 5ad20a2acdb8c93dea5aa175a219e62efe5f4a7ffb67bc52ff6faf0c6f42bad3 SHA512 d9d5c90374d5aa9b2599f90565dde9da1c4dc7713b7be8ffbfac71b5797124142ef46811660f14edfd278ec9d3f3b6b0c56ef325201fb85caf3b7322577e40fc WHIRLPOOL 3fde6abc4979dd9a40cc019e30c8b0e0c55c97fa3a4670d073d1ca6f662342b54923ea263246a169e8944fa3aaba358d6881629e20c6e949b1287e9328c1cdc6

@ -0,0 +1,55 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="5"
GCONF_DEBUG="no"
VALA_MIN_API_VERSION="0.26"
VALA_USE_DEPEND="vapigen"
inherit gnome2 vala
DESCRIPTION="Integrated LaTeX environment for GNOME"
HOMEPAGE="https://wiki.gnome.org/Apps/LaTeXila"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="+introspection +latexmk rubber"
COMMON_DEPEND="$(vala_depend)
app-text/enchant
>=app-text/gtkspell-3.0.4:3
>=dev-libs/glib-2.40:2[dbus]
>=dev-libs/libgee-0.10:0.8=
gnome-base/gsettings-desktop-schemas
>=x11-libs/gtk+-3.14:3
>=x11-libs/gtksourceview-3.16:3.0
x11-libs/gdk-pixbuf:2
x11-libs/libX11
x11-libs/pango
introspection? ( >=dev-libs/gobject-introspection-1.30.0:= )
"
RDEPEND="${COMMON_DEPEND}
virtual/latex-base
x11-themes/hicolor-icon-theme
latexmk? ( dev-tex/latexmk )
rubber? ( dev-tex/rubber )
"
DEPEND="${COMMON_DEPEND}
>=dev-util/gtk-doc-am-1.14
>=dev-util/intltool-0.50.1
dev-util/itstool
virtual/pkgconfig
"
src_prepare() {
DOCS="AUTHORS HACKING NEWS README"
gnome2_src_prepare
vala_src_prepare
}
src_configure() {
gnome2_src_configure \
$(use_enable introspection)
}

@ -3,3 +3,4 @@ DIST lxc-1.0.7.tar.gz 564985 SHA256 a0b1b09592e076e270dcb3ba004616d9ac3147f9de0b
DIST lxc-1.1.0.tar.gz 592543 SHA256 216e806f7e18e5bfbc782493a9e44fc255f24a587d6faee94cda848a0b949155 SHA512 160da88d6dc96cd9f0679f948bfed057c024adcd459fa4b79e872d12284fa3774ac33a13923c6e150072886a371ccfcdf7ab2c4587efa7f6175fc91a67525c4a WHIRLPOOL 2caf81418850ea8b1ecf25b25e799895563ecf1819f32310fcbb4efe88f711eafe2bcb16a0d3b8ee59072c770a5520b4df90a5962215b932e68a4705c4a56d61
DIST lxc-1.1.1.tar.gz 594112 SHA256 64951fdd39df2bea083bb5a8ac35a7390daf2dc7753d8fce33138129892ef672 SHA512 8af3fb43127b57de4e252baf5cb387270955062ff3838e4807a93d04520ca23f0457913bc8274da51b20961fb08650f9b976a84d395785aca2b2d300b285d549 WHIRLPOOL 4f28b976dd6710705d6361b9a45fef9a1265dffef0cedd0fb304f2820585ece3e2bb64d4c5289d444b3ab55bac265850943c63cdf258c40c45c99176a788ca2a
DIST lxc-1.1.2.tar.gz 597158 SHA256 f22fcf2659ca98dfe864e632374de98c42cdf465d0c694834b6f6098a3cb8519 SHA512 7c4c9b5418321eedcd37a3f5c2c99ff227de48f672cabd1722a74722077d33badb038675ec95fc3e338eaf2b06972c4ffb2e11f36347587ef71a95fad5b66daa WHIRLPOOL 2b657a9195b6357a367f6aa7609952d9162aae7d7be3f2c5e4cda4b2e81f2c7411835e75af5740cca053d445a3cf7dc7457f9e76ca866de7265e99ed42c744e9
DIST lxc-1.1.3.tar.gz 599889 SHA256 b75fb8e376d3313e152f31fb7372b68f33a953a12191a39de4cded04fff94300 SHA512 cafa4fbe4fe23b8c0b98007a79f20899c4a3b98c51d797b9c16e38dfec1eee5a513b58621308fe6551707d38028d9e5bd78ade8822691ffe4a7a369b10a48dda WHIRLPOOL 04ad57d8b189ab089b27adad8e511dcc2e5c563505f8134323ac9d738283bd5d0d929ebadeb69cd49ea68ea3e182f22c72590505cbf6f9d8438112e46909e1b5

@ -0,0 +1,35 @@
Index: lxc-lxc-1.1.3/config/bash/Makefile.am
===================================================================
--- lxc-lxc-1.1.3.orig/config/bash/Makefile.am
+++ lxc-lxc-1.1.3/config/bash/Makefile.am
@@ -2,12 +2,12 @@ EXTRA_DIST = lxc
if ENABLE_BASH
install-bash:
- $(MKDIR_P) $(DESTDIR)$(sysconfdir)/bash_completion.d/
- $(INSTALL_DATA) lxc $(DESTDIR)$(sysconfdir)/bash_completion.d/
+ $(MKDIR_P) $(DESTDIR)$(datarootdir)/bash-completion/completions//
+ $(INSTALL_DATA) lxc $(DESTDIR)$(datarootdir)/bash-completion/completions/
uninstall-bash:
- rm -f $(DESTDIR)$(sysconfdir)/bash_completion.d/lxc
- rmdir $(DESTDIR)$(sysconfdir)/bash_completion.d/ || :
+ rm -f $(DESTDIR)$(datarootdir)/bash-completion/completions/lxc
+ rmdir $(DESTDIR)$(datarootdir)/bash-completion/ || :
install-data-local: install-bash
uninstall-local: uninstall-bash
Index: lxc-lxc-1.1.3/config/bash/lxc.in
===================================================================
--- lxc-lxc-1.1.3.orig/config/bash/lxc.in
+++ lxc-lxc-1.1.3/config/bash/lxc.in
@@ -1,4 +1,3 @@
-have lxc-start && {
_lxc_names() {
COMPREPLY=( $( compgen -W "$( lxc-ls )" "$cur" ) )
}
@@ -100,4 +99,3 @@ have lxc-start && {
complete -o default -F _lxc_generic_o lxc-clone
complete -o default -F _lxc_generic_o lxc-start-ephemeral
-}

@ -111,29 +111,8 @@ stop() {
return 0
fi
init_pid=$(lxc-info -n ${CONTAINER} --pid | awk '{ print $2 }')
if [ -z "${init_pid}" ]; then
ewarn "${CONTAINER} doesn't seem to be running."
return 0
fi
ebegin "Shutting down system in ${CONTAINER}"
kill -PWR ${init_pid}
eend $?
TIMEOUT=${TIMEOUT:-30}
i=0
while [ -n "$(pgrep -P ${init_pid})" -a $i -lt ${TIMEOUT} ]; do
sleep 1
i=$(expr $i + 1)
done
if [ -n "${missingprocs}" ]; then
ewarn "Something failed to properly shut down in ${CONTAINER}"
fi
# 10s should be enough to shut everything down
ebegin "Stopping ${CONTAINER}"
lxc-stop -n ${CONTAINER}
lxc-stop -t 10 -n ${CONTAINER}
eend $?
}

@ -0,0 +1,194 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="5"
MY_P="${P/_/-}"
PYTHON_COMPAT=( python{3_3,3_4} )
DISTUTILS_OPTIONAL=1
inherit autotools bash-completion-r1 distutils-r1 eutils linux-info versionator flag-o-matic systemd
DESCRIPTION="LinuX Containers userspace utilities"
HOMEPAGE="https://linuxcontainers.org/"
SRC_URI="https://github.com/lxc/lxc/archive/${MY_P}.tar.gz"
KEYWORDS="~amd64 ~arm ~arm64"
LICENSE="LGPL-3"
SLOT="0"
IUSE="cgmanager doc examples lua python seccomp"
RDEPEND="net-libs/gnutls
sys-libs/libcap
cgmanager? ( app-admin/cgmanager )
lua? ( >=dev-lang/lua-5.1:= )
python? ( ${PYTHON_DEPS} )
seccomp? ( sys-libs/libseccomp )"
DEPEND="${RDEPEND}
doc? ( app-text/docbook-sgml-utils )
>=sys-kernel/linux-headers-3.2"
RDEPEND="${RDEPEND}
sys-process/criu
sys-apps/util-linux
app-misc/pax-utils
virtual/awk"
CONFIG_CHECK="~CGROUPS ~CGROUP_DEVICE
~CPUSETS ~CGROUP_CPUACCT
~CGROUP_SCHED
~NAMESPACES
~IPC_NS ~USER_NS ~PID_NS
~NETLINK_DIAG ~PACKET_DIAG
~INET_UDP_DIAG ~INET_TCP_DIAG
~UNIX_DIAG ~CHECKPOINT_RESTORE
~DEVPTS_MULTIPLE_INSTANCES
~CGROUP_FREEZER
~UTS_NS ~NET_NS
~VETH ~MACVLAN
~POSIX_MQUEUE
~!NETPRIO_CGROUP
~!GRKERNSEC_CHROOT_MOUNT
~!GRKERNSEC_CHROOT_DOUBLE
~!GRKERNSEC_CHROOT_PIVOT
~!GRKERNSEC_CHROOT_CHMOD
~!GRKERNSEC_CHROOT_CAPS
"
ERROR_DEVPTS_MULTIPLE_INSTANCES="CONFIG_DEVPTS_MULTIPLE_INSTANCES: needed for pts inside container"
ERROR_CGROUP_FREEZER="CONFIG_CGROUP_FREEZER: needed to freeze containers"
ERROR_UTS_NS="CONFIG_UTS_NS: needed to unshare hostnames and uname info"
ERROR_NET_NS="CONFIG_NET_NS: needed for unshared network"
ERROR_VETH="CONFIG_VETH: needed for internal (host-to-container) networking"
ERROR_MACVLAN="CONFIG_MACVLAN: needed for internal (inter-container) networking"
ERROR_NETLINK_DIAG="CONFIG_NETLINK_DIAG: needed for lxc-checkpoint"
ERROR_PACKET_DIAG="CONFIG_PACKET_DIAG: needed for lxc-checkpoint"
ERROR_INET_UDP_DIAG="CONFIG_INET_UDP_DIAG: needed for lxc-checkpoint"
ERROR_INET_TCP_DIAG="CONFIG_INET_TCP_DIAG: needed for lxc-checkpoint"
ERROR_UNIX_DIAG="CONFIG_UNIX_DIAG: needed for lxc-checkpoint"
ERROR_CHECKPOINT_RESTORE="CONFIG_CHECKPOINT_RESTORE: needed for lxc-checkpoint"
ERROR_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE: needed for lxc-execute command"
ERROR_NETPRIO_CGROUP="CONFIG_NETPRIO_CGROUP: as of kernel 3.3 and lxc 0.8.0_rc1 this causes LXCs to fail booting."
ERROR_GRKERNSEC_CHROOT_MOUNT="CONFIG_GRKERNSEC_CHROOT_MOUNT: some GRSEC features make LXC unusable see postinst notes"
ERROR_GRKERNSEC_CHROOT_DOUBLE="CONFIG_GRKERNSEC_CHROOT_DOUBLE: some GRSEC features make LXC unusable see postinst notes"
ERROR_GRKERNSEC_CHROOT_PIVOT="CONFIG_GRKERNSEC_CHROOT_PIVOT: some GRSEC features make LXC unusable see postinst notes"
ERROR_GRKERNSEC_CHROOT_CHMOD="CONFIG_GRKERNSEC_CHROOT_CHMOD: some GRSEC features make LXC unusable see postinst notes"
ERROR_GRKERNSEC_CHROOT_CAPS="CONFIG_GRKERNSEC_CHROOT_CAPS: some GRSEC features make LXC unusable see postinst notes"
DOCS=(AUTHORS CONTRIBUTING MAINTAINERS NEWS README doc/FAQ.txt)
S="${WORKDIR}/${PN}-${MY_P}"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
src_prepare() {
epatch "${FILESDIR}"/${PN}-1.1.3-bash-completion.patch
eautoreconf
}
src_configure() {
append-flags -fno-strict-aliasing
if use python; then
#541932
python_setup "python3*"
export PKG_CONFIG_PATH="${T}/${EPYTHON}/pkgconfig:${PKG_CONFIG_PATH}"
fi
# I am not sure about the --with-rootfs-path
# /var/lib/lxc is probably more appropriate than
# /usr/lib/lxc.
econf \
--localstatedir=/var \
--bindir=/usr/bin \
--sbindir=/usr/bin \
--docdir=/usr/share/doc/${PF} \
--with-config-path=/var/lib/lxc \
--with-rootfs-path=/var/lib/lxc/rootfs \
--with-distro=gentoo \
--with-runtime-path=/run \
--disable-apparmor \
$(use_enable cgmanager) \
$(use_enable doc) \
$(use_enable examples) \
$(use_enable lua) \
$(use_enable python) \
$(use_enable seccomp)
}
python_compile() {
distutils-r1_python_compile build_ext -I ../ -L ../${PN}
}
src_compile() {
default
if use python; then
pushd "${S}/src/python-${PN}" > /dev/null
distutils-r1_src_compile
popd > /dev/null
fi
}
src_install() {
default
mv "${ED}"/usr/share/bash-completion/completions/${PN} "${ED}"/$(get_bashcompdir)/${PN}-start || die
bashcomp_alias ${PN}-start \
${PN}-{attach,cgroup,clone,console,create,destroy,device,execute,freeze,info,monitor,snapshot,start-ephemeral,stop,unfreeze,wait}
if use python; then
pushd "${S}/src/python-lxc" > /dev/null
# Unset DOCS. This has been handled by the default target
unset DOCS
distutils-r1_src_install
popd > /dev/null
fi
keepdir /etc/lxc /var/lib/lxc/rootfs /var/log/lxc
find "${D}" -name '*.la' -delete
# Gentoo-specific additions!
# Use initd.3 per #517144
newinitd "${FILESDIR}/${PN}.initd.3" ${PN}
# lxc-devsetup script
exeinto /usr/libexec/${PN}
doexe config/init/systemd/${PN}-devsetup
# Remember to compare our systemd unit file with the upstream one
# config/init/systemd/lxc.service.in
systemd_newunit "${FILESDIR}"/${PN}_at.service.2 "lxc@.service"
}
pkg_postinst() {
elog ""
elog "Starting from version ${PN}-1.1.0-r3, the default lxc path has been"
elog "moved from /etc/lxc to /var/lib/lxc. If you still want to use /etc/lxc"
elog "please add the following to your /etc/lxc/default.conf"
elog "lxc.lxcpath = /etc/lxc"
elog ""
elog "There is an init script provided with the package now; no documentation"
elog "is currently available though, so please check out /etc/init.d/lxc ."
elog "You _should_ only need to symlink it to /etc/init.d/lxc.configname"
elog "to start the container defined into /etc/lxc/configname.conf ."
elog "For further information about LXC development see"
elog "http://blog.flameeyes.eu/tag/lxc" # remove once proper doc is available
elog ""
}

@ -0,0 +1,41 @@
correctly initializes UID/GID values
gets UID correctly in light of user namespace API
origionally from https://462666.bugs.gentoo.org/attachment.cgi?id=342888
--- a/vmblock-only/linux/inode.c 2013-03-20 17:37:48.000000000 +0100
+++ b/vmblock-only/linux/inode.c 2013-03-20 17:41:22.000000000 +0100
@@ -135,7 +135,8 @@
inode->i_size = INODE_TO_IINFO(inode)->nameLen;
inode->i_version = 1;
inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
- inode->i_uid = inode->i_gid = 0;
+ inode->i_uid = GLOBAL_ROOT_UID;
+ inode->i_gid = GLOBAL_ROOT_GID;
inode->i_op = &LinkInodeOps;
d_add(dentry, inode);
--- a/vmci-only/linux/driver.c 2013-03-20 17:57:35.000000000 +0100
+++ b/vmci-only/linux/driver.c 2013-03-20 17:57:43.000000000 +0100
@@ -740,7 +740,7 @@
goto init_release;
}
- user = current_uid();
+ user = from_kuid(current_user_ns(), current_uid());
retval = VMCIContext_InitContext(initBlock.cid, initBlock.flags,
0 /* Unused */, vmciLinux->userVersion,
&user, &vmciLinux->context);
--- a/vsock-only/linux/af_vsock.c 2013-03-20 18:01:48.000000000 +0100
+++ b/vsock-only/linux/af_vsock.c 2013-03-20 18:01:58.000000000 +0100
@@ -2866,7 +2866,7 @@
vsk->connectTimeout = psk->connectTimeout;
} else {
vsk->trusted = capable(CAP_NET_ADMIN);
- vsk->owner = current_uid();
+ vsk->owner = from_kuid(current_user_ns(), current_uid());
vsk->queuePairSize = VSOCK_DEFAULT_QP_SIZE;
vsk->queuePairMinSize = VSOCK_DEFAULT_QP_SIZE_MIN;
vsk->queuePairMaxSize = VSOCK_DEFAULT_QP_SIZE_MAX;

@ -0,0 +1,28 @@
uses the new proc_create function to create /proc entries
instead of create_proc_entry which was deprecated:
https://lkml.org/lkml/2013/4/11/215
--- a/vmblock-only/linux/control.c 2013-05-21 19:21:19.165750556 +0200
+++ b/vmblock-only/linux/control.c 2013-05-21 19:22:18.363747723 +0200
@@ -208,9 +208,10 @@
VMBlockSetProcEntryOwner(controlProcMountpoint);
/* Create /proc/fs/vmblock/dev */
- controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME,
- VMBLOCK_CONTROL_MODE,
- controlProcDirEntry);
+ controlProcEntry = proc_create(VMBLOCK_CONTROL_DEVNAME,
+ VMBLOCK_CONTROL_MODE,
+ controlProcDirEntry,
+ &ControlFileOps);
if (!controlProcEntry) {
Warning("SetupProcDevice: could not create " VMBLOCK_DEVICE "\n");
remove_proc_entry(VMBLOCK_CONTROL_MOUNTPOINT, controlProcDirEntry);
@@ -218,7 +219,6 @@
return -EINVAL;
}
- controlProcEntry->proc_fops = &ControlFileOps;
return 0;
}

@ -0,0 +1,24 @@
uses __getname/__putname instead of getname. getname was deprecated
the new code calls __getname (which really is a specific type of
memory allocator, then copies the string safely from user space
into the allocated buffer
--- vmblock-only/linux/control.c 2014-03-15 15:28:40.871076076 +0100
+++ vmblock-only/linux/control.c.new 2014-03-15 15:29:15.079074439 +0100
@@ -279,11 +279,17 @@
int i;
int retval;
- name = getname(buf);
+ name = __getname();
if (IS_ERR(name)) {
return PTR_ERR(name);
}
+ i = strncpy_from_user(name, buf, PATH_MAX);
+ if (i < 0 || i == PATH_MAX) {
+ __putname(name);
+ return -EINVAL;
+ }
+
for (i = strlen(name) - 1; i >= 0 && name[i] == '/'; i--) {

@ -0,0 +1,89 @@
undefines DEPRECATED which is unfortunately also defined (as a string)
in <linux/printk.h>. Realistically, this macro isn't even used, so this
doesn't matter much. But it hushes some very loud warnings.
diff -rupN vmblock-only/shared/vm_assert.h vmblock-only.new/shared/vm_assert.h
--- vmblock-only/shared/vm_assert.h 2014-10-09 21:50:54.221159088 -0400
+++ vmblock-only.new/shared/vm_assert.h 2014-10-09 21:53:04.612166156 -0400
@@ -237,11 +237,13 @@ EXTERN void WarningThrottled(uint32 *cou
#define LOG_ONCE(_s) DO_ONCE(Log _s)
#ifdef VMX86_DEVEL
+ #undef DEPRECATED
#define DEPRECATED(_fix) DO_ONCE( \
Warning("%s:%d: %s is DEPRECATED; %s\n", \
__FILE__, __LINE__, __FUNCTION__, \
_fix))
#else
+ #undef DEPRECATED
#define DEPRECATED(_fix) do {} while (0)
#endif
diff -rupN vmci-only/shared/vm_assert.h vmci-only.new/shared/vm_assert.h
--- vmci-only/shared/vm_assert.h 2014-10-09 21:50:54.222159088 -0400
+++ vmci-only.new/shared/vm_assert.h 2014-10-09 21:52:52.348165492 -0400
@@ -237,11 +237,13 @@ EXTERN void WarningThrottled(uint32 *cou
#define LOG_ONCE(_s) DO_ONCE(Log _s)
#ifdef VMX86_DEVEL
+ #undef DEPRECATED
#define DEPRECATED(_fix) DO_ONCE( \
Warning("%s:%d: %s is DEPRECATED; %s\n", \
__FILE__, __LINE__, __FUNCTION__, \
_fix))
#else
+ #undef DEPRECATED
#define DEPRECATED(_fix) do {} while (0)
#endif
diff -rupN vmmon-only/include/vm_assert.h vmmon-only.new/include/vm_assert.h
--- vmmon-only/include/vm_assert.h 2014-10-09 21:50:54.222159088 -0400
+++ vmmon-only.new/include/vm_assert.h 2014-10-09 21:52:36.877164653 -0400
@@ -237,11 +237,13 @@ EXTERN void WarningThrottled(uint32 *cou
#define LOG_ONCE(_s) DO_ONCE(Log _s)
#ifdef VMX86_DEVEL
+ #undef DEPRECATED
#define DEPRECATED(_fix) DO_ONCE( \
Warning("%s:%d: %s is DEPRECATED; %s\n", \
__FILE__, __LINE__, __FUNCTION__, \
_fix))
#else
+ #undef DEPRECATED
#define DEPRECATED(_fix) do {} while (0)
#endif
diff -rupN vmnet-only/vm_assert.h vmnet-only.new/vm_assert.h
--- vmnet-only/vm_assert.h 2014-10-09 21:50:54.222159088 -0400
+++ vmnet-only.new/vm_assert.h 2014-10-09 21:52:57.736165784 -0400
@@ -237,11 +237,13 @@ EXTERN void WarningThrottled(uint32 *cou
#define LOG_ONCE(_s) DO_ONCE(Log _s)
#ifdef VMX86_DEVEL
+ #undef DEPRECATED
#define DEPRECATED(_fix) DO_ONCE( \
Warning("%s:%d: %s is DEPRECATED; %s\n", \
__FILE__, __LINE__, __FUNCTION__, \
_fix))
#else
+ #undef DEPRECATED
#define DEPRECATED(_fix) do {} while (0)
#endif
diff -rupN vsock-only/shared/vm_assert.h vsock-only.new/shared/vm_assert.h
--- vsock-only/shared/vm_assert.h 2014-10-09 21:50:54.222159088 -0400
+++ vsock-only.new/shared/vm_assert.h 2014-10-09 21:52:45.352165112 -0400
@@ -237,11 +237,13 @@ EXTERN void WarningThrottled(uint32 *cou
#define LOG_ONCE(_s) DO_ONCE(Log _s)
#ifdef VMX86_DEVEL
+ #undef DEPRECATED
#define DEPRECATED(_fix) DO_ONCE( \
Warning("%s:%d: %s is DEPRECATED; %s\n", \
__FILE__, __LINE__, __FUNCTION__, \
_fix))
#else
+ #undef DEPRECATED
#define DEPRECATED(_fix) do {} while (0)
#endif

@ -0,0 +1,115 @@
hushes warnings about unused typedefs which are part of the "static assert"
technique that the code uses. We simply add an "__attribute__((unused)) to each of them
--- vmblock-only/shared/vm_assert.h 2014-10-07 22:43:39.519402467 -0400
+++ vmblock-only/shared/vm_assert.h 2014-10-07 22:48:01.346409957 -0400
@@ -317,7 +317,7 @@ EXTERN void WarningThrottled(uint32 *cou
#define ASSERT_ON_COMPILE(e) \
do { \
enum { AssertOnCompileMisused = ((e) ? 1 : -1) }; \
- typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
+ __attribute__((unused)) typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
} while (0)
--- vmci-only/shared/vm_assert.h 2014-10-07 22:43:39.519402467 -0400
+++ vmci-only/shared/vm_assert.h 2014-10-07 22:47:51.829409685 -0400
@@ -317,7 +317,7 @@ EXTERN void WarningThrottled(uint32 *cou
#define ASSERT_ON_COMPILE(e) \
do { \
enum { AssertOnCompileMisused = ((e) ? 1 : -1) }; \
- typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
+ __attribute__((unused)) typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
} while (0)
--- vmmon-only/include/vm_assert.h 2014-10-07 22:43:39.520402467 -0400
+++ vmmon-only/include/vm_assert.h 2014-10-07 22:47:39.246409325 -0400
@@ -317,7 +317,7 @@ EXTERN void WarningThrottled(uint32 *cou
#define ASSERT_ON_COMPILE(e) \
do { \
enum { AssertOnCompileMisused = ((e) ? 1 : -1) }; \
- typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
+ __attribute__((unused)) typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
} while (0)
--- vmnet-only/vm_assert.h 2014-10-07 22:43:39.520402467 -0400
+++ vmnet-only/vm_assert.h 2014-10-07 22:47:55.804409799 -0400
@@ -317,7 +317,7 @@ EXTERN void WarningThrottled(uint32 *cou
#define ASSERT_ON_COMPILE(e) \
do { \
enum { AssertOnCompileMisused = ((e) ? 1 : -1) }; \
- typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
+ __attribute__((unused)) typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
} while (0)
--- vsock-only/shared/vm_assert.h 2014-10-07 22:47:11.595408534 -0400
+++ vsock-only/shared/vm_assert.h 2014-10-07 22:45:55.715406363 -0400
@@ -317,7 +317,7 @@ EXTERN void WarningThrottled(uint32 *cou
#define ASSERT_ON_COMPILE(e) \
do { \
enum { AssertOnCompileMisused = ((e) ? 1 : -1) }; \
- typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
+ __attribute__((unused)) typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
} while (0)
--- vsock-only/shared/vm_atomic.h 2013-11-05 23:33:27.000000000 -0500
+++ vsock-only/shared/vm_atomic.h 2014-10-07 22:53:06.024418673 -0400
@@ -2394,7 +2394,7 @@ Atomic_TestBit64(Atomic_uint64 *var, //
&& 8 * sizeof (out) == size \
&& 8 * sizeof (cast) == size \
? 1 : -1 }; \
- typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
+ __attribute__((unused)) typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
} \
\
\
--- vmci-only/shared/vm_atomic.h 2013-11-05 23:33:27.000000000 -0500
+++ vmci-only/shared/vm_atomic.h 2014-10-07 22:53:24.873419213 -0400
@@ -2394,7 +2394,7 @@ Atomic_TestBit64(Atomic_uint64 *var, //
&& 8 * sizeof (out) == size \
&& 8 * sizeof (cast) == size \
? 1 : -1 }; \
- typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
+ __attribute__((unused)) typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
} \
\
\
--- vmblock-only/shared/vm_atomic.h 2013-11-05 23:33:27.000000000 -0500
+++ vmblock-only/shared/vm_atomic.h 2014-10-07 22:53:31.073419390 -0400
@@ -2394,7 +2394,7 @@ Atomic_TestBit64(Atomic_uint64 *var, //
&& 8 * sizeof (out) == size \
&& 8 * sizeof (cast) == size \
? 1 : -1 }; \
- typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
+ __attribute__((unused)) typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
} \
\
--- vmnet-only/vm_atomic.h 2013-11-06 00:40:52.000000000 -0500
+++ vmnet-only/vm_atomic.h 2014-10-07 23:04:50.637438831 -0400
@@ -2394,7 +2394,7 @@ Atomic_TestBit64(Atomic_uint64 *var, //
&& 8 * sizeof (out) == size \
&& 8 * sizeof (cast) == size \
? 1 : -1 }; \
- typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
+ __attribute__((unused)) typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
} \
\
\
--- vmmon-only/include/vm_atomic.h 2013-11-06 00:40:52.000000000 -0500
+++ vmmon-only/include/vm_atomic.h 2014-10-07 23:04:50.637438831 -0400
@@ -2394,7 +2394,7 @@ Atomic_TestBit64(Atomic_uint64 *var, //
&& 8 * sizeof (out) == size \
&& 8 * sizeof (cast) == size \
? 1 : -1 }; \
- typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
+ __attribute__((unused)) typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
} \
\
\

@ -0,0 +1,34 @@
starting with kernel 3.6, d_revalidate takes an unsigned int "flags"
as the second argument, not a nameidata pointer! see fs/namei.c
for implementation
diff -Naur vmblock-only/linux/dentry.c vmblock-only/linux/dentry.c
--- vmblock-only/linux/dentry.c 2013-11-05 23:33:26.000000000 -0500
+++ vmblock-only/linux/dentry.c 2014-04-26 10:58:03.062635343 -0400
@@ -32,7 +32,7 @@
#include "block.h"
-static int DentryOpRevalidate(struct dentry *dentry, struct nameidata *nd);
+static int DentryOpRevalidate(struct dentry *dentry, unsigned int flags);
struct dentry_operations LinkDentryOps = {
.d_revalidate = DentryOpRevalidate,
@@ -60,7 +60,7 @@
static int
DentryOpRevalidate(struct dentry *dentry, // IN: dentry revalidating
- struct nameidata *nd) // IN: lookup flags & intent
+ unsigned int flags) // IN: lookup flags & intent
{
VMBlockInodeInfo *iinfo;
struct nameidata actualNd;
@@ -101,7 +101,7 @@
if (actualDentry &&
actualDentry->d_op &&
actualDentry->d_op->d_revalidate) {
- return actualDentry->d_op->d_revalidate(actualDentry, nd);
+ return actualDentry->d_op->d_revalidate(actualDentry, flags);
}
if (compat_path_lookup(iinfo->name, 0, &actualNd)) {

@ -0,0 +1,36 @@
starting with kernel 3.6, d_revalidate takes an unsigned int "flags"
as the second argument, not a nameidata pointer! see fs/namei.c
for implementation. Also changing vfs_follow_link to nd_set_link.
See: https://lkml.org/lkml/2013/9/9/236
diff -Naur vmblock-only/linux/inode.c vmblock-only/linux/inode.c
--- vmblock-only/linux/inode.c 2013-11-05 23:33:26.000000000 -0500
+++ vmblock-only/linux/inode.c 2014-04-26 10:58:03.063635343 -0400
@@ -36,7 +36,7 @@
/* Inode operations */
static struct dentry *InodeOpLookup(struct inode *dir,
- struct dentry *dentry, struct nameidata *nd);
+ struct dentry *dentry, unsigned int flags);
static int InodeOpReadlink(struct dentry *dentry, char __user *buffer, int buflen);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
static void *InodeOpFollowlink(struct dentry *dentry, struct nameidata *nd);
@@ -75,7 +75,7 @@
static struct dentry *
InodeOpLookup(struct inode *dir, // IN: parent directory's inode
struct dentry *dentry, // IN: dentry to lookup
- struct nameidata *nd) // IN: lookup intent and information
+ unsigned int flags) // IN: lookup intent and information
{
char *filename;
struct inode *inode;
@@ -221,7 +221,8 @@
goto out;
}
- ret = vfs_follow_link(nd, iinfo->name);
+ nd_set_link(nd, iinfo->name);
+ ret = 0;
out:
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)

@ -0,0 +1,26 @@
fixes a bug where sizeof was being used on a pointer when they clearly
meant to use the size of the array referred to. Fortunately, the amount is
always smaller than the actual size of the buffer, so likely not a security issue
(and was fixed in vmware-workstaiton 10
diff -rupN vmnet-only/hub.c vmnet-only.new/hub.c
--- vmnet-only/hub.c 2013-11-06 00:40:52.000000000 -0500
+++ vmnet-only.new/hub.c 2014-10-07 18:45:34.403918680 -0400
@@ -129,7 +129,7 @@ VNetHubFindHubByID(uint8 idNum[VNET_PVN_
{
VNetHub *currHub = vnetHub;
while (currHub && (currHub->hubType != HUB_TYPE_PVN ||
- memcmp(idNum, currHub->id.pvnID, sizeof idNum))) {
+ memcmp(idNum, currHub->id.pvnID, VNET_PVN_ID_LEN))) {
currHub = currHub->next;
}
return currHub;
@@ -312,7 +312,7 @@ VNetHubAlloc(Bool allocPvn, // IN: TRUE
if (allocPvn) {
hub->hubType = HUB_TYPE_PVN;
- memcpy(hub->id.pvnID, id, sizeof id);
+ memcpy(hub->id.pvnID, id, VNET_PVN_ID_LEN);
++pvnInstance;
} else {
hub->hubType = HUB_TYPE_VNET;

@ -0,0 +1,41 @@
replaces usage of vfs_readdir with iterate_dir. origionally found here:
https://bugs.gentoo.org/show_bug.cgi?id=508204
diff -Naur vmblock-only/linux/file.c vmblock-only/linux/file.c
--- vmblock-only/linux/file.c 2013-11-05 23:33:26.000000000 -0500
+++ vmblock-only/linux/file.c 2014-04-26 10:58:03.062635343 -0400
@@ -166,11 +166,9 @@
static int
FileOpReaddir(struct file *file, // IN
- void *dirent, // IN
- filldir_t filldir) // IN
+ struct dir_context *ctx)
{
int ret;
- FilldirInfo info;
struct file *actualFile;
if (!file) {
@@ -184,11 +182,8 @@
return -EINVAL;
}
- info.filldir = filldir;
- info.dirent = dirent;
-
actualFile->f_pos = file->f_pos;
- ret = vfs_readdir(actualFile, Filldir, &info);
+ ret = iterate_dir(actualFile, ctx);
file->f_pos = actualFile->f_pos;
return ret;
@@ -237,7 +232,7 @@
struct file_operations RootFileOps = {
- .readdir = FileOpReaddir,
+ .iterate = FileOpReaddir,
.open = FileOpOpen,
.release = FileOpRelease,
};

@ -0,0 +1,53 @@
simply remove the code for Filldir since it is no longer used with the new
iterate_dir API
diff -rupN vmblock-only/linux/file.c vmblock-only.new/linux/file.c
--- vmblock-only/linux/file.c 2014-10-07 23:22:46.832469618 -0400
+++ vmblock-only.new/linux/file.c 2014-10-07 23:24:35.276472720 -0400
@@ -38,46 +38,6 @@ typedef u64 inode_num_t;
typedef ino_t inode_num_t;
#endif
-/* Specifically for our filldir_t callback */
-typedef struct FilldirInfo {
- filldir_t filldir;
- void *dirent;
-} FilldirInfo;
-
-
-/*
- *----------------------------------------------------------------------------
- *
- * Filldir --
- *
- * Callback function for readdir that we use in place of the one provided.
- * This allows us to specify that each dentry is a symlink, but pass through
- * everything else to the original filldir function.
- *
- * Results:
- * Original filldir's return value.
- *
- * Side effects:
- * Directory information gets copied to user's buffer.
- *
- *----------------------------------------------------------------------------
- */
-
-static int
-Filldir(void *buf, // IN: Dirent buffer passed from FileOpReaddir
- const char *name, // IN: Dirent name
- int namelen, // IN: len of dirent's name
- loff_t offset, // IN: Offset
- inode_num_t ino, // IN: Inode number of dirent
- unsigned int d_type) // IN: Type of file
-{
- FilldirInfo *info = buf;
-
- /* Specify DT_LNK regardless */
- return info->filldir(info->dirent, name, namelen, offset, ino, DT_LNK);
-}
-
-
/* File operations */
/*

@ -0,0 +1,39 @@
the new API to get the hooknum
origionally from http://forums.gentoo.org/viewtopic-t-979802-start-25.html
--- work/vmnet-only/filter.c 2013-08-27 20:29:04.000000000 +0100
+++ patched/vmnet-only/filter.c 2014-01-26 01:09:05.184893854 +0000
@@ -27,6 +27,7 @@
#include "compat_module.h"
#include <linux/mutex.h>
#include <linux/netdevice.h>
+#include <linux/version.h>
#if COMPAT_LINUX_VERSION_CHECK_LT(3, 2, 0)
# include <linux/module.h>
#else
@@ -203,7 +204,11 @@
#endif
static unsigned int
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
VNetFilterHookFn(unsigned int hooknum, // IN:
+#else
+VNetFilterHookFn(const struct nf_hook_ops *ops, // IN:
+#endif
#ifdef VMW_NFHOOK_USES_SKB
struct sk_buff *skb, // IN:
#else
@@ -252,7 +257,12 @@
/* When the host transmits, hooknum is VMW_NF_INET_POST_ROUTING. */
/* When the host receives, hooknum is VMW_NF_INET_LOCAL_IN. */
- transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
+
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
+ transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
+ #else
+ transmit = (ops->hooknum == VMW_NF_INET_POST_ROUTING);
+ #endif
packetHeader = compat_skb_network_header(skb);
ip = (struct iphdr*)packetHeader;

@ -0,0 +1,15 @@
replacing usage of vfs_readlink with new readlink_copy API
see: http://permalink.gmane.org/gmane.linux.kernel.commits.head/445090
diff -rupN vmblock-only/linux/inode.c vmblock-only/linux/inode.c
--- vmblock-only/linux/inode.c 2014-10-05 23:20:14.545218357 -0400
+++ vmblock-only/linux/inode.c 2014-10-05 23:33:01.549259933 -0400
@@ -178,7 +178,7 @@ InodeOpReadlink(struct dentry *dentry,
return -EINVAL;
}
- return vfs_readlink(dentry, buffer, buflen, iinfo->name);
+ return readlink_copy(buffer, buflen, iinfo->name);
}

@ -0,0 +1,46 @@
removing the no longer existing second parameter to sk_data_ready
doesn't seem it ever served a purpose.
diff -rupN vsock-only/linux/notify.c vsock-only.new/linux/notify.c
--- vsock-only/linux/notify.c 2013-11-05 23:33:27.000000000 -0500
+++ vsock-only.new/linux/notify.c 2014-10-05 23:46:47.943304728 -0400
@@ -515,8 +515,11 @@ VSockVmciHandleWrote(struct sock *sk,
vsk = vsock_sk(sk);
PKT_FIELD(vsk, sentWaitingRead) = FALSE;
#endif
-
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
+ sk->sk_data_ready(sk);
+#else
sk->sk_data_ready(sk, 0);
+#endif
}
diff -rupN vsock-only/linux/notifyQState.c vsock-only.new/linux/notifyQState.c
--- vsock-only/linux/notifyQState.c 2013-11-05 23:33:27.000000000 -0500
+++ vsock-only.new/linux/notifyQState.c 2014-10-05 23:46:33.231303931 -0400
@@ -164,7 +164,11 @@ VSockVmciHandleWrote(struct sock *sk,
struct sockaddr_vm *dst, // IN: unused
struct sockaddr_vm *src) // IN: unused
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
+ sk->sk_data_ready(sk);
+#else
sk->sk_data_ready(sk, 0);
+#endif
}
@@ -566,7 +570,11 @@ VSockVmciNotifyPktRecvPostDequeue(struct
}
/* See the comment in VSockVmciNotifyPktSendPostEnqueue */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
+ sk->sk_data_ready(sk);
+#else
sk->sk_data_ready(sk, 0);
+#endif
}
return err;

@ -0,0 +1,16 @@
new alloc_netdev requires a new parameter. All examples in the kernel i've seen just
use the constant NET_NAME_UNKNOWN.
origionally from: https://communities.vmware.com/message/2425189
diff -rupN vmnet-only/netif.c vmnet-only.new/netif.c
--- vmnet-only/netif.c 2013-11-06 00:40:52.000000000 -0500
+++ vmnet-only.new/netif.c 2014-10-09 17:29:12.361307961 -0400
@@ -149,7 +149,7 @@ VNetNetIf_Create(char *devName, // IN:
memcpy(deviceName, devName, sizeof deviceName);
NULL_TERMINATE_STRING(deviceName);
- dev = alloc_netdev(sizeof *netIf, deviceName, VNetNetIfSetup);
+ dev = alloc_netdev(sizeof *netIf, deviceName, NET_NAME_USER, VNetNetIfSetup);
if (!dev) {
retval = -ENOMEM;
goto out;

@ -0,0 +1,13 @@
diff -rupN vmnet-only/vm_device_version.h vmnet-only.new/vm_device_version.h
--- vmnet-only/vm_device_version.h 2013-11-06 00:40:52.000000000 -0500
+++ vmnet-only.new/vm_device_version.h 2015-05-05 12:03:06.879202223 -0400
@@ -53,7 +53,9 @@
* VMware HD Audio codec
* VMware HD Audio controller
*/
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
#define PCI_VENDOR_ID_VMWARE 0x15AD
+#endif
#define PCI_DEVICE_ID_VMWARE_SVGA2 0x0405
#define PCI_DEVICE_ID_VMWARE_SVGA 0x0710
#define PCI_DEVICE_ID_VMWARE_NET 0x0720

@ -0,0 +1,67 @@
Sources:
https://531682.bugs.gentoo.org/attachment.cgi?id=396484
https://531682.bugs.gentoo.org/attachment.cgi?id=396482
diff -rupN vmblock-only.orig/linux/dentry.c vmblock-only/linux/dentry.c
--- vmblock-only.orig/linux/dentry.c 2015-02-14 18:05:46.000000000 -0500
+++ vmblock-only/linux/dentry.c 2015-02-14 18:09:59.000000000 -0500
@@ -63,7 +63,7 @@ DentryOpRevalidate(struct dentry *dentry
unsigned int flags) // IN: lookup flags & intent
{
VMBlockInodeInfo *iinfo;
- struct nameidata actualNd;
+ struct path actualNd;
struct dentry *actualDentry;
int ret;
diff -rupN vmblock-only.orig/linux/filesystem.c vmblock-only/linux/filesystem.c
--- vmblock-only.orig/linux/filesystem.c 2014-11-20 19:29:15.000000000 -0500
+++ vmblock-only/linux/filesystem.c 2015-02-14 18:10:49.000000000 -0500
@@ -322,7 +322,7 @@ Iget(struct super_block *sb, // IN: f
{
VMBlockInodeInfo *iinfo;
struct inode *inode;
- struct nameidata actualNd;
+ struct path actualNd;
ASSERT(sb);
diff -rupN vmblock-only.orig/shared/compat_namei.h vmblock-only/shared/compat_namei.h
--- vmblock-only.orig/shared/compat_namei.h 2014-11-20 19:29:15.000000000 -0500
+++ vmblock-only/shared/compat_namei.h 2015-02-14 18:08:38.000000000 -0500
@@ -26,21 +26,21 @@
* struct. They were both replaced with a struct path.
*/
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
-#define compat_vmw_nd_to_dentry(nd) (nd).path.dentry
+#define compat_vmw_nd_to_dentry(nd) (nd).dentry
#else
#define compat_vmw_nd_to_dentry(nd) (nd).dentry
#endif
/* In 2.6.25-rc2, path_release(&nd) was replaced with path_put(&nd.path). */
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
-#define compat_path_release(nd) path_put(&(nd)->path)
+#define compat_path_release(nd) path_put(nd)
#else
#define compat_path_release(nd) path_release(nd)
#endif
/* path_lookup was removed in 2.6.39 merge window VFS merge */
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)
-#define compat_path_lookup(name, flags, nd) kern_path(name, flags, &((nd)->path))
+#define compat_path_lookup(name, flags, nd) kern_path(name, flags, nd)
#else
#define compat_path_lookup(name, flags, nd) path_lookup(name, flags, nd)
#endif
diff -u vmblock-only.orig/linux/file.c vmblock-only/linux/file.c
--- vmblock-only.orig/linux/file.c 2015-02-11 12:18:29.000000000 -0500
+++ vmblock-only/linux/file.c 2015-02-11 12:41:41.000000000 -0500
@@ -92,7 +92,7 @@
* and that would try to acquire the inode's semaphore; if the two inodes
* are the same we'll deadlock.
*/
- if (actualFile->f_dentry && inode == actualFile->f_dentry->d_inode) {
+ if (actualFile->f_path.dentry && inode == actualFile->f_path.dentry->d_inode) {
Warning("FileOpOpen: identical inode encountered, open cannot succeed.\n");
if (filp_close(actualFile, current->files) < 0) {
Warning("FileOpOpen: unable to close opened file.\n");

@ -0,0 +1,29 @@
diff -rupN vmci-only/linux/vmciKernelIf.c vmci-only.new/linux/vmciKernelIf.c
--- vmci-only/linux/vmciKernelIf.c 2015-05-05 11:22:55.276071501 -0400
+++ vmci-only.new/linux/vmciKernelIf.c 2015-05-05 11:23:58.912074950 -0400
@@ -40,6 +40,7 @@
#include <linux/socket.h> /* For memcpy_{to,from}iovec(). */
#include <linux/vmalloc.h>
#include <linux/wait.h>
+#include <linux/skbuff.h>
#include "compat_highmem.h"
#include "compat_interrupt.h"
diff -rupN vmci-only/linux/vmciKernelIf.c vmci-only.new/linux/vmciKernelIf.c
--- vmci-only/linux/vmciKernelIf.c 2013-11-05 23:33:26.000000000 -0500
+++ vmci-only.new/linux/vmciKernelIf.c 2015-05-05 11:21:59.929068500 -0400
@@ -1246,11 +1246,11 @@ __VMCIMemcpyFromQueue(void *dest,
}
if (isIovec) {
- struct iovec *iov = (struct iovec *)dest;
+ struct msghdr *msg = dest;
int err;
/* The iovec will track bytesCopied internally. */
- err = memcpy_toiovec(iov, (uint8 *)va + pageOffset, toCopy);
+ err = memcpy_to_msg(msg, (uint8 *)va + pageOffset, toCopy);
if (err != 0) {
kunmap(kernelIf->page[pageIndex]);
return VMCI_ERROR_INVALID_ARGS;

@ -0,0 +1,29 @@
diff -ur vmnet-only.orig/driver.c vmnet-only/driver.c
--- vmnet-only.orig/driver.c 2014-06-13 02:38:25.000000000 +0200
+++ vmnet-only/driver.c 2015-02-21 17:31:22.630656305 +0100
@@ -1236,8 +1236,8 @@
struct inode *inode = NULL;
long err;
- if (filp && filp->f_dentry) {
- inode = filp->f_dentry->d_inode;
+ if (filp && filp->f_path.dentry) {
+ inode = filp->f_path.dentry->d_inode;
}
err = VNetFileOpIoctl(inode, filp, iocmd, ioarg);
return err;
diff -ur vmnet-only.orig/userif.c vmnet-only/userif.c
--- vmnet-only.orig/userif.c 2014-06-13 02:38:25.000000000 +0200
+++ vmnet-only/userif.c 2015-02-21 17:37:46.154589854 +0100
@@ -523,7 +523,10 @@
.iov_base = buf,
.iov_len = len,
};
- return skb_copy_datagram_iovec(skb, 0, &iov, len);
+ struct iov_iter to;
+
+ iov_iter_init(&to, READ, &iov, 1, len);
+ return skb_copy_datagram_iter(skb, 0, &to, len);
}

@ -0,0 +1,12 @@
diff -rupN vsock-only/linux/af_vsock.c vsock-only.new/linux/af_vsock.c
--- vsock-only/linux/af_vsock.c 2015-05-05 11:26:05.145081792 -0400
+++ vsock-only.new/linux/af_vsock.c 2015-05-05 11:30:54.304097466 -0400
@@ -4266,7 +4266,7 @@ VSockVmciDgramSendmsg(struct kiocb *kioc
goto out;
}
- memcpy_fromiovec(VMCI_DG_PAYLOAD(dg), msg->msg_iov, len);
+ memcpy_from_msg(VMCI_DG_PAYLOAD(dg), msg, len);
dg->dst = VMCI_MAKE_HANDLE(remoteAddr->svm_cid, remoteAddr->svm_port);
dg->src = VMCI_MAKE_HANDLE(vsk->localAddr.svm_cid, vsk->localAddr.svm_port);

@ -0,0 +1,15 @@
diff -rupN vsock-only/linux/af_vsock.c vsock-only.new/linux/af_vsock.c
--- vsock-only/linux/af_vsock.c 2015-05-05 11:31:35.710099711 -0400
+++ vsock-only.new/linux/af_vsock.c 2015-05-05 11:36:33.260115840 -0400
@@ -4727,7 +4727,11 @@ VSockVmciDgramRecvmsg(struct kiocb *kioc
}
/* Place the datagram payload in the user's iovec. */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
err = skb_copy_datagram_iovec(skb, sizeof *dg, msg->msg_iov, payloadLen);
+#else
+ err = skb_copy_datagram_iter(skb, sizeof *dg, &msg->msg_iter, payloadLen);
+#endif
if (err) {
goto out;
}

@ -0,0 +1,24 @@
diff -rupN vsock-only.old/linux/af_vsock.c vsock-only/linux/af_vsock.c
--- vsock-only.old/linux/af_vsock.c 2015-05-06 20:41:47.684046762 -0400
+++ vsock-only/linux/af_vsock.c 2015-05-06 20:52:15.245080779 -0400
@@ -4629,7 +4629,7 @@ VSockVmciStreamSendmsg(struct kiocb *kio
* able to send.
*/
- written = vmci_qpair_enquev(vsk->qpair, msg->msg_iov,
+ written = vmci_qpair_enquev(vsk->qpair, &msg->msg_iter.iov,
len - totalWritten, 0);
if (written < 0) {
err = -ENOMEM;
@@ -4874,9 +4874,9 @@ VSockVmciStreamRecvmsg(struct kiocb *kio
}
if (flags & MSG_PEEK) {
- read = vmci_qpair_peekv(vsk->qpair, msg->msg_iov, len - copied, 0);
+ read = vmci_qpair_peekv(vsk->qpair, &msg->msg_iter.iov, len - copied, 0);
} else {
- read = vmci_qpair_dequev(vsk->qpair, msg->msg_iov, len - copied, 0);
+ read = vmci_qpair_dequev(vsk->qpair, &msg->msg_iter.iov, len - copied, 0);
}
if (read < 0) {

@ -0,0 +1,170 @@
diff --git a/vmci-only/linux/driver.c b/vmci-only/linux/driver.c
index 921f25c..41a39e3 100644
--- a/vmci-only/linux/driver.c
+++ b/vmci-only/linux/driver.c
@@ -241,7 +241,24 @@ static unsigned int LinuxDriverPoll(struct file *file, poll_table *wait);
#define LinuxDriverUnlockIoctlPerFD(mutex) do {} while (0)
#endif
-static struct file_operations vmuser_fops;
+/*
+ * Moved file operations initialize here because of incompatibilites
+ * with Gentoo hardened profile/hardend Linux 3.
+ */
+static struct file_operations vmuser_fops = {
+ .owner = THIS_MODULE,
+ .poll = LinuxDriverPoll,
+#ifdef HAVE_UNLOCKED_IOCTL
+ .unlocked_ioctl = LinuxDriver_UnlockedIoctl,
+#else
+ .ioctl = LinuxDriver_Ioctl,
+#endif
+#ifdef HAVE_COMPAT_IOCTL
+ .compat_ioctl = LinuxDriver_UnlockedIoctl,
+#endif
+ .open = LinuxDriver_Open,
+ .release = LinuxDriver_Close
+};
/*
@@ -378,26 +395,6 @@ vmci_host_init(void)
return -ENOMEM;
}
- /*
- * Initialize the file_operations structure. Because this code is always
- * compiled as a module, this is fine to do it here and not in a static
- * initializer.
- */
-
- memset(&vmuser_fops, 0, sizeof vmuser_fops);
- vmuser_fops.owner = THIS_MODULE;
- vmuser_fops.poll = LinuxDriverPoll;
-#ifdef HAVE_UNLOCKED_IOCTL
- vmuser_fops.unlocked_ioctl = LinuxDriver_UnlockedIoctl;
-#else
- vmuser_fops.ioctl = LinuxDriver_Ioctl;
-#endif
-#ifdef HAVE_COMPAT_IOCTL
- vmuser_fops.compat_ioctl = LinuxDriver_UnlockedIoctl;
-#endif
- vmuser_fops.open = LinuxDriver_Open;
- vmuser_fops.release = LinuxDriver_Close;
-
sprintf(linuxState.deviceName, "vmci");
linuxState.major = 10;
linuxState.misc.minor = MISC_DYNAMIC_MINOR;
diff --git a/vmmon-only/linux/driver.c b/vmmon-only/linux/driver.c
index b21dd44..960c2aa 100644
--- a/vmmon-only/linux/driver.c
+++ b/vmmon-only/linux/driver.c
@@ -178,7 +178,22 @@ static struct vm_operations_struct vmuser_mops = {
#endif
};
-static struct file_operations vmuser_fops;
+static struct file_operations vmuser_fops = {
+ .owner = THIS_MODULE,
+ .poll = LinuxDriverPoll,
+#ifdef HAVE_UNLOCKED_IOCTL
+ .unlocked_ioctl = LinuxDriver_UnlockedIoctl,
+#else
+ .ioctl = LinuxDriver_Ioctl,
+#endif
+#ifdef HAVE_COMPAT_IOCTL
+ .compat_ioctl = LinuxDriver_UnlockedIoctl,
+#endif
+ .open = LinuxDriver_Open,
+ .release = LinuxDriver_Close,
+ .mmap = LinuxDriverMmap
+};
+
static struct timer_list tscTimer;
/*
@@ -357,27 +372,6 @@ init_module(void)
spin_lock_init(&linuxState.pollListLock);
#endif
- /*
- * Initialize the file_operations structure. Because this code is always
- * compiled as a module, this is fine to do it here and not in a static
- * initializer.
- */
-
- memset(&vmuser_fops, 0, sizeof vmuser_fops);
- vmuser_fops.owner = THIS_MODULE;
- vmuser_fops.poll = LinuxDriverPoll;
-#ifdef HAVE_UNLOCKED_IOCTL
- vmuser_fops.unlocked_ioctl = LinuxDriver_UnlockedIoctl;
-#else
- vmuser_fops.ioctl = LinuxDriver_Ioctl;
-#endif
-#ifdef HAVE_COMPAT_IOCTL
- vmuser_fops.compat_ioctl = LinuxDriver_UnlockedIoctl;
-#endif
- vmuser_fops.open = LinuxDriver_Open;
- vmuser_fops.release = LinuxDriver_Close;
- vmuser_fops.mmap = LinuxDriverMmap;
-
#ifdef VMX86_DEVEL
devel_init_module();
linuxState.minor = 0;
diff --git a/vmnet-only/driver.c b/vmnet-only/driver.c
index b12b982..40bd4cf 100644
--- a/vmnet-only/driver.c
+++ b/vmnet-only/driver.c
@@ -165,7 +165,22 @@ static long VNetFileOpUnlockedIoctl(struct file * filp,
unsigned int iocmd, unsigned long ioarg);
#endif
-static struct file_operations vnetFileOps;
+static struct file_operations vnetFileOps = {
+ .owner = THIS_MODULE,
+ .read = VNetFileOpRead,
+ .write = VNetFileOpWrite,
+ .poll = VNetFileOpPoll,
+#ifdef HAVE_UNLOCKED_IOCTL
+ .unlocked_ioctl = VNetFileOpUnlockedIoctl,
+#else
+ .ioctl = VNetFileOpIoctl,
+#endif
+#ifdef HAVE_COMPAT_IOCTL
+ .compat_ioctl = VNetFileOpUnlockedIoctl,
+#endif
+ .open = VNetFileOpOpen,
+ .release = VNetFileOpClose
+};
/*
* Utility functions
@@ -476,28 +491,6 @@ init_module(void)
goto err_proto;
}
- /*
- * Initialize the file_operations structure. Because this code is always
- * compiled as a module, this is fine to do it here and not in a static
- * initializer.
- */
-
- memset(&vnetFileOps, 0, sizeof vnetFileOps);
- vnetFileOps.owner = THIS_MODULE;
- vnetFileOps.read = VNetFileOpRead;
- vnetFileOps.write = VNetFileOpWrite;
- vnetFileOps.poll = VNetFileOpPoll;
-#ifdef HAVE_UNLOCKED_IOCTL
- vnetFileOps.unlocked_ioctl = VNetFileOpUnlockedIoctl;
-#else
- vnetFileOps.ioctl = VNetFileOpIoctl;
-#endif
-#ifdef HAVE_COMPAT_IOCTL
- vnetFileOps.compat_ioctl = VNetFileOpUnlockedIoctl;
-#endif
- vnetFileOps.open = VNetFileOpOpen;
- vnetFileOps.release = VNetFileOpClose;
-
retval = register_chrdev(VNET_MAJOR_NUMBER, "vmnet", &vnetFileOps);
if (retval) {
LOG(0, (KERN_NOTICE "/dev/vmnet: could not register major device %d\n",

@ -0,0 +1,41 @@
correctly initializes UID/GID values
gets UID correctly in light of user namespace API
origionally from https://462666.bugs.gentoo.org/attachment.cgi?id=342888
--- a/vmblock-only/linux/inode.c 2013-03-20 17:37:48.000000000 +0100
+++ b/vmblock-only/linux/inode.c 2013-03-20 17:41:22.000000000 +0100
@@ -135,7 +135,8 @@
inode->i_size = INODE_TO_IINFO(inode)->nameLen;
inode->i_version = 1;
inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
- inode->i_uid = inode->i_gid = 0;
+ inode->i_uid = GLOBAL_ROOT_UID;
+ inode->i_gid = GLOBAL_ROOT_GID;
inode->i_op = &LinkInodeOps;
d_add(dentry, inode);
--- a/vmci-only/linux/driver.c 2013-03-20 17:57:35.000000000 +0100
+++ b/vmci-only/linux/driver.c 2013-03-20 17:57:43.000000000 +0100
@@ -740,7 +740,7 @@
goto init_release;
}
- user = current_uid();
+ user = from_kuid(current_user_ns(), current_uid());
retval = VMCIContext_InitContext(initBlock.cid, initBlock.flags,
0 /* Unused */, vmciLinux->userVersion,
&user, &vmciLinux->context);
--- a/vsock-only/linux/af_vsock.c 2013-03-20 18:01:48.000000000 +0100
+++ b/vsock-only/linux/af_vsock.c 2013-03-20 18:01:58.000000000 +0100
@@ -2866,7 +2866,7 @@
vsk->connectTimeout = psk->connectTimeout;
} else {
vsk->trusted = capable(CAP_NET_ADMIN);
- vsk->owner = current_uid();
+ vsk->owner = from_kuid(current_user_ns(), current_uid());
vsk->queuePairSize = VSOCK_DEFAULT_QP_SIZE;
vsk->queuePairMinSize = VSOCK_DEFAULT_QP_SIZE_MIN;
vsk->queuePairMaxSize = VSOCK_DEFAULT_QP_SIZE_MAX;

@ -0,0 +1,24 @@
uses __getname/__putname instead of getname. getname was deprecated
the new code calls __getname (which really is a specific type of
memory allocator, then copies the string safely from user space
into the allocated buffer
--- vmblock-only/linux/control.c 2014-03-15 15:28:40.871076076 +0100
+++ vmblock-only/linux/control.c.new 2014-03-15 15:29:15.079074439 +0100
@@ -279,11 +279,17 @@
int i;
int retval;
- name = getname(buf);
+ name = __getname();
if (IS_ERR(name)) {
return PTR_ERR(name);
}
+ i = strncpy_from_user(name, buf, PATH_MAX);
+ if (i < 0 || i == PATH_MAX) {
+ __putname(name);
+ return -EINVAL;
+ }
+
for (i = strlen(name) - 1; i >= 0 && name[i] == '/'; i--) {

@ -0,0 +1,89 @@
undefines DEPRECATED which is unfortunately also defined (as a string)
in <linux/printk.h>. Realistically, this macro isn't even used, so this
doesn't matter much. But it hushes some very loud warnings.
diff -rupN vmblock-only/shared/vm_assert.h vmblock-only.new/shared/vm_assert.h
--- vmblock-only/shared/vm_assert.h 2014-04-14 17:41:41.000000000 -0400
+++ vmblock-only.new/shared/vm_assert.h 2014-10-11 17:37:23.010352172 -0400
@@ -251,11 +251,13 @@ void WarningThrottled(uint32 *count, con
#define LOG_ONCE(_s) DO_ONCE(Log _s)
#ifdef VMX86_DEVEL
+ #undef DEPRECATED
#define DEPRECATED(_fix) DO_ONCE( \
Warning("%s:%d: %s is DEPRECATED. %s\n", \
__FILE__, __LINE__, __FUNCTION__, \
_fix))
#else
+ #undef DEPRECATED
#define DEPRECATED(_fix) do {} while (0)
#endif
diff -rupN vmci-only/shared/vm_assert.h vmci-only.new/shared/vm_assert.h
--- vmci-only/shared/vm_assert.h 2014-04-14 17:41:41.000000000 -0400
+++ vmci-only.new/shared/vm_assert.h 2014-10-11 17:37:08.936352130 -0400
@@ -251,11 +251,13 @@ void WarningThrottled(uint32 *count, con
#define LOG_ONCE(_s) DO_ONCE(Log _s)
#ifdef VMX86_DEVEL
+ #undef DEPRECATED
#define DEPRECATED(_fix) DO_ONCE( \
Warning("%s:%d: %s is DEPRECATED. %s\n", \
__FILE__, __LINE__, __FUNCTION__, \
_fix))
#else
+ #undef DEPRECATED
#define DEPRECATED(_fix) do {} while (0)
#endif
diff -rupN vmmon-only/include/vm_assert.h vmmon-only.new/include/vm_assert.h
--- vmmon-only/include/vm_assert.h 2014-04-14 20:06:20.000000000 -0400
+++ vmmon-only.new/include/vm_assert.h 2014-10-11 17:36:45.289352058 -0400
@@ -251,11 +251,13 @@ void WarningThrottled(uint32 *count, con
#define LOG_ONCE(_s) DO_ONCE(Log _s)
#ifdef VMX86_DEVEL
+ #undef DEPRECATED
#define DEPRECATED(_fix) DO_ONCE( \
Warning("%s:%d: %s is DEPRECATED. %s\n", \
__FILE__, __LINE__, __FUNCTION__, \
_fix))
#else
+ #undef DEPRECATED
#define DEPRECATED(_fix) do {} while (0)
#endif
diff -rupN vmnet-only/vm_assert.h vmnet-only.new/vm_assert.h
--- vmnet-only/vm_assert.h 2014-04-14 20:06:21.000000000 -0400
+++ vmnet-only.new/vm_assert.h 2014-10-11 17:37:14.364352146 -0400
@@ -251,11 +251,13 @@ void WarningThrottled(uint32 *count, con
#define LOG_ONCE(_s) DO_ONCE(Log _s)
#ifdef VMX86_DEVEL
+ #undef DEPRECATED
#define DEPRECATED(_fix) DO_ONCE( \
Warning("%s:%d: %s is DEPRECATED. %s\n", \
__FILE__, __LINE__, __FUNCTION__, \
_fix))
#else
+ #undef DEPRECATED
#define DEPRECATED(_fix) do {} while (0)
#endif
diff -rupN vsock-only/shared/vm_assert.h vsock-only.new/shared/vm_assert.h
--- vsock-only/shared/vm_assert.h 2014-04-14 17:41:41.000000000 -0400
+++ vsock-only.new/shared/vm_assert.h 2014-10-11 17:37:02.778352111 -0400
@@ -251,11 +251,13 @@ void WarningThrottled(uint32 *count, con
#define LOG_ONCE(_s) DO_ONCE(Log _s)
#ifdef VMX86_DEVEL
+ #undef DEPRECATED
#define DEPRECATED(_fix) DO_ONCE( \
Warning("%s:%d: %s is DEPRECATED. %s\n", \
__FILE__, __LINE__, __FUNCTION__, \
_fix))
#else
+ #undef DEPRECATED
#define DEPRECATED(_fix) do {} while (0)
#endif

@ -0,0 +1,34 @@
starting with kernel 3.6, d_revalidate takes an unsigned int "flags"
as the second argument, not a nameidata pointer! see fs/namei.c
for implementation
diff -Naur vmblock-only/linux/dentry.c vmblock-only/linux/dentry.c
--- vmblock-only/linux/dentry.c 2013-11-05 23:33:26.000000000 -0500
+++ vmblock-only/linux/dentry.c 2014-04-26 10:58:03.062635343 -0400
@@ -32,7 +32,7 @@
#include "block.h"
-static int DentryOpRevalidate(struct dentry *dentry, struct nameidata *nd);
+static int DentryOpRevalidate(struct dentry *dentry, unsigned int flags);
struct dentry_operations LinkDentryOps = {
.d_revalidate = DentryOpRevalidate,
@@ -60,7 +60,7 @@
static int
DentryOpRevalidate(struct dentry *dentry, // IN: dentry revalidating
- struct nameidata *nd) // IN: lookup flags & intent
+ unsigned int flags) // IN: lookup flags & intent
{
VMBlockInodeInfo *iinfo;
struct nameidata actualNd;
@@ -101,7 +101,7 @@
if (actualDentry &&
actualDentry->d_op &&
actualDentry->d_op->d_revalidate) {
- return actualDentry->d_op->d_revalidate(actualDentry, nd);
+ return actualDentry->d_op->d_revalidate(actualDentry, flags);
}
if (compat_path_lookup(iinfo->name, 0, &actualNd)) {

@ -0,0 +1,36 @@
starting with kernel 3.6, d_revalidate takes an unsigned int "flags"
as the second argument, not a nameidata pointer! see fs/namei.c
for implementation. Also changing vfs_follow_link to nd_set_link.
See: https://lkml.org/lkml/2013/9/9/236
diff -Naur vmblock-only/linux/inode.c vmblock-only/linux/inode.c
--- vmblock-only/linux/inode.c 2013-11-05 23:33:26.000000000 -0500
+++ vmblock-only/linux/inode.c 2014-04-26 10:58:03.063635343 -0400
@@ -36,7 +36,7 @@
/* Inode operations */
static struct dentry *InodeOpLookup(struct inode *dir,
- struct dentry *dentry, struct nameidata *nd);
+ struct dentry *dentry, unsigned int flags);
static int InodeOpReadlink(struct dentry *dentry, char __user *buffer, int buflen);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
static void *InodeOpFollowlink(struct dentry *dentry, struct nameidata *nd);
@@ -75,7 +75,7 @@
static struct dentry *
InodeOpLookup(struct inode *dir, // IN: parent directory's inode
struct dentry *dentry, // IN: dentry to lookup
- struct nameidata *nd) // IN: lookup intent and information
+ unsigned int flags) // IN: lookup intent and information
{
char *filename;
struct inode *inode;
@@ -221,7 +221,8 @@
goto out;
}
- ret = vfs_follow_link(nd, iinfo->name);
+ nd_set_link(nd, iinfo->name);
+ ret = 0;
out:
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)

@ -0,0 +1,15 @@
replacing usage of vfs_readlink with new readlink_copy API
see: http://permalink.gmane.org/gmane.linux.kernel.commits.head/445090
diff -rupN vmblock-only/linux/inode.c vmblock-only/linux/inode.c
--- vmblock-only/linux/inode.c 2014-10-05 23:20:14.545218357 -0400
+++ vmblock-only/linux/inode.c 2014-10-05 23:33:01.549259933 -0400
@@ -178,7 +178,7 @@ InodeOpReadlink(struct dentry *dentry,
return -EINVAL;
}
- return vfs_readlink(dentry, buffer, buflen, iinfo->name);
+ return readlink_copy(buffer, buflen, iinfo->name);
}

@ -0,0 +1,46 @@
removing the no longer existing second parameter to sk_data_ready
doesn't seem it ever served a purpose.
diff -rupN vsock-only/linux/notify.c vsock-only.new/linux/notify.c
--- vsock-only/linux/notify.c 2013-11-05 23:33:27.000000000 -0500
+++ vsock-only.new/linux/notify.c 2014-10-05 23:46:47.943304728 -0400
@@ -515,8 +515,11 @@ VSockVmciHandleWrote(struct sock *sk,
vsk = vsock_sk(sk);
PKT_FIELD(vsk, sentWaitingRead) = FALSE;
#endif
-
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
+ sk->sk_data_ready(sk);
+#else
sk->sk_data_ready(sk, 0);
+#endif
}
diff -rupN vsock-only/linux/notifyQState.c vsock-only.new/linux/notifyQState.c
--- vsock-only/linux/notifyQState.c 2013-11-05 23:33:27.000000000 -0500
+++ vsock-only.new/linux/notifyQState.c 2014-10-05 23:46:33.231303931 -0400
@@ -164,7 +164,11 @@ VSockVmciHandleWrote(struct sock *sk,
struct sockaddr_vm *dst, // IN: unused
struct sockaddr_vm *src) // IN: unused
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
+ sk->sk_data_ready(sk);
+#else
sk->sk_data_ready(sk, 0);
+#endif
}
@@ -566,7 +570,11 @@ VSockVmciNotifyPktRecvPostDequeue(struct
}
/* See the comment in VSockVmciNotifyPktSendPostEnqueue */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
+ sk->sk_data_ready(sk);
+#else
sk->sk_data_ready(sk, 0);
+#endif
}
return err;

@ -0,0 +1,16 @@
new alloc_netdev requires a new parameter. All examples in the kernel i've seen just
use the constant NET_NAME_UNKNOWN.
origionally from: https://communities.vmware.com/message/2425189
diff -rupN vmnet-only/netif.c vmnet-only.new/netif.c
--- vmnet-only/netif.c 2013-11-06 00:40:52.000000000 -0500
+++ vmnet-only.new/netif.c 2014-10-09 17:29:12.361307961 -0400
@@ -149,7 +149,7 @@ VNetNetIf_Create(char *devName, // IN:
memcpy(deviceName, devName, sizeof deviceName);
NULL_TERMINATE_STRING(deviceName);
- dev = alloc_netdev(sizeof *netIf, deviceName, VNetNetIfSetup);
+ dev = alloc_netdev(sizeof *netIf, deviceName, NET_NAME_USER, VNetNetIfSetup);
if (!dev) {
retval = -ENOMEM;
goto out;

@ -0,0 +1,24 @@
--- a/vmci-only/shared/vm_device_version.h 2015-02-07 03:11:55.000000000 +0300
+++ c/vmci-only/shared/vm_device_version.h 2015-02-24 03:58:06.041605450 +0300
@@ -53,7 +53,9 @@
* VMware HD Audio codec
* VMware HD Audio controller
*/
+#ifndef PCI_VENDOR_ID_VMWARE
#define PCI_VENDOR_ID_VMWARE 0x15AD
+#endif
#define PCI_DEVICE_ID_VMWARE_SVGA2 0x0405
#define PCI_DEVICE_ID_VMWARE_SVGA 0x0710
#define PCI_DEVICE_ID_VMWARE_VGA 0x0711
--- a/vmnet-only/vm_device_version.h 2015-02-07 03:54:16.000000000 +0300
+++ c/vmnet-only/vm_device_version.h 2015-02-24 03:58:06.044604981 +0300
@@ -53,7 +53,9 @@
* VMware HD Audio codec
* VMware HD Audio controller
*/
+#ifndef PCI_VENDOR_ID_VMWARE
#define PCI_VENDOR_ID_VMWARE 0x15AD
+#endif
#define PCI_DEVICE_ID_VMWARE_SVGA2 0x0405
#define PCI_DEVICE_ID_VMWARE_SVGA 0x0710
#define PCI_DEVICE_ID_VMWARE_VGA 0x0711

@ -0,0 +1,23 @@
--- a/vmblock-only/shared/compat_namei.h 2015-02-07 03:11:55.000000000 +0300
+++ c/vmblock-only/shared/compat_namei.h 2015-02-24 03:51:25.235286047 +0300
@@ -21,6 +21,20 @@
#include <linux/namei.h>
+/* Copy-n-paste from kernel's source/fs/namei.c */
+struct nameidata {
+ struct path path;
+ struct qstr last;
+ struct path root;
+ struct inode *inode; /* path.dentry.d_inode */
+ unsigned int flags;
+ unsigned seq, m_seq;
+ int last_type;
+ unsigned depth;
+ struct file *base;
+ char *saved_names[MAX_NESTED_LINKS + 1];
+};
+
/*
* In 2.6.25-rc2, dentry and mount objects were removed from the nameidata
* struct. They were both replaced with a struct path.

@ -0,0 +1,13 @@
--- a/vmnet-only/driver.c 2015-02-07 03:54:17.000000000 +0300
+++ c/vmnet-only/driver.c 2015-02-24 03:58:06.043605137 +0300
@@ -1191,8 +1191,8 @@
struct inode *inode = NULL;
long err;
- if (filp && filp->f_dentry) {
- inode = filp->f_dentry->d_inode;
+ if (filp && filp->f_path.dentry) {
+ inode = filp->f_path.dentry->d_inode;
}
err = VNetFileOpIoctl(inode, filp, iocmd, ioarg);
return err;

@ -0,0 +1,67 @@
Sources:
https://531682.bugs.gentoo.org/attachment.cgi?id=396484
https://531682.bugs.gentoo.org/attachment.cgi?id=396482
diff -rupN vmblock-only.orig/linux/dentry.c vmblock-only/linux/dentry.c
--- vmblock-only.orig/linux/dentry.c 2015-02-14 18:05:46.000000000 -0500
+++ vmblock-only/linux/dentry.c 2015-02-14 18:09:59.000000000 -0500
@@ -63,7 +63,7 @@ DentryOpRevalidate(struct dentry *dentry
unsigned int flags) // IN: lookup flags & intent
{
VMBlockInodeInfo *iinfo;
- struct nameidata actualNd;
+ struct path actualNd;
struct dentry *actualDentry;
int ret;
diff -rupN vmblock-only.orig/linux/filesystem.c vmblock-only/linux/filesystem.c
--- vmblock-only.orig/linux/filesystem.c 2014-11-20 19:29:15.000000000 -0500
+++ vmblock-only/linux/filesystem.c 2015-02-14 18:10:49.000000000 -0500
@@ -322,7 +322,7 @@ Iget(struct super_block *sb, // IN: f
{
VMBlockInodeInfo *iinfo;
struct inode *inode;
- struct nameidata actualNd;
+ struct path actualNd;
ASSERT(sb);
diff -rupN vmblock-only.orig/shared/compat_namei.h vmblock-only/shared/compat_namei.h
--- vmblock-only.orig/shared/compat_namei.h 2014-11-20 19:29:15.000000000 -0500
+++ vmblock-only/shared/compat_namei.h 2015-02-14 18:08:38.000000000 -0500
@@ -26,21 +26,21 @@
* struct. They were both replaced with a struct path.
*/
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
-#define compat_vmw_nd_to_dentry(nd) (nd).path.dentry
+#define compat_vmw_nd_to_dentry(nd) (nd).dentry
#else
#define compat_vmw_nd_to_dentry(nd) (nd).dentry
#endif
/* In 2.6.25-rc2, path_release(&nd) was replaced with path_put(&nd.path). */
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
-#define compat_path_release(nd) path_put(&(nd)->path)
+#define compat_path_release(nd) path_put(nd)
#else
#define compat_path_release(nd) path_release(nd)
#endif
/* path_lookup was removed in 2.6.39 merge window VFS merge */
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)
-#define compat_path_lookup(name, flags, nd) kern_path(name, flags, &((nd)->path))
+#define compat_path_lookup(name, flags, nd) kern_path(name, flags, nd)
#else
#define compat_path_lookup(name, flags, nd) path_lookup(name, flags, nd)
#endif
diff -u vmblock-only.orig/linux/file.c vmblock-only/linux/file.c
--- vmblock-only.orig/linux/file.c 2015-02-11 12:18:29.000000000 -0500
+++ vmblock-only/linux/file.c 2015-02-11 12:41:41.000000000 -0500
@@ -92,7 +92,7 @@
* and that would try to acquire the inode's semaphore; if the two inodes
* are the same we'll deadlock.
*/
- if (actualFile->f_dentry && inode == actualFile->f_dentry->d_inode) {
+ if (actualFile->f_path.dentry && inode == actualFile->f_path.dentry->d_inode) {
Warning("FileOpOpen: identical inode encountered, open cannot succeed.\n");
if (filp_close(actualFile, current->files) < 0) {
Warning("FileOpOpen: unable to close opened file.\n");

@ -0,0 +1,19 @@
--- a/vmnet-only/userif.c 2015-02-07 03:54:17.000000000 +0300
+++ c/vmnet-only/userif.c 2015-02-24 03:58:06.043605137 +0300
@@ -523,7 +523,15 @@
.iov_base = buf,
.iov_len = len,
};
- return skb_copy_datagram_iovec(skb, 0, &iov, len);
+
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
+ return skb_copy_datagram_iovec(skb, 0, &iov, len);
+#else
+ struct iov_iter to;
+ iov_iter_init(&to, READ, &iov, 1, len);
+ return skb_copy_datagram_iter(skb, 0, &to, len);
+#endif
}

@ -0,0 +1,39 @@
diff -rupN vmci-only.old/linux/vmciKernelIf.c vmci-only/linux/vmciKernelIf.c
--- vmci-only.old/linux/vmciKernelIf.c 2015-04-28 18:05:56.000000000 +0000
+++ vmci-only/linux/vmciKernelIf.c 2015-07-06 08:02:08.314262258 +0000
@@ -40,6 +40,7 @@
#include <linux/socket.h> /* For memcpy_{to,from}iovec(). */
#include <linux/vmalloc.h>
#include <linux/wait.h>
+#include <linux/skbuff.h>
#include "compat_highmem.h"
#include "compat_interrupt.h"
@@ -1227,11 +1228,11 @@ __VMCIMemcpyToQueue(VMCIQueue *queue,
}
if (isIovec) {
- struct iovec *iov = (struct iovec *)src;
+ struct msghdr *msg = (struct msghdr *)src;
int err;
/* The iovec will track bytesCopied internally. */
- err = memcpy_fromiovec((uint8 *)va + pageOffset, iov, toCopy);
+ err = memcpy_from_msg((u8 *)va + pageOffset, msg, toCopy);
if (err != 0) {
if (!kernelIf->isDataMapped) {
kunmap(kernelIf->page[pageIndex]);
@@ -1302,11 +1303,11 @@ __VMCIMemcpyFromQueue(void *dest,
}
if (isIovec) {
- struct iovec *iov = (struct iovec *)dest;
+ struct msghdr *msg = (struct msghdr *)dest;
int err;
/* The iovec will track bytesCopied internally. */
- err = memcpy_toiovec(iov, (uint8 *)va + pageOffset, toCopy);
+ err = memcpy_to_msg(msg, (uint8 *)va + pageOffset, toCopy);
if (err != 0) {
if (!kernelIf->isDataMapped) {
kunmap(kernelIf->page[pageIndex]);

@ -0,0 +1,24 @@
diff -rupN vsock-only.old/linux/af_vsock.c vsock-only/linux/af_vsock.c
--- vsock-only.old/linux/af_vsock.c 2015-05-06 20:41:47.684046762 -0400
+++ vsock-only/linux/af_vsock.c 2015-05-06 20:52:15.245080779 -0400
@@ -4629,7 +4629,7 @@ VSockVmciStreamSendmsg(struct kiocb *kio
* able to send.
*/
- written = vmci_qpair_enquev(vsk->qpair, msg->msg_iov,
+ written = vmci_qpair_enquev(vsk->qpair, &msg->msg_iter.iov,
len - totalWritten, 0);
if (written < 0) {
err = -ENOMEM;
@@ -4874,9 +4874,9 @@ VSockVmciStreamRecvmsg(struct kiocb *kio
}
if (flags & MSG_PEEK) {
- read = vmci_qpair_peekv(vsk->qpair, msg->msg_iov, len - copied, 0);
+ read = vmci_qpair_peekv(vsk->qpair, &msg->msg_iter.iov, len - copied, 0);
} else {
- read = vmci_qpair_dequev(vsk->qpair, msg->msg_iov, len - copied, 0);
+ read = vmci_qpair_dequev(vsk->qpair, &msg->msg_iter.iov, len - copied, 0);
}
if (read < 0) {

@ -0,0 +1,15 @@
diff -rupN vsock-only/linux/af_vsock.c vsock-only.new/linux/af_vsock.c
--- vsock-only/linux/af_vsock.c 2015-05-05 11:31:35.710099711 -0400
+++ vsock-only.new/linux/af_vsock.c 2015-05-05 11:36:33.260115840 -0400
@@ -4727,7 +4727,11 @@ VSockVmciDgramRecvmsg(struct kiocb *kioc
}
/* Place the datagram payload in the user's iovec. */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
err = skb_copy_datagram_iovec(skb, sizeof *dg, msg->msg_iov, payloadLen);
+#else
+ err = skb_copy_datagram_iter(skb, sizeof *dg, &msg->msg_iter, payloadLen);
+#endif
if (err) {
goto out;
}

@ -0,0 +1,12 @@
diff -rupN vsock-only/linux/af_vsock.c vsock-only.new/linux/af_vsock.c
--- vsock-only/linux/af_vsock.c 2015-05-05 11:26:05.145081792 -0400
+++ vsock-only.new/linux/af_vsock.c 2015-05-05 11:30:54.304097466 -0400
@@ -4266,7 +4266,7 @@ VSockVmciDgramSendmsg(struct kiocb *kioc
goto out;
}
- memcpy_fromiovec(VMCI_DG_PAYLOAD(dg), msg->msg_iov, len);
+ memcpy_from_msg(VMCI_DG_PAYLOAD(dg), msg, len);
dg->dst = VMCI_MAKE_HANDLE(remoteAddr->svm_cid, remoteAddr->svm_port);
dg->src = VMCI_MAKE_HANDLE(vsk->localAddr.svm_cid, vsk->localAddr.svm_port);

@ -0,0 +1,16 @@
correctly initializes UID/GID values
gets UID correctly in light of user namespace API
origionally from https://462666.bugs.gentoo.org/attachment.cgi?id=342888
--- a/vmblock-only/linux/inode.c 2013-03-20 17:37:48.000000000 +0100
+++ b/vmblock-only/linux/inode.c 2013-03-20 17:41:22.000000000 +0100
@@ -135,7 +135,8 @@
inode->i_size = INODE_TO_IINFO(inode)->nameLen;
inode->i_version = 1;
inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
- inode->i_uid = inode->i_gid = 0;
+ inode->i_uid = GLOBAL_ROOT_UID;
+ inode->i_gid = GLOBAL_ROOT_GID;
inode->i_op = &LinkInodeOps;
d_add(dentry, inode);

@ -0,0 +1,43 @@
Minor change the API, now it just gets passed flags instead of a pointer to the nameidata
--- a/vmblock-only/linux/dentry.c 2015-02-07 03:11:55.000000000 +0300
+++ c/vmblock-only/linux/dentry.c 2015-02-24 03:58:06.038605919 +0300
@@ -32,7 +32,11 @@
#include "block.h"
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
static int DentryOpRevalidate(struct dentry *dentry, struct nameidata *nd);
+#else
+static int DentryOpRevalidate(struct dentry *dentry, unsigned int);
+#endif
struct dentry_operations LinkDentryOps = {
.d_revalidate = DentryOpRevalidate,
@@ -58,9 +62,12 @@
*----------------------------------------------------------------------------
*/
-static int
-DentryOpRevalidate(struct dentry *dentry, // IN: dentry revalidating
- struct nameidata *nd) // IN: lookup flags & intent
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+static int DentryOpRevalidate(struct dentry *dentry, struct nameidata *nd)
+#else
+static int DentryOpRevalidate(struct dentry *dentry, unsigned int flags)
+#endif
+
{
VMBlockInodeInfo *iinfo;
struct nameidata actualNd;
@@ -101,7 +108,11 @@
if (actualDentry &&
actualDentry->d_op &&
actualDentry->d_op->d_revalidate) {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
+ return actualDentry->d_op->d_revalidate(actualDentry, flags);
+#else
return actualDentry->d_op->d_revalidate(actualDentry, nd);
+#endif
}
if (compat_path_lookup(iinfo->name, 0, &actualNd)) {

@ -0,0 +1,94 @@
Minor change the API, now it just gets passed flags instead of a pointer to the nameidata
Properly initializes UID/GID with repsect to namespaces
Some changes the readlink/setlink APIs
--- a/vmblock-only/linux/inode.c 2015-02-07 03:11:55.000000000 +0300
+++ c/vmblock-only/linux/inode.c 2015-02-24 03:58:06.039605762 +0300
@@ -35,9 +35,15 @@
/* Inode operations */
-static struct dentry *InodeOpLookup(struct inode *dir,
- struct dentry *dentry, struct nameidata *nd);
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+static struct dentry *InodeOpLookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd);
static int InodeOpReadlink(struct dentry *dentry, char __user *buffer, int buflen);
+#else
+static struct dentry *InodeOpLookup(struct inode *, struct dentry *, unsigned int);
+static int InodeOpReadlink(struct dentry *, char __user *, int);
+#endif
+
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
static void *InodeOpFollowlink(struct dentry *dentry, struct nameidata *nd);
#else
@@ -49,12 +55,15 @@
.lookup = InodeOpLookup,
};
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
static struct inode_operations LinkInodeOps = {
+#else
+struct inode_operations LinkInodeOps = {
+#endif
.readlink = InodeOpReadlink,
.follow_link = InodeOpFollowlink,
};
-
/*
*----------------------------------------------------------------------------
*
@@ -75,7 +84,11 @@
static struct dentry *
InodeOpLookup(struct inode *dir, // IN: parent directory's inode
struct dentry *dentry, // IN: dentry to lookup
- struct nameidata *nd) // IN: lookup intent and information
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ struct nameidata *nd) // IN: lookup intent and information
+#else
+ unsigned int flags)
+#endif
{
char *filename;
struct inode *inode;
@@ -135,7 +148,12 @@
inode->i_size = INODE_TO_IINFO(inode)->nameLen;
inode->i_version = 1;
inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
inode->i_uid = inode->i_gid = 0;
+#else
+ inode->i_gid = make_kgid(current_user_ns(), 0);
+ inode->i_uid = make_kuid(current_user_ns(), 0);
+#endif
inode->i_op = &LinkInodeOps;
d_add(dentry, inode);
@@ -177,7 +195,12 @@
return -EINVAL;
}
- return vfs_readlink(dentry, buffer, buflen, iinfo->name);
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(3, 14, 99)
+ return vfs_readlink(dentry, buffer, buflen, iinfo->name);
+#else
+ return readlink_copy(buffer, buflen, iinfo->name);
+#endif
+
}
@@ -221,7 +244,7 @@
goto out;
}
- ret = vfs_follow_link(nd, iinfo->name);
+ nd_set_link(nd, iinfo->name);
out:
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
@@ -230,3 +253,4 @@
return ret;
#endif
}
+

@ -0,0 +1,57 @@
The API to create proc entries now takes the file ops structure directly, instead of being set after the fact
Using new __getname/__putname API
--- a/vmblock-only/linux/control.c 2015-02-07 03:11:55.000000000 +0300
+++ c/vmblock-only/linux/control.c 2015-02-24 03:58:06.038605919 +0300
@@ -208,9 +208,11 @@
VMBlockSetProcEntryOwner(controlProcMountpoint);
/* Create /proc/fs/vmblock/dev */
- controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME,
- VMBLOCK_CONTROL_MODE,
- controlProcDirEntry);
+ controlProcEntry = proc_create(VMBLOCK_CONTROL_DEVNAME,
+ VMBLOCK_CONTROL_MODE,
+ controlProcDirEntry,
+ &ControlFileOps);
+
if (!controlProcEntry) {
Warning("SetupProcDevice: could not create " VMBLOCK_DEVICE "\n");
remove_proc_entry(VMBLOCK_CONTROL_MOUNTPOINT, controlProcDirEntry);
@@ -218,7 +220,10 @@
return -EINVAL;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
controlProcEntry->proc_fops = &ControlFileOps;
+#endif
+
return 0;
}
@@ -287,18 +287,24 @@ ExecuteBlockOp(const char __user *buf,
int i;
int retval;
- name = getname(buf);
+ name = __getname();
if (IS_ERR(name)) {
return PTR_ERR(name);
}
+ i = strncpy_from_user(name, buf, PATH_MAX);
+ if (i < 0 || i == PATH_MAX) {
+ __putname(name);
+ return -EINVAL;
+ }
+
for (i = strlen(name) - 1; i >= 0 && name[i] == '/'; i--) {
name[i] = '\0';
}
retval = i < 0 ? -EINVAL : blockOp(name, blocker);
- putname(name);
+ __putname(name);
return retval;
}

@ -0,0 +1,14 @@
Hushes a warning
--- a/vmmon-only/linux/driver.c 2015-02-07 03:54:16.000000000 +0300
+++ c/vmmon-only/linux/driver.c 2015-02-24 03:58:06.042605293 +0300
@@ -1328,7 +1328,9 @@
*-----------------------------------------------------------------------------
*/
-__attribute__((always_inline)) static Bool
+#include <linux/compiler-gcc.h>
+
+__always_inline static Bool
LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max - TSC min
{
TSCDelta tscDelta;

@ -0,0 +1,41 @@
replaces usage of vfs_readdir with iterate_dir. origionally found here:
https://bugs.gentoo.org/show_bug.cgi?id=508204
diff -Naur vmblock-only/linux/file.c vmblock-only/linux/file.c
--- vmblock-only/linux/file.c 2013-11-05 23:33:26.000000000 -0500
+++ vmblock-only/linux/file.c 2014-04-26 10:58:03.062635343 -0400
@@ -166,11 +166,9 @@
static int
FileOpReaddir(struct file *file, // IN
- void *dirent, // IN
- filldir_t filldir) // IN
+ struct dir_context *ctx)
{
int ret;
- FilldirInfo info;
struct file *actualFile;
if (!file) {
@@ -184,11 +182,8 @@
return -EINVAL;
}
- info.filldir = filldir;
- info.dirent = dirent;
-
actualFile->f_pos = file->f_pos;
- ret = vfs_readdir(actualFile, Filldir, &info);
+ ret = iterate_dir(actualFile, ctx);
file->f_pos = actualFile->f_pos;
return ret;
@@ -237,7 +232,7 @@
struct file_operations RootFileOps = {
- .readdir = FileOpReaddir,
+ .iterate = FileOpReaddir,
.open = FileOpOpen,
.release = FileOpRelease,
};

@ -0,0 +1,53 @@
simply remove the code for Filldir since it is no longer used with the new
iterate_dir API
diff -rupN vmblock-only/linux/file.c vmblock-only.new/linux/file.c
--- vmblock-only/linux/file.c 2014-10-07 23:22:46.832469618 -0400
+++ vmblock-only.new/linux/file.c 2014-10-07 23:24:35.276472720 -0400
@@ -38,46 +38,6 @@ typedef u64 inode_num_t;
typedef ino_t inode_num_t;
#endif
-/* Specifically for our filldir_t callback */
-typedef struct FilldirInfo {
- filldir_t filldir;
- void *dirent;
-} FilldirInfo;
-
-
-/*
- *----------------------------------------------------------------------------
- *
- * Filldir --
- *
- * Callback function for readdir that we use in place of the one provided.
- * This allows us to specify that each dentry is a symlink, but pass through
- * everything else to the original filldir function.
- *
- * Results:
- * Original filldir's return value.
- *
- * Side effects:
- * Directory information gets copied to user's buffer.
- *
- *----------------------------------------------------------------------------
- */
-
-static int
-Filldir(void *buf, // IN: Dirent buffer passed from FileOpReaddir
- const char *name, // IN: Dirent name
- int namelen, // IN: len of dirent's name
- loff_t offset, // IN: Offset
- inode_num_t ino, // IN: Inode number of dirent
- unsigned int d_type) // IN: Type of file
-{
- FilldirInfo *info = buf;
-
- /* Specify DT_LNK regardless */
- return info->filldir(info->dirent, name, namelen, offset, ino, DT_LNK);
-}
-
-
/* File operations */
/*

@ -0,0 +1,46 @@
removing the no longer existing second parameter to sk_data_ready
doesn't seem it ever served a purpose.
diff -rupN vsock-only/linux/notify.c vsock-only.new/linux/notify.c
--- vsock-only/linux/notify.c 2013-11-05 23:33:27.000000000 -0500
+++ vsock-only.new/linux/notify.c 2014-10-05 23:46:47.943304728 -0400
@@ -515,8 +515,11 @@ VSockVmciHandleWrote(struct sock *sk,
vsk = vsock_sk(sk);
PKT_FIELD(vsk, sentWaitingRead) = FALSE;
#endif
-
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
+ sk->sk_data_ready(sk);
+#else
sk->sk_data_ready(sk, 0);
+#endif
}
diff -rupN vsock-only/linux/notifyQState.c vsock-only.new/linux/notifyQState.c
--- vsock-only/linux/notifyQState.c 2013-11-05 23:33:27.000000000 -0500
+++ vsock-only.new/linux/notifyQState.c 2014-10-05 23:46:33.231303931 -0400
@@ -164,7 +164,11 @@ VSockVmciHandleWrote(struct sock *sk,
struct sockaddr_vm *dst, // IN: unused
struct sockaddr_vm *src) // IN: unused
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
+ sk->sk_data_ready(sk);
+#else
sk->sk_data_ready(sk, 0);
+#endif
}
@@ -566,7 +570,11 @@ VSockVmciNotifyPktRecvPostDequeue(struct
}
/* See the comment in VSockVmciNotifyPktSendPostEnqueue */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
+ sk->sk_data_ready(sk);
+#else
sk->sk_data_ready(sk, 0);
+#endif
}
return err;

@ -0,0 +1,25 @@
Hushes some (but not all warnings) relating to redefinitions of this define
--- a/vmci-only/shared/vm_device_version.h 2015-02-07 03:11:55.000000000 +0300
+++ c/vmci-only/shared/vm_device_version.h 2015-02-24 03:58:06.041605450 +0300
@@ -53,7 +53,9 @@
* VMware HD Audio codec
* VMware HD Audio controller
*/
+#ifndef PCI_VENDOR_ID_VMWARE
#define PCI_VENDOR_ID_VMWARE 0x15AD
+#endif
#define PCI_DEVICE_ID_VMWARE_SVGA2 0x0405
#define PCI_DEVICE_ID_VMWARE_SVGA 0x0710
#define PCI_DEVICE_ID_VMWARE_VGA 0x0711
--- a/vmnet-only/vm_device_version.h 2015-02-07 03:54:16.000000000 +0300
+++ c/vmnet-only/vm_device_version.h 2015-02-24 03:58:06.044604981 +0300
@@ -53,7 +53,9 @@
* VMware HD Audio codec
* VMware HD Audio controller
*/
+#ifndef PCI_VENDOR_ID_VMWARE
#define PCI_VENDOR_ID_VMWARE 0x15AD
+#endif
#define PCI_DEVICE_ID_VMWARE_SVGA2 0x0405
#define PCI_DEVICE_ID_VMWARE_SVGA 0x0710
#define PCI_DEVICE_ID_VMWARE_VGA 0x0711

@ -0,0 +1,24 @@
A copy of this since it is no longer exported by the kernel headers
--- a/vmblock-only/shared/compat_namei.h 2015-02-07 03:11:55.000000000 +0300
+++ c/vmblock-only/shared/compat_namei.h 2015-02-24 03:51:25.235286047 +0300
@@ -21,6 +21,20 @@
#include <linux/namei.h>
+/* Copy-n-paste from kernel's source/fs/namei.c */
+struct nameidata {
+ struct path path;
+ struct qstr last;
+ struct path root;
+ struct inode *inode; /* path.dentry.d_inode */
+ unsigned int flags;
+ unsigned seq, m_seq;
+ int last_type;
+ unsigned depth;
+ struct file *base;
+ char *saved_names[MAX_NESTED_LINKS + 1];
+};
+
/*
* In 2.6.25-rc2, dentry and mount objects were removed from the nameidata
* struct. They were both replaced with a struct path.

@ -0,0 +1,14 @@
There is an level of abstrxtion in the newre API as of 3.19 here
--- a/vmnet-only/driver.c 2015-02-07 03:54:17.000000000 +0300
+++ c/vmnet-only/driver.c 2015-02-24 03:58:06.043605137 +0300
@@ -1191,8 +1191,8 @@
struct inode *inode = NULL;
long err;
- if (filp && filp->f_dentry) {
- inode = filp->f_dentry->d_inode;
+ if (filp && filp->f_path.dentry) {
+ inode = filp->f_path.dentry->d_inode;
}
err = VNetFileOpIoctl(inode, filp, iocmd, ioarg);
return err;

@ -0,0 +1,67 @@
Sources:
https://531682.bugs.gentoo.org/attachment.cgi?id=396484
https://531682.bugs.gentoo.org/attachment.cgi?id=396482
diff -rupN vmblock-only.orig/linux/dentry.c vmblock-only/linux/dentry.c
--- vmblock-only.orig/linux/dentry.c 2015-02-14 18:05:46.000000000 -0500
+++ vmblock-only/linux/dentry.c 2015-02-14 18:09:59.000000000 -0500
@@ -63,7 +63,7 @@ DentryOpRevalidate(struct dentry *dentry
unsigned int flags) // IN: lookup flags & intent
{
VMBlockInodeInfo *iinfo;
- struct nameidata actualNd;
+ struct path actualNd;
struct dentry *actualDentry;
int ret;
diff -rupN vmblock-only.orig/linux/filesystem.c vmblock-only/linux/filesystem.c
--- vmblock-only.orig/linux/filesystem.c 2014-11-20 19:29:15.000000000 -0500
+++ vmblock-only/linux/filesystem.c 2015-02-14 18:10:49.000000000 -0500
@@ -322,7 +322,7 @@ Iget(struct super_block *sb, // IN: f
{
VMBlockInodeInfo *iinfo;
struct inode *inode;
- struct nameidata actualNd;
+ struct path actualNd;
ASSERT(sb);
diff -rupN vmblock-only.orig/shared/compat_namei.h vmblock-only/shared/compat_namei.h
--- vmblock-only.orig/shared/compat_namei.h 2014-11-20 19:29:15.000000000 -0500
+++ vmblock-only/shared/compat_namei.h 2015-02-14 18:08:38.000000000 -0500
@@ -26,21 +26,21 @@
* struct. They were both replaced with a struct path.
*/
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
-#define compat_vmw_nd_to_dentry(nd) (nd).path.dentry
+#define compat_vmw_nd_to_dentry(nd) (nd).dentry
#else
#define compat_vmw_nd_to_dentry(nd) (nd).dentry
#endif
/* In 2.6.25-rc2, path_release(&nd) was replaced with path_put(&nd.path). */
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
-#define compat_path_release(nd) path_put(&(nd)->path)
+#define compat_path_release(nd) path_put(nd)
#else
#define compat_path_release(nd) path_release(nd)
#endif
/* path_lookup was removed in 2.6.39 merge window VFS merge */
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)
-#define compat_path_lookup(name, flags, nd) kern_path(name, flags, &((nd)->path))
+#define compat_path_lookup(name, flags, nd) kern_path(name, flags, nd)
#else
#define compat_path_lookup(name, flags, nd) path_lookup(name, flags, nd)
#endif
diff -u vmblock-only.orig/linux/file.c vmblock-only/linux/file.c
--- vmblock-only.orig/linux/file.c 2015-02-11 12:18:29.000000000 -0500
+++ vmblock-only/linux/file.c 2015-02-11 12:41:41.000000000 -0500
@@ -92,7 +92,7 @@
* and that would try to acquire the inode's semaphore; if the two inodes
* are the same we'll deadlock.
*/
- if (actualFile->f_dentry && inode == actualFile->f_dentry->d_inode) {
+ if (actualFile->f_path.dentry && inode == actualFile->f_path.dentry->d_inode) {
Warning("FileOpOpen: identical inode encountered, open cannot succeed.\n");
if (filp_close(actualFile, current->files) < 0) {
Warning("FileOpOpen: unable to close opened file.\n");

@ -0,0 +1,20 @@
using new iterator based API, this matches exactly the changes made upstream as of vmware-modules-304.2
--- a/vmnet-only/userif.c 2015-02-07 03:54:17.000000000 +0300
+++ c/vmnet-only/userif.c 2015-02-24 03:58:06.043605137 +0300
@@ -523,7 +523,15 @@
.iov_base = buf,
.iov_len = len,
};
- return skb_copy_datagram_iovec(skb, 0, &iov, len);
+
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
+ return skb_copy_datagram_iovec(skb, 0, &iov, len);
+#else
+ struct iov_iter to;
+ iov_iter_init(&to, READ, &iov, 1, len);
+ return skb_copy_datagram_iter(skb, 0, &to, len);
+#endif
}

@ -0,0 +1,59 @@
Some parts of the iovec API were replaced by the similar message API. Refactoring the code to use that.
--- a/vmci-only/linux/vmciKernelIf.c 2015-02-07 03:11:55.000000000 +0300
+++ c/vmci-only/linux/vmciKernelIf.c 2015-02-24 03:58:06.041605450 +0300
@@ -40,6 +40,7 @@
#include <linux/socket.h> /* For memcpy_{to,from}iovec(). */
#include <linux/vmalloc.h>
#include <linux/wait.h>
+#include <linux/skbuff.h>
#include "compat_highmem.h"
#include "compat_interrupt.h"
@@ -1196,21 +1197,21 @@
} else {
toCopy = size - bytesCopied;
}
-
+ /* Code cloned from kernels drivers/misc/vmw_vmci/vmci_queue_pair.c */
if (isIovec) {
- struct iovec *iov = (struct iovec *)src;
- int err;
+ struct msghdr *msg = (struct msghdr *)src;
+ int err;
- /* The iovec will track bytesCopied internally. */
- err = memcpy_fromiovec((uint8 *)va + pageOffset, iov, toCopy);
- if (err != 0) {
- if (kernelIf->host) {
- kunmap(kernelIf->u.h.page[pageIndex]);
+ /* The iovec will track bytes_copied internally. */
+ err = memcpy_from_msg((u8 *)va + pageOffset, msg, toCopy);
+ if (err != 0) {
+ if (kernelIf->host)
+ kunmap(kernelIf->u.h.page[pageIndex]);
+ return VMCI_ERROR_INVALID_ARGS;
}
- return VMCI_ERROR_INVALID_ARGS;
- }
- } else {
- memcpy((uint8 *)va + pageOffset, (uint8 *)src + bytesCopied, toCopy);
+ } else {
+ memcpy((u8 *)va + pageOffset,
+ (u8 *)src + bytesCopied, toCopy);
}
bytesCopied += toCopy;
@@ -1273,11 +1274,11 @@
}
if (isIovec) {
- struct iovec *iov = (struct iovec *)dest;
+ struct msghdr *msg = (struct msghdr *)dest;
int err;
/* The iovec will track bytesCopied internally. */
- err = memcpy_toiovec(iov, (uint8 *)va + pageOffset, toCopy);
+ err = memcpy_to_msg(msg, (uint8 *)va + pageOffset, toCopy);
if (err != 0) {
if (kernelIf->host) {
kunmap(kernelIf->u.h.page[pageIndex]);

@ -0,0 +1,25 @@
Some parts of the iovec API were replaced by the similar message API. Refactoring the code to use that.
diff -rupN vsock-only.old/linux/af_vsock.c vsock-only/linux/af_vsock.c
--- vsock-only.old/linux/af_vsock.c 2015-05-06 20:41:47.684046762 -0400
+++ vsock-only/linux/af_vsock.c 2015-05-06 20:52:15.245080779 -0400
@@ -4629,7 +4629,7 @@ VSockVmciStreamSendmsg(struct kiocb *kio
* able to send.
*/
- written = vmci_qpair_enquev(vsk->qpair, msg->msg_iov,
+ written = vmci_qpair_enquev(vsk->qpair, &msg->msg_iter.iov,
len - totalWritten, 0);
if (written < 0) {
err = -ENOMEM;
@@ -4874,9 +4874,9 @@ VSockVmciStreamRecvmsg(struct kiocb *kio
}
if (flags & MSG_PEEK) {
- read = vmci_qpair_peekv(vsk->qpair, msg->msg_iov, len - copied, 0);
+ read = vmci_qpair_peekv(vsk->qpair, &msg->msg_iter.iov, len - copied, 0);
} else {
- read = vmci_qpair_dequev(vsk->qpair, msg->msg_iov, len - copied, 0);
+ read = vmci_qpair_dequev(vsk->qpair, &msg->msg_iter.iov, len - copied, 0);
}
if (read < 0) {

@ -0,0 +1,16 @@
Some parts of the iovec API were replaced by the similar message API. Refactoring the code to use that.
diff -rupN vsock-only/linux/af_vsock.c vsock-only.new/linux/af_vsock.c
--- vsock-only/linux/af_vsock.c 2015-05-05 11:31:35.710099711 -0400
+++ vsock-only.new/linux/af_vsock.c 2015-05-05 11:36:33.260115840 -0400
@@ -4727,7 +4727,11 @@ VSockVmciDgramRecvmsg(struct kiocb *kioc
}
/* Place the datagram payload in the user's iovec. */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
err = skb_copy_datagram_iovec(skb, sizeof *dg, msg->msg_iov, payloadLen);
+#else
+ err = skb_copy_datagram_iter(skb, sizeof *dg, &msg->msg_iter, payloadLen);
+#endif
if (err) {
goto out;
}

@ -0,0 +1,13 @@
Some parts of the iovec API were replaced by the similar message API. Refactoring the code to use that.
diff -rupN vsock-only/linux/af_vsock.c vsock-only.new/linux/af_vsock.c
--- vsock-only/linux/af_vsock.c 2015-05-05 11:26:05.145081792 -0400
+++ vsock-only.new/linux/af_vsock.c 2015-05-05 11:30:54.304097466 -0400
@@ -4266,7 +4266,7 @@ VSockVmciDgramSendmsg(struct kiocb *kioc
goto out;
}
- memcpy_fromiovec(VMCI_DG_PAYLOAD(dg), msg->msg_iov, len);
+ memcpy_from_msg(VMCI_DG_PAYLOAD(dg), msg, len);
dg->dst = VMCI_MAKE_HANDLE(remoteAddr->svm_cid, remoteAddr->svm_port);
dg->src = VMCI_MAKE_HANDLE(vsk->localAddr.svm_cid, vsk->localAddr.svm_port);

@ -0,0 +1,12 @@
diff --git a/vmmon-only/linux/hostif.c b/vmmon-only/linux/hostif.c
index f1f4b10..c43242f 100644
--- a/vmmon-only/linux/hostif.c
+++ b/vmmon-only/linux/hostif.c
@@ -55,6 +55,7 @@
#include <linux/kthread.h>
#include <linux/wait.h>
+#include <asm/apic.h>
#include "vmware.h"
#include "x86apic.h"

@ -0,0 +1,113 @@
diff --git a/vmmon-only/linux/driver.c b/vmmon-only/linux/driver.c
index b21dd44..960c2aa 100644
--- a/vmmon-only/linux/driver.c
+++ b/vmmon-only/linux/driver.c
@@ -178,7 +178,22 @@ static struct vm_operations_struct vmuser_mops = {
#endif
};
-static struct file_operations vmuser_fops;
+static struct file_operations vmuser_fops = {
+ .owner = THIS_MODULE,
+ .poll = LinuxDriverPoll,
+#ifdef HAVE_UNLOCKED_IOCTL
+ .unlocked_ioctl = LinuxDriver_UnlockedIoctl,
+#else
+ .ioctl = LinuxDriver_Ioctl,
+#endif
+#ifdef HAVE_COMPAT_IOCTL
+ .compat_ioctl = LinuxDriver_UnlockedIoctl,
+#endif
+ .open = LinuxDriver_Open,
+ .release = LinuxDriver_Close,
+ .mmap = LinuxDriverMmap
+};
+
static struct timer_list tscTimer;
/*
@@ -357,27 +372,6 @@ init_module(void)
spin_lock_init(&linuxState.pollListLock);
#endif
- /*
- * Initialize the file_operations structure. Because this code is always
- * compiled as a module, this is fine to do it here and not in a static
- * initializer.
- */
-
- memset(&vmuser_fops, 0, sizeof vmuser_fops);
- vmuser_fops.owner = THIS_MODULE;
- vmuser_fops.poll = LinuxDriverPoll;
-#ifdef HAVE_UNLOCKED_IOCTL
- vmuser_fops.unlocked_ioctl = LinuxDriver_UnlockedIoctl;
-#else
- vmuser_fops.ioctl = LinuxDriver_Ioctl;
-#endif
-#ifdef HAVE_COMPAT_IOCTL
- vmuser_fops.compat_ioctl = LinuxDriver_UnlockedIoctl;
-#endif
- vmuser_fops.open = LinuxDriver_Open;
- vmuser_fops.release = LinuxDriver_Close;
- vmuser_fops.mmap = LinuxDriverMmap;
-
#ifdef VMX86_DEVEL
devel_init_module();
linuxState.minor = 0;
diff --git a/vmnet-only/driver.c b/vmnet-only/driver.c
index b12b982..40bd4cf 100644
--- a/vmnet-only/driver.c
+++ b/vmnet-only/driver.c
@@ -165,7 +165,22 @@ static long VNetFileOpUnlockedIoctl(struct file * filp,
unsigned int iocmd, unsigned long ioarg);
#endif
-static struct file_operations vnetFileOps;
+static struct file_operations vnetFileOps = {
+ .owner = THIS_MODULE,
+ .read = VNetFileOpRead,
+ .write = VNetFileOpWrite,
+ .poll = VNetFileOpPoll,
+#ifdef HAVE_UNLOCKED_IOCTL
+ .unlocked_ioctl = VNetFileOpUnlockedIoctl,
+#else
+ .ioctl = VNetFileOpIoctl,
+#endif
+#ifdef HAVE_COMPAT_IOCTL
+ .compat_ioctl = VNetFileOpUnlockedIoctl,
+#endif
+ .open = VNetFileOpOpen,
+ .release = VNetFileOpClose
+};
/*
* Utility functions
@@ -476,28 +491,6 @@ init_module(void)
goto err_proto;
}
- /*
- * Initialize the file_operations structure. Because this code is always
- * compiled as a module, this is fine to do it here and not in a static
- * initializer.
- */
-
- memset(&vnetFileOps, 0, sizeof vnetFileOps);
- vnetFileOps.owner = THIS_MODULE;
- vnetFileOps.read = VNetFileOpRead;
- vnetFileOps.write = VNetFileOpWrite;
- vnetFileOps.poll = VNetFileOpPoll;
-#ifdef HAVE_UNLOCKED_IOCTL
- vnetFileOps.unlocked_ioctl = VNetFileOpUnlockedIoctl;
-#else
- vnetFileOps.ioctl = VNetFileOpIoctl;
-#endif
-#ifdef HAVE_COMPAT_IOCTL
- vnetFileOps.compat_ioctl = VNetFileOpUnlockedIoctl;
-#endif
- vnetFileOps.open = VNetFileOpOpen;
- vnetFileOps.release = VNetFileOpClose;
-
retval = register_chrdev(VNET_MAJOR_NUMBER, "vmnet", &vnetFileOps);
if (retval) {
LOG(0, (KERN_NOTICE "/dev/vmnet: could not register major device %d\n",

@ -0,0 +1,65 @@
diff --git a/vmblock-only/Makefile.kernel b/vmblock-only/Makefile.kernel
index ab7a727..e3ec9d2 100644
--- a/vmblock-only/Makefile.kernel
+++ b/vmblock-only/Makefile.kernel
@@ -19,7 +19,7 @@
INCLUDE += -I$(SRCROOT)/include
-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
+EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/cachecreate.c, -DVMW_KMEMCR_HAS_DTOR, )
EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/cachector.c, -DVMW_KMEMCR_CTOR_HAS_3_ARGS, )
diff --git a/vmci-only/Makefile.kernel b/vmci-only/Makefile.kernel
index ba343ee..861ea83 100644
--- a/vmci-only/Makefile.kernel
+++ b/vmci-only/Makefile.kernel
@@ -21,7 +21,7 @@ CC_OPTS += -DVMCI
INCLUDE += -I$(SRCROOT)/shared -I$(SRCROOT)/common -I$(SRCROOT)/linux
-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
+EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
obj-m += $(DRIVER).o
diff --git a/vmmon-only/Makefile.kernel b/vmmon-only/Makefile.kernel
index 8770d1d..c4746c3 100644
--- a/vmmon-only/Makefile.kernel
+++ b/vmmon-only/Makefile.kernel
@@ -22,7 +22,7 @@ CC_OPTS += -DVMMON -DVMCORE
INCLUDE := -I$(SRCROOT)/include -I$(SRCROOT)/common -I$(SRCROOT)/linux \
-I$(SRCROOT)/vmcore
-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
+EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/smpcall.c, -DVMW_HAVE_SMP_CALL_3ARG, )
diff --git a/vmnet-only/Makefile.kernel b/vmnet-only/Makefile.kernel
index d1e3133..665d428 100644
--- a/vmnet-only/Makefile.kernel
+++ b/vmnet-only/Makefile.kernel
@@ -19,7 +19,7 @@
INCLUDE := -I$(SRCROOT)
-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
+EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/netdev_has_net.c,-DVMW_NETDEV_HAS_NET, )
EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/netdev_has_dev_net.c,-DVMW_NETDEV_HAS_DEV_NET, )
EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/nfhook_uses_skb.c,-DVMW_NFHOOK_USES_SKB, )
diff --git a/vsock-only/Makefile.kernel b/vsock-only/Makefile.kernel
index b4629ee..264b8cb 100644
--- a/vsock-only/Makefile.kernel
+++ b/vsock-only/Makefile.kernel
@@ -25,7 +25,7 @@ INCLUDE += -I$(SRCROOT)/include
INCLUDE += -I$(SRCROOT)/linux
INCLUDE += -I$(SRCROOT)/common
-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
+EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/netcreate_num_params.c, -DVMW_NETCREATE_KERNARG, )

@ -0,0 +1,85 @@
diff --git a/vmblock-only/Makefile b/vmblock-only/Makefile
index 2b81323..746c8b8 100644
--- a/vmblock-only/Makefile
+++ b/vmblock-only/Makefile
@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
ifdef LINUXINCLUDE
HEADER_DIR = $(LINUXINCLUDE)
else
-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
+HEADER_DIR = $(KERNEL_DIR)
endif
-BUILD_DIR = $(HEADER_DIR)/..
+BUILD_DIR = $(KBUILD_OUTPUT)
DRIVER := vmblock
PRODUCT := ws
diff --git a/vmci-only/Makefile b/vmci-only/Makefile
index 8e9c5be..6ec828b 100644
--- a/vmci-only/Makefile
+++ b/vmci-only/Makefile
@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
ifdef LINUXINCLUDE
HEADER_DIR = $(LINUXINCLUDE)
else
-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
+HEADER_DIR = $(KERNEL_DIR)
endif
-BUILD_DIR = $(HEADER_DIR)/..
+BUILD_DIR = $(KBUILD_OUTPUT)
DRIVER := vmci
PRODUCT := ws
diff --git a/vmmon-only/Makefile b/vmmon-only/Makefile
index 5bd867b..91a83d4 100644
--- a/vmmon-only/Makefile
+++ b/vmmon-only/Makefile
@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
ifdef LINUXINCLUDE
HEADER_DIR = $(LINUXINCLUDE)
else
-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
+HEADER_DIR = $(KERNEL_DIR)
endif
-BUILD_DIR = $(HEADER_DIR)/..
+BUILD_DIR = $(KBUILD_OUTPUT)
DRIVER := vmmon
PRODUCT := @@PRODUCT@@
diff --git a/vmnet-only/Makefile b/vmnet-only/Makefile
index d4eb73c..c7c6d38 100644
--- a/vmnet-only/Makefile
+++ b/vmnet-only/Makefile
@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
ifdef LINUXINCLUDE
HEADER_DIR = $(LINUXINCLUDE)
else
-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
+HEADER_DIR = $(KERNEL_DIR)
endif
-BUILD_DIR = $(HEADER_DIR)/..
+BUILD_DIR = $(KBUILD_OUTPUT)
DRIVER := vmnet
PRODUCT := @@PRODUCT@@
diff --git a/vsock-only/Makefile b/vsock-only/Makefile
index 93dd61d..9765696 100644
--- a/vsock-only/Makefile
+++ b/vsock-only/Makefile
@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
ifdef LINUXINCLUDE
HEADER_DIR = $(LINUXINCLUDE)
else
-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
+HEADER_DIR = $(KERNEL_DIR)
endif
-BUILD_DIR = $(HEADER_DIR)/..
+BUILD_DIR = $(KBUILD_OUTPUT)
DRIVER := vsock
PRODUCT := ws

@ -0,0 +1,24 @@
diff --git a/vmnet-only/compat_netdevice.h b/vmnet-only/compat_netdevice.h
index 7a56304..9ff4548 100644
--- a/vmnet-only/compat_netdevice.h
+++ b/vmnet-only/compat_netdevice.h
@@ -47,6 +47,19 @@
# define net_device device
#endif
+/* it looks like these have been removed from the kernel 3.1
+ * probably because the "transition" is considered complete.
+ * so to keep this source compatible we just redefine them like they were
+ * previously
+ */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 1, 0)
+#define HAVE_ALLOC_NETDEV /* feature macro: alloc_xxxdev
+ functions are available. */
+#define HAVE_FREE_NETDEV /* free_netdev() */
+#define HAVE_NETDEV_PRIV /* netdev_priv() */
+#define HAVE_NETIF_QUEUE
+#define HAVE_NET_DEVICE_OPS
+#endif
/*
* SET_MODULE_OWNER appeared sometime during 2.3.x. It was setting

@ -2,6 +2,9 @@
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>vmware</herd>
<longdescription>
VMware kernel modules.
</longdescription>
<use>
<flag name="pax_kernel">Apply patch needed for pax enabled kernels</flag>
<flag name="vmci">Build the Virtual Machine Communication Interface module; disable this if you want to use the module from the mainline kernel</flag>

@ -0,0 +1,108 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="4"
inherit eutils flag-o-matic linux-info linux-mod user versionator udev
PV_MAJOR=$(get_major_version)
PV_MINOR=$(get_version_component_range 2)
DESCRIPTION="VMware kernel modules"
HOMEPAGE="http://www.vmware.com/"
SRC_URI=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="pax_kernel"
RDEPEND=""
DEPEND="${RDEPEND}
|| ( =app-emulation/vmware-player-5.0.${PV_MINOR}*
=app-emulation/vmware-workstation-9.0.${PV_MINOR}* )"
S=${WORKDIR}
pkg_setup() {
CONFIG_CHECK="~HIGH_RES_TIMERS"
if kernel_is ge 2 6 37 && kernel_is lt 2 6 39; then
CONFIG_CHECK="${CONFIG_CHECK} BKL"
fi
linux-info_pkg_setup
linux-mod_pkg_setup
VMWARE_GROUP=${VMWARE_GROUP:-vmware}
VMWARE_MODULE_LIST="vmblock vmci vmmon vmnet vsock"
VMWARE_MOD_DIR="${PN}-${PVR}"
BUILD_TARGETS="auto-build KERNEL_DIR=${KERNEL_DIR} KBUILD_OUTPUT=${KV_OUT_DIR}"
enewgroup "${VMWARE_GROUP}"
filter-flags -mfpmath=sse
for mod in ${VMWARE_MODULE_LIST}; do
MODULE_NAMES="${MODULE_NAMES} ${mod}(misc:${S}/${mod}-only)"
done
}
src_unpack() {
cd "${S}"
for mod in ${VMWARE_MODULE_LIST}; do
tar -xf /opt/vmware/lib/vmware/modules/source/${mod}.tar
done
}
src_prepare() {
epatch "${FILESDIR}/${PV_MAJOR}-makefile-kernel-dir.patch"
epatch "${FILESDIR}/${PV_MAJOR}-makefile-include.patch"
epatch "${FILESDIR}/${PV_MAJOR}-netdevice.patch"
use pax_kernel && epatch "${FILESDIR}/${PV_MAJOR}-hardened.patch"
epatch "${FILESDIR}/${PV_MAJOR}-apic.patch"
kernel_is ge 3 7 0 && epatch "${FILESDIR}/${PV_MAJOR}-putname.patch"
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-00-userns.patch"
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-01-create_proc_entry.patch"
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-02-getname.patch"
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-03-deprecated.patch"
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-04-unused-typedef.patch"
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-05-dentry.patch"
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-06-inode.patch"
# fixes a memcpy/memcmp bug in the hub code
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-07-hub.patch"
kernel_is ge 3 11 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.11-00-readdir.patch"
kernel_is ge 3 11 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.11-01-filldir.patch"
kernel_is ge 3 13 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.13-00-vmnet.patch"
kernel_is ge 3 15 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.15-00-readlink.patch"
kernel_is ge 3 15 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.15-01-vsock.patch"
kernel_is ge 3 17 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.17-00-netdev.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-00-vmnet-warning.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-01-vmblock-path.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-02-vmci.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-03-vmnet.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-04-vsock.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-05-vsock.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-06-vmci_qpair.patch"
# Allow user patches so they can support RC kernels and whatever else
epatch_user
}
src_install() {
linux-mod_src_install
local udevrules="${T}/60-vmware.rules"
cat > "${udevrules}" <<-EOF
KERNEL=="vmci", GROUP="vmware", MODE="660"
KERNEL=="vmmon", GROUP="vmware", MODE="660"
KERNEL=="vsock", GROUP="vmware", MODE="660"
EOF
udev_dorules "${udevrules}"
}

@ -0,0 +1,116 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit eutils flag-o-matic linux-info linux-mod user versionator udev
PV_MAJOR=$(get_major_version)
PV_MINOR=$(get_version_component_range 2)
DESCRIPTION="VMware kernel modules"
HOMEPAGE="http://www.vmware.com/"
SRC_URI=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="pax_kernel +vmci +vsock"
RDEPEND=""
DEPEND="${RDEPEND}
|| ( =app-emulation/vmware-player-6.0.${PV_MINOR}*
=app-emulation/vmware-workstation-10.0.${PV_MINOR}* )"
S=${WORKDIR}
pkg_setup() {
CONFIG_CHECK="~HIGH_RES_TIMERS"
if kernel_is ge 2 6 37 && kernel_is lt 2 6 39; then
CONFIG_CHECK="${CONFIG_CHECK} BKL"
fi
if use vmci ; then
CONFIG_CHECK="${CONFIG_CHECK} !VMWARE_VMCI"
else
CONFIG_CHECK="${CONFIG_CHECK} VMWARE_VMCI"
fi
if use vsock ; then
CONFIG_CHECK="${CONFIG_CHECK} !VMWARE_VMCI_VSOCKETS"
else
CONFIG_CHECK="${CONFIG_CHECK} VMWARE_VMCI_VSOCKETS"
fi
linux-info_pkg_setup
linux-mod_pkg_setup
VMWARE_GROUP=${VMWARE_GROUP:-vmware}
VMWARE_MODULE_LIST_ALL="vmblock vmmon vmnet vmci vsock"
VMWARE_MODULE_LIST="vmblock vmmon vmnet"
use vmci && VMWARE_MODULE_LIST="${VMWARE_MODULE_LIST} vmci"
use vsock && VMWARE_MODULE_LIST="${VMWARE_MODULE_LIST} vsock"
VMWARE_MOD_DIR="${PN}-${PVR}"
BUILD_TARGETS="auto-build KERNEL_DIR=${KERNEL_DIR} KBUILD_OUTPUT=${KV_OUT_DIR}"
enewgroup "${VMWARE_GROUP}"
filter-flags -mfpmath=sse
for mod in ${VMWARE_MODULE_LIST}; do
MODULE_NAMES="${MODULE_NAMES} ${mod}(misc:${S}/${mod}-only)"
done
}
src_unpack() {
cd "${S}"
for mod in ${VMWARE_MODULE_LIST_ALL}; do
tar -xf /opt/vmware/lib/vmware/modules/source/${mod}.tar
done
}
src_prepare() {
epatch "${FILESDIR}/${PV_MAJOR}-makefile-kernel-dir.patch"
epatch "${FILESDIR}/${PV_MAJOR}-makefile-include.patch"
epatch "${FILESDIR}/${PV_MAJOR}-netdevice.patch"
use pax_kernel && epatch "${FILESDIR}/279-hardened.patch"
epatch "${FILESDIR}/${PV_MAJOR}-apic.patch"
kernel_is ge 3 7 0 && epatch "${FILESDIR}/${PV_MAJOR}-putname.patch"
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-vmblock.patch"
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-5.10-00-userns.patch"
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-01-getname.patch"
#kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-03-deprecated.patch"
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-04-dentry.patch"
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-05-inode.patch"
kernel_is ge 3 11 0 && epatch "${FILESDIR}/${PV_MAJOR}-filldir.patch"
kernel_is ge 3 15 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.15-00-readlink.patch"
kernel_is ge 3 15 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.15-01-vsock.patch"
kernel_is ge 3 17 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.17-00-netdev.patch"
kernel_is ge 3 18 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.18-00-version-redefined.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-00-compat-namei.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-01-dentry.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-02-vmblock-path.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-03-iovec.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-04-iovec.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-05-vmci_qpair.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-06-vsock.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-07-vsock.patch"
# Allow user patches so they can support RC kernels and whatever else
epatch_user
}
src_install() {
linux-mod_src_install
local udevrules="${T}/60-vmware.rules"
cat > "${udevrules}" <<-EOF
KERNEL=="vmci", GROUP="vmware", MODE="660"
KERNEL=="vmw_vmci", GROUP="vmware", MODE="660"
KERNEL=="vmmon", GROUP="vmware", MODE="660"
KERNEL=="vsock", GROUP="vmware", MODE="660"
EOF
udev_dorules "${udevrules}"
}

@ -0,0 +1,113 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit eutils flag-o-matic linux-info linux-mod user versionator udev
PV_MAJOR=$(get_major_version)
PV_MINOR=$(get_version_component_range 2)
DESCRIPTION="VMware kernel modules"
HOMEPAGE="http://www.vmware.com/"
SRC_URI=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64"
IUSE="pax_kernel +vmci +vsock"
RDEPEND=""
DEPEND="${RDEPEND}
|| ( =app-emulation/vmware-player-7.1.${PV_MINOR}*
=app-emulation/vmware-workstation-11.1.${PV_MINOR}* )"
S=${WORKDIR}
pkg_setup() {
CONFIG_CHECK="~HIGH_RES_TIMERS"
if kernel_is ge 2 6 37 && kernel_is lt 2 6 39; then
CONFIG_CHECK="${CONFIG_CHECK} BKL"
fi
if use vmci ; then
CONFIG_CHECK="${CONFIG_CHECK} !VMWARE_VMCI"
else
CONFIG_CHECK="${CONFIG_CHECK} VMWARE_VMCI"
fi
if use vsock ; then
CONFIG_CHECK="${CONFIG_CHECK} !VMWARE_VMCI_VSOCKETS"
else
CONFIG_CHECK="${CONFIG_CHECK} VMWARE_VMCI_VSOCKETS"
fi
linux-info_pkg_setup
linux-mod_pkg_setup
VMWARE_GROUP=${VMWARE_GROUP:-vmware}
VMWARE_MODULE_LIST_ALL="vmblock vmmon vmnet vmci vsock"
VMWARE_MODULE_LIST="vmblock vmmon vmnet"
use vmci && VMWARE_MODULE_LIST="${VMWARE_MODULE_LIST} vmci"
use vsock && VMWARE_MODULE_LIST="${VMWARE_MODULE_LIST} vsock"
VMWARE_MOD_DIR="${PN}-${PVR}"
BUILD_TARGETS="auto-build KERNEL_DIR=${KERNEL_DIR} KBUILD_OUTPUT=${KV_OUT_DIR}"
enewgroup "${VMWARE_GROUP}"
filter-flags -mfpmath=sse
for mod in ${VMWARE_MODULE_LIST}; do
MODULE_NAMES="${MODULE_NAMES} ${mod}(misc:${S}/${mod}-only)"
done
}
src_unpack() {
cd "${S}"
for mod in ${VMWARE_MODULE_LIST_ALL}; do
tar -xf /opt/vmware/lib/vmware/modules/source/${mod}.tar
done
}
src_prepare() {
epatch "${FILESDIR}/${PV_MAJOR}-makefile-kernel-dir.patch"
epatch "${FILESDIR}/${PV_MAJOR}-makefile-include.patch"
epatch "${FILESDIR}/${PV_MAJOR}-netdevice.patch"
use pax_kernel && epatch "${FILESDIR}/${PV_MAJOR}-hardened.patch"
epatch "${FILESDIR}/${PV_MAJOR}-apic.patch"
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-00-dentry.patch"
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-01-inode.patch"
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-02-control.patch"
kernel_is ge 3 11 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-03-inline.patch"
kernel_is ge 3 11 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.11-00-readdir.patch"
kernel_is ge 3 11 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.11-01-filldir.patch"
kernel_is ge 3 15 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.15-00-vsock.patch"
kernel_is ge 3 18 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.18-00-version-redefined.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-00-compat-namei.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-01-dentry.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-02-vmblock-path.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-03-iovec.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-04-iovec.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-05-vmci_qpair.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-06-vsock.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-07-vsock.patch"
# Allow user patches so they can support RC kernels and whatever else
epatch_user
}
src_install() {
linux-mod_src_install
local udevrules="${T}/60-vmware.rules"
cat > "${udevrules}" <<-EOF
KERNEL=="vmci", GROUP="vmware", MODE="660"
KERNEL=="vmw_vmci", GROUP="vmware", MODE="660"
KERNEL=="vmmon", GROUP="vmware", MODE="660"
KERNEL=="vsock", GROUP="vmware", MODE="660"
EOF
udev_dorules "${udevrules}"
}

@ -0,0 +1,113 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit eutils flag-o-matic linux-info linux-mod user versionator udev
PV_MAJOR=$(get_major_version)
PV_MINOR=$(get_version_component_range 2)
DESCRIPTION="VMware kernel modules"
HOMEPAGE="http://www.vmware.com/"
SRC_URI=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64"
IUSE="pax_kernel +vmci +vsock"
RDEPEND=""
DEPEND="${RDEPEND}
|| ( =app-emulation/vmware-player-7.1.${PV_MINOR}*
=app-emulation/vmware-workstation-11.1.${PV_MINOR}* )"
S=${WORKDIR}
pkg_setup() {
CONFIG_CHECK="~HIGH_RES_TIMERS"
if kernel_is ge 2 6 37 && kernel_is lt 2 6 39; then
CONFIG_CHECK="${CONFIG_CHECK} BKL"
fi
if use vmci ; then
CONFIG_CHECK="${CONFIG_CHECK} !VMWARE_VMCI"
else
CONFIG_CHECK="${CONFIG_CHECK} VMWARE_VMCI"
fi
if use vsock ; then
CONFIG_CHECK="${CONFIG_CHECK} !VMWARE_VMCI_VSOCKETS"
else
CONFIG_CHECK="${CONFIG_CHECK} VMWARE_VMCI_VSOCKETS"
fi
linux-info_pkg_setup
linux-mod_pkg_setup
VMWARE_GROUP=${VMWARE_GROUP:-vmware}
VMWARE_MODULE_LIST_ALL="vmblock vmmon vmnet vmci vsock"
VMWARE_MODULE_LIST="vmblock vmmon vmnet"
use vmci && VMWARE_MODULE_LIST="${VMWARE_MODULE_LIST} vmci"
use vsock && VMWARE_MODULE_LIST="${VMWARE_MODULE_LIST} vsock"
VMWARE_MOD_DIR="${PN}-${PVR}"
BUILD_TARGETS="auto-build KERNEL_DIR=${KERNEL_DIR} KBUILD_OUTPUT=${KV_OUT_DIR}"
enewgroup "${VMWARE_GROUP}"
filter-flags -mfpmath=sse
for mod in ${VMWARE_MODULE_LIST}; do
MODULE_NAMES="${MODULE_NAMES} ${mod}(misc:${S}/${mod}-only)"
done
}
src_unpack() {
cd "${S}"
for mod in ${VMWARE_MODULE_LIST_ALL}; do
tar -xf /opt/vmware/lib/vmware/modules/source/${mod}.tar
done
}
src_prepare() {
epatch "${FILESDIR}/${PV_MAJOR}-makefile-kernel-dir.patch"
epatch "${FILESDIR}/${PV_MAJOR}-makefile-include.patch"
epatch "${FILESDIR}/${PV_MAJOR}-netdevice.patch"
use pax_kernel && epatch "${FILESDIR}/${PV_MAJOR}-hardened.patch"
epatch "${FILESDIR}/${PV_MAJOR}-apic.patch"
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-00-dentry.patch"
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-01-inode.patch"
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-02-control.patch"
kernel_is ge 3 11 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10-03-inline.patch"
kernel_is ge 3 11 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.11-00-readdir.patch"
kernel_is ge 3 11 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.11-01-filldir.patch"
kernel_is ge 3 15 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.15-00-vsock.patch"
kernel_is ge 3 18 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.18-00-version-redefined.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-00-compat-namei.patch"
#kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-01-dentry.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-02-vmblock-path.patch"
#kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-03-iovec.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-04-iovec.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-05-vmci_qpair.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-06-vsock.patch"
kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-07-vsock.patch"
# Allow user patches so they can support RC kernels and whatever else
epatch_user
}
src_install() {
linux-mod_src_install
local udevrules="${T}/60-vmware.rules"
cat > "${udevrules}" <<-EOF
KERNEL=="vmci", GROUP="vmware", MODE="660"
KERNEL=="vmw_vmci", GROUP="vmware", MODE="660"
KERNEL=="vmmon", GROUP="vmware", MODE="660"
KERNEL=="vsock", GROUP="vmware", MODE="660"
EOF
udev_dorules "${udevrules}"
}

@ -6,3 +6,7 @@ DIST VMware-Player-6.0.2-1744117.i386.bundle.tar 233226240 SHA256 b3314b1b4658ff
DIST VMware-Player-6.0.2-1744117.x86_64.bundle.tar 200560640 SHA256 6e8ef0982303128fe2d41f59cc6d4031edcc85f4dcc8ba20e17df9837a4c972f SHA512 8e71b59e5152ec6a21e2bc87e11462fbc9f25a27ea48e73ace6daa198bc75fb0cf49d895755abe10b3fb52df0ec0586fd00e8bd51c461b7a638e745c6bbd996e WHIRLPOOL a9af879ce290a9f0ac2fb5f6af425e509455d6fb553156250013a941e782c416435be7326498ed544ee81623fbac4a5924940cc05dd56325c0d8e4c71c44b0b8
DIST VMware-Player-6.0.3-1895310.i386.bundle.tar 233216000 SHA256 7e7afedc7cef2c10e018924e26143dfea4e7bbe1de8fc3f30ff6d6ffe681a57b SHA512 3d00bfc0f1978ece042d5dca72bebcbb37761a83678ae645c77c8e87ca4b1b7bce63b857c9f455b0dce8fda1ba1b6c2b787794bebf5ed1faa8dced78316cc060 WHIRLPOOL c6284b025f0a772674987cef231b43bb32d3e0605c575a4b8156a2c2720f5c6c35eef496495d80ed83c9a8b49d16a3d26d8c333e1eabcf1d2cf55b4775a56b17
DIST VMware-Player-6.0.3-1895310.x86_64.bundle.tar 200550400 SHA256 6ab3d3c718d2973f486b69dfe9ad70c4a091640454f8ac8a78d505b2f57d59af SHA512 492f48e73eaf820645e6db99672106b5cc6148b53266729b85011844300b97d9cf2c36305d28ec77cc61ec70fe2883322bd23254ba3495b95bb6d92021b38036 WHIRLPOOL 9e9d8bebd05b8a4c4d2f940d6daf1305d16de31cc096f7b2ec966e9610b37cda991a2fea9f3249bbe679b6dc25c52c119a9992a94cca54fdc786737387f37b04
DIST VMware-Player-6.0.6-2700073.i386.bundle.tar 230184960 SHA256 f62c97771b9f9b3d62204cb72472bd3b4cf856f5bdc3fd7ea68f786127b4f98e SHA512 91ce0861eab7a122d9bca8f8899f18ed7f59effffb20ae2b6a4d1a021aa57cc179e0f8b7aebeeea857c10a8b31deffcb1649cb79e64a927bb80905746dbaaefd WHIRLPOOL 90c51b72ecdf1b1fa9575e74d196e5d3e25cc4433fc74df283ad57e5953d7671c848d2e816cd19ca7216c2af9065c092c29a66c3d42247cb952a1890d99458bf
DIST VMware-Player-6.0.6-2700073.x86_64.bundle.tar 198164480 SHA256 090f93c404d01475b4fc55db529f14e88457bde40b20140b5133a43e391dd866 SHA512 abdb5a6e6162ec297bdea4616f40ff734967fb04838ed75103ad7051a6120e4d4510f9fc192bd874382885e48444af4b00fc2dcd5f6d05929c615e5c379ae212 WHIRLPOOL 386b3a2b928ddf4ce149c1738412c46e0292648e54537b1164197d89b5dd5d86448fbe659141c2ca8d6f55ccd709e629d60b20311c69333bd2b33162a59f3a88
DIST VMware-Player-7.1.0-2496824.x86_64.bundle.tar 211077120 SHA256 80259e2b9337d4193da27109634fcb112e40241038f6956fa0e4e3b2f19900af SHA512 28f51f5b167fee8ad3c77fc3c36b0bb084e9f7e891f29952293f5857dcc1e03427d8db33a013abd64145293e19866f3c7d61e6e0d008eb94a1a349e9e8176459 WHIRLPOOL bca1a430a33914c004ddaaf13788ec26fa859a959f017c85b398f72c8b9af2da58c2f96c3d4034ab2d18aded07a304b4d30291eb422e692baefc833e47aec430
DIST VMware-Player-7.1.2-2780323.x86_64.bundle.tar 211128320 SHA256 baa60996b3bed5ba89db1a0fd9a2cc263ea07ac1cf2d6f3aab68c728cc960efc SHA512 c4465a4cbf97b9fe3aa2d6a1c690047251a37929867e0b3cbddf6643b59ef8e618809973543150e6cd9a3bdba0c9c04fb55171616c2179a0ff80ee7302e07fc2 WHIRLPOOL f0bc539647a5f3838a486d62506881f752e426e2e7299b20f2828c285cb041c777f93f3d29627ff4187edfd92e43e37e70647828ce537adb67db0fe3e99fccb0

@ -0,0 +1,37 @@
#!/sbin/runscript
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-workstation/files/vmware-10.0.rc,v 1.2 2014/04/26 20:36:17 dilfridge Exp $
depend() {
need localmount
use net
}
start() {
ebegin Starting VMware USB Arbitrator
#start-stop-daemon --start --exec @@BINDIR@@/vmware-usbarbitrator
@@BINDIR@@/vmware-usbarbitrator
eend $?
ebegin Starting VMware services
modprobe -v vmci || modprobe -v vmw_vmci
eend $?
modprobe -av vmmon vmci vsock vmblock vmnet
eend $?
@@BINDIR@@/vmware-networks --start
eend $?
}
stop() {
ebegin Stopping VMware USB Arbitrator
#start-stop-daemon --stop --exec @@BINDIR@@/vmware-usbarbitrator
killall --wait @@BINDIR@@/vmware-usbarbitrator
eend $?
@@BINDIR@@/vmware-networks --stop
eend $?
ebegin Stopping VMware services
modprobe -rv vsock vmmon vmblock vmnet
eend $?
modprobe -rv vmci || modprobe -rv vmw_vmci
eend $?
}

@ -0,0 +1,44 @@
#!/sbin/runscript
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
depend() {
need localmount
use net
}
start() {
ebegin Starting VMware USB Arbitrator
#start-stop-daemon --start --exec @@BINDIR@@/vmware-usbarbitrator
@@BINDIR@@/vmware-usbarbitrator
eend $?
ebegin Starting VMware services
# quiet for vmci because it may not be there
modprobe -vq vmci || modprobe -v vmw_vmci
eend $?
# vmci or vmw_vmci was loaded by the previous modprobe
# no need to do it here
modprobe -av vmmon vsock vmblock vmnet
eend $?
@@BINDIR@@/vmware-networks --start
eend $?
}
stop() {
ebegin Stopping VMware USB Arbitrator
#start-stop-daemon --stop --exec @@BINDIR@@/vmware-usbarbitrator
killall --wait @@BINDIR@@/vmware-usbarbitrator
eend $?
@@BINDIR@@/vmware-networks --stop
eend $?
ebegin Stopping VMware services
modprobe -rv vsock vmmon vmblock vmnet
eend $?
# quiet for vmci because it may not be there
modprobe -rvq vmci || modprobe -rv vmw_vmci
eend $?
}

@ -0,0 +1,44 @@
#!/sbin/runscript
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
depend() {
need localmount
use net
}
start() {
ebegin Starting VMware USB Arbitrator
#start-stop-daemon --start --exec @@BINDIR@@/vmware-usbarbitrator
@@BINDIR@@/vmware-usbarbitrator
eend $?
ebegin Starting VMware services
# quiet for vmci because it may not be there
modprobe -vq vmci || modprobe -v vmw_vmci
eend $?
# vmci or vmw_vmci was loaded by the previous modprobe
# no need to do it here
modprobe -av vmmon vsock vmblock vmnet
eend $?
@@BINDIR@@/vmware-networks --start
eend $?
}
stop() {
ebegin Stopping VMware USB Arbitrator
#start-stop-daemon --stop --exec @@BINDIR@@/vmware-usbarbitrator
killall --wait @@BINDIR@@/vmware-usbarbitrator
eend $?
@@BINDIR@@/vmware-networks --stop
eend $?
ebegin Stopping VMware services
modprobe -rv vsock vmmon vmblock vmnet
eend $?
# quiet for vmci because it may not be there
modprobe -rvq vmci || modprobe -rv vmw_vmci
eend $?
}

@ -0,0 +1,44 @@
#!/sbin/runscript
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
depend() {
need localmount
use net
}
start() {
ebegin Starting VMware USB Arbitrator
#start-stop-daemon --start --exec @@BINDIR@@/vmware-usbarbitrator
@@BINDIR@@/vmware-usbarbitrator
eend $?
ebegin Starting VMware services
# quiet for vmci because it may not be there
modprobe -vq vmci || modprobe -v vmw_vmci
eend $?
# vmci or vmw_vmci was loaded by the previous modprobe
# no need to do it here
modprobe -av vmmon vsock vmblock vmnet
eend $?
@@BINDIR@@/vmware-networks --start
eend $?
}
stop() {
ebegin Stopping VMware USB Arbitrator
#start-stop-daemon --stop --exec @@BINDIR@@/vmware-usbarbitrator
killall --wait @@BINDIR@@/vmware-usbarbitrator
eend $?
@@BINDIR@@/vmware-networks --stop
eend $?
ebegin Stopping VMware services
modprobe -rv vsock vmmon vmblock vmnet
eend $?
# quiet for vmci because it may not be there
modprobe -rvq vmci || modprobe -rv vmw_vmci
eend $?
}

@ -2,13 +2,7 @@
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>vmware</herd>
<longdescription lang="en">
VMware Player - free desktop virtualization software application - makes it
easy to operate any virtual machine created by VMware Workstation, VMware Fusion,
VMware Server or VMware ESX, as well as Microsoft Virtual Server virtual
machines or Microsoft Virtual PC virtual machines.
</longdescription>
<use>
<use>
<flag name="vmware-tools">Install VMware Tools images</flag>
</use>
</pkgmetadata>

@ -0,0 +1,245 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit eutils versionator fdo-mime gnome2-utils pax-utils vmware-bundle
MY_PN="VMware-Player"
MY_PV=$(get_version_component_range 1-3)
PV_MINOR=$(get_version_component_range 3)
PV_BUILD=$(get_version_component_range 4)
MY_P="${MY_PN}-${MY_PV}-${PV_BUILD}"
DESCRIPTION="Emulate a complete PC on your PC without the usual performance overhead of most emulators"
HOMEPAGE="http://www.vmware.com/products/player/"
BASE_URI="https://softwareupdate.vmware.com/cds/vmw-desktop/player/${MY_PV}/${PV_BUILD}/linux/core/"
SRC_URI="
x86? ( ${BASE_URI}${MY_P}.i386.bundle.tar )
amd64? ( ${BASE_URI}${MY_P}.x86_64.bundle.tar )
"
LICENSE="vmware GPL-2"
SLOT="0"
KEYWORDS="-* ~amd64 ~x86"
IUSE="cups doc +vmware-tools"
RESTRICT="strip"
# vmware-workstation should not use virtual/libc as this is a
# precompiled binary package thats linked to glibc.
RDEPEND="dev-cpp/cairomm
dev-cpp/glibmm:2
dev-cpp/gtkmm:2.4
dev-cpp/libgnomecanvasmm:2.6
dev-cpp/pangomm:1.4
dev-libs/atk
dev-libs/glib:2
dev-libs/libaio
dev-libs/libsigc++
dev-libs/libxml2
=dev-libs/openssl-0.9.8*
dev-libs/xmlrpc-c
gnome-base/libgnomecanvas
gnome-base/libgtop:2
gnome-base/librsvg:2
gnome-base/orbit
media-libs/fontconfig
media-libs/freetype
media-libs/libart_lgpl
=media-libs/libpng-1.2*
net-misc/curl
cups? ( net-print/cups )
sys-devel/gcc
sys-fs/fuse
sys-libs/glibc
sys-libs/zlib
x11-libs/cairo
x11-libs/gtk+:2
x11-libs/libgksu
x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
x11-libs/libXau
x11-libs/libxcb
x11-libs/libXcomposite
x11-libs/libXcursor
x11-libs/libXdamage
x11-libs/libXdmcp
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXft
x11-libs/libXi
x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libXrender
x11-libs/libXtst
x11-libs/pango
x11-libs/startup-notification
!app-emulation/vmware-workstation"
PDEPEND="~app-emulation/vmware-modules-279.${PV_MINOR}
vmware-tools? ( app-emulation/vmware-tools )"
S=${WORKDIR}
VM_INSTALL_DIR="/opt/vmware"
src_unpack() {
default
local bundle=${A%.tar}
local component ; for component in \
vmware-player \
vmware-player-app \
vmware-vmx \
vmware-usbarbitrator \
vmware-network-editor \
vmware-player-setup
#vmware-ovftool
do
vmware-bundle_extract-bundle-component "${bundle}" "${component}" "${S}"
done
}
src_prepare() {
rm -f bin/vmware-modconfig
rm -rf lib/modules/binary
# Bug 459566
mv lib/libvmware-netcfg.so lib/lib/
}
clean_bundled_libs() {
ebegin 'Removing superfluous libraries'
# exclude OpenSSL from unbundling until the AES-NI patch gets into the tree
# see http://forums.gentoo.org/viewtopic-t-835867.html
# must use shipped libgcr.so.0 or else "undefined symbol: gcr_certificate_widget_new"
ldconfig -p | sed 's:^\s\+\([^(]*[^( ]\).*=> \(/.*\)$:\1 \2:g;t;d' | fgrep -v 'libcrypto.so.0.9.8
libssl.so.0.9.8
libgcr.so.0' | while read -r libname libpath ; do
dosym "${libpath}" "${VM_INSTALL_DIR}/lib/vmware/lib/${libname}/${libname}"
done
eend
}
src_install() {
# install the binaries
into "${VM_INSTALL_DIR}"
dobin bin/* || die "failed to install bin"
# install the libraries
insinto "${VM_INSTALL_DIR}"/lib/vmware
doins -r lib/*
# Bug 432918
dosym "${VM_INSTALL_DIR}"/lib/vmware/lib/libcrypto.so.0.9.8/libcrypto.so.0.9.8 \
"${VM_INSTALL_DIR}"/lib/vmware/lib/libvmwarebase.so.0/libcrypto.so.0.9.8
dosym "${VM_INSTALL_DIR}"/lib/vmware/lib/libssl.so.0.9.8/libssl.so.0.9.8 \
"${VM_INSTALL_DIR}"/lib/vmware/lib/libvmwarebase.so.0/libssl.so.0.9.8
# install the ancillaries
insinto /usr
doins -r share
if use cups; then
exeinto $(cups-config --serverbin)/filter
doexe extras/thnucups
insinto /etc/cups
doins -r etc/cups/*
fi
# install documentation
if use doc; then
dodoc doc/*
fi
exeinto "${VM_INSTALL_DIR}"/lib/vmware/setup
doexe vmware-config
# create symlinks for the various tools
local tool ; for tool in thnuclnt vmplayer{,-daemon} \
vmware-{acetool,unity-helper,modconfig{,-console},gksu,fuseUI} ; do
dosym appLoader "${VM_INSTALL_DIR}"/lib/vmware/bin/"${tool}"
done
dosym "${VM_INSTALL_DIR}"/lib/vmware/bin/vmplayer "${VM_INSTALL_DIR}"/bin/vmplayer
dosym "${VM_INSTALL_DIR}"/lib/vmware/icu /etc/vmware/icu
# fix permissions
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware/bin/{appLoader,fusermount,launcher.sh,mkisofs,vmware-remotemks}
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware/lib/{wrapper-gtk24.sh,libgksu2.so.0/gksu-run-helper}
fperms 4711 "${VM_INSTALL_DIR}"/lib/vmware/bin/vmware-vmx{,-debug,-stats}
pax-mark -m "${D}${VM_INSTALL_DIR}"/lib/vmware/bin/vmware-vmx
# create the environment
local envd="${T}/90vmware"
cat > "${envd}" <<-EOF
PATH='${VM_INSTALL_DIR}/bin'
ROOTPATH='${VM_INSTALL_DIR}/bin'
EOF
doenvd "${envd}" || die
# create the configuration
dodir /etc/vmware || die
cat > "${D}"/etc/vmware/bootstrap <<-EOF
BINDIR='${VM_INSTALL_DIR}/bin'
LIBDIR='${VM_INSTALL_DIR}/lib'
EOF
cat > "${D}"/etc/vmware/config <<-EOF
bindir = "${VM_INSTALL_DIR}/bin"
libdir = "${VM_INSTALL_DIR}/lib/vmware"
initscriptdir = "/etc/init.d"
authd.fullpath = "${VM_INSTALL_DIR}/sbin/vmware-authd"
gksu.rootMethod = "su"
VMCI_CONFED = "yes"
VMBLOCK_CONFED = "yes"
VSOCK_CONFED = "yes"
NETWORKING = "yes"
player.product.version = "${MY_PV}"
product.buildNumber = "${PV_BUILD}"
EOF
# install the init.d script
local initscript="${T}/vmware.rc"
sed -e "s:@@BINDIR@@:${VM_INSTALL_DIR}/bin:g" \
"${FILESDIR}/vmware-10.0.rc" > "${initscript}" || die
newinitd "${initscript}" vmware || die
# fill in variable placeholders
sed -e "s:@@LIBCONF_DIR@@:${VM_INSTALL_DIR}/lib/vmware/libconf:g" \
-i "${D}${VM_INSTALL_DIR}"/lib/vmware/libconf/etc/{gtk-2.0/{gdk-pixbuf.loaders,gtk.immodules},pango/pango{.modules,rc}} || die
sed -e "s:@@BINARY@@:${VM_INSTALL_DIR}/bin/vmplayer:g" \
-e "/^Encoding/d" \
-i "${D}/usr/share/applications/${PN}.desktop" || die
}
pkg_config() {
"${VM_INSTALL_DIR}"/bin/vmware-networks --postinstall ${PN},old,new
}
pkg_preinst() {
gnome2_icon_savelist
}
pkg_postinst() {
fdo-mime_desktop_database_update
gnome2_icon_cache_update
ewarn "/etc/env.d was updated. Please run:"
ewarn "env-update && source /etc/profile"
ewarn ""
ewarn "Before you can use vmware-player, you must configure a default network setup."
ewarn "You can do this by running 'emerge --config ${PN}'."
}
pkg_prerm() {
einfo "Stopping ${PN} for safe unmerge"
/etc/init.d/vmware stop
}
pkg_postrm() {
fdo-mime_desktop_database_update
gnome2_icon_cache_update
}

@ -0,0 +1,244 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit eutils versionator fdo-mime gnome2-utils pax-utils vmware-bundle
MY_PN="VMware-Player"
MY_PV=$(get_version_component_range 1-3)
PV_MINOR=$(get_version_component_range 3)
PV_BUILD=$(get_version_component_range 4)
MY_P="${MY_PN}-${MY_PV}-${PV_BUILD}"
DESCRIPTION="Emulate a complete PC on your PC without the usual performance overhead of most emulators"
HOMEPAGE="http://www.vmware.com/products/player/"
BASE_URI="https://softwareupdate.vmware.com/cds/vmw-desktop/player/${MY_PV}/${PV_BUILD}/linux/core/"
SRC_URI="
amd64? ( ${BASE_URI}${MY_P}.x86_64.bundle.tar )
"
LICENSE="vmware GPL-2"
SLOT="0"
KEYWORDS="-* ~amd64"
IUSE="cups doc +vmware-tools"
RESTRICT="strip"
# vmware-workstation should not use virtual/libc as this is a
# precompiled binary package thats linked to glibc.
RDEPEND="dev-cpp/cairomm
dev-cpp/glibmm:2
dev-cpp/gtkmm:2.4
dev-cpp/libgnomecanvasmm:2.6
dev-cpp/pangomm:1.4
dev-libs/atk
dev-libs/glib:2
dev-libs/libaio
dev-libs/libsigc++
dev-libs/libxml2
=dev-libs/openssl-0.9.8*
dev-libs/xmlrpc-c
gnome-base/libgnomecanvas
gnome-base/libgtop:2
gnome-base/librsvg:2
gnome-base/orbit
media-libs/fontconfig
media-libs/freetype
media-libs/libart_lgpl
=media-libs/libpng-1.2*
net-misc/curl
cups? ( net-print/cups )
sys-devel/gcc
sys-fs/fuse
sys-libs/glibc
sys-libs/zlib
x11-libs/cairo
x11-libs/gtk+:2
x11-libs/libgksu
x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
x11-libs/libXau
x11-libs/libxcb
x11-libs/libXcomposite
x11-libs/libXcursor
x11-libs/libXdamage
x11-libs/libXdmcp
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXft
x11-libs/libXi
x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libXrender
x11-libs/libXtst
x11-libs/pango
x11-libs/startup-notification
!app-emulation/vmware-workstation"
PDEPEND="~app-emulation/vmware-modules-304.${PV_MINOR}
vmware-tools? ( app-emulation/vmware-tools )"
S=${WORKDIR}
VM_INSTALL_DIR="/opt/vmware"
src_unpack() {
default
local bundle=${A%.tar}
local component ; for component in \
vmware-player \
vmware-player-app \
vmware-vmx \
vmware-usbarbitrator \
vmware-network-editor \
vmware-player-setup
#vmware-ovftool
do
vmware-bundle_extract-bundle-component "${bundle}" "${component}" "${S}"
done
}
src_prepare() {
rm -f bin/vmware-modconfig
rm -rf lib/modules/binary
# Bug 459566
mv lib/libvmware-netcfg.so lib/lib/
}
clean_bundled_libs() {
ebegin 'Removing superfluous libraries'
# exclude OpenSSL from unbundling until the AES-NI patch gets into the tree
# see http://forums.gentoo.org/viewtopic-t-835867.html
# must use shipped libgcr.so.0 or else "undefined symbol: gcr_certificate_widget_new"
ldconfig -p | sed 's:^\s\+\([^(]*[^( ]\).*=> \(/.*\)$:\1 \2:g;t;d' | fgrep -v 'libcrypto.so.0.9.8
libssl.so.0.9.8
libgcr.so.0' | while read -r libname libpath ; do
dosym "${libpath}" "${VM_INSTALL_DIR}/lib/vmware/lib/${libname}/${libname}"
done
eend
}
src_install() {
# install the binaries
into "${VM_INSTALL_DIR}"
dobin bin/* || die "failed to install bin"
# install the libraries
insinto "${VM_INSTALL_DIR}"/lib/vmware
doins -r lib/*
# Bug 432918
dosym "${VM_INSTALL_DIR}"/lib/vmware/lib/libcrypto.so.0.9.8/libcrypto.so.0.9.8 \
"${VM_INSTALL_DIR}"/lib/vmware/lib/libvmwarebase.so.0/libcrypto.so.0.9.8
dosym "${VM_INSTALL_DIR}"/lib/vmware/lib/libssl.so.0.9.8/libssl.so.0.9.8 \
"${VM_INSTALL_DIR}"/lib/vmware/lib/libvmwarebase.so.0/libssl.so.0.9.8
# install the ancillaries
insinto /usr
doins -r share
if use cups; then
exeinto $(cups-config --serverbin)/filter
doexe extras/thnucups
insinto /etc/cups
doins -r etc/cups/*
fi
# install documentation
if use doc; then
dodoc doc/*
fi
exeinto "${VM_INSTALL_DIR}"/lib/vmware/setup
doexe vmware-config
# create symlinks for the various tools
local tool ; for tool in thnuclnt vmplayer{,-daemon} \
vmware-{acetool,unity-helper,modconfig{,-console},gksu,fuseUI} ; do
dosym appLoader "${VM_INSTALL_DIR}"/lib/vmware/bin/"${tool}"
done
dosym "${VM_INSTALL_DIR}"/lib/vmware/bin/vmplayer "${VM_INSTALL_DIR}"/bin/vmplayer
dosym "${VM_INSTALL_DIR}"/lib/vmware/icu /etc/vmware/icu
# fix permissions
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware/bin/{appLoader,fusermount,launcher.sh,mkisofs,vmware-remotemks}
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware/lib/{wrapper-gtk24.sh,libgksu2.so.0/gksu-run-helper}
fperms 4711 "${VM_INSTALL_DIR}"/lib/vmware/bin/vmware-vmx{,-debug,-stats}
pax-mark -m "${D}${VM_INSTALL_DIR}"/lib/vmware/bin/vmware-vmx
# create the environment
local envd="${T}/90vmware"
cat > "${envd}" <<-EOF
PATH='${VM_INSTALL_DIR}/bin'
ROOTPATH='${VM_INSTALL_DIR}/bin'
EOF
doenvd "${envd}" || die
# create the configuration
dodir /etc/vmware || die
cat > "${D}"/etc/vmware/bootstrap <<-EOF
BINDIR='${VM_INSTALL_DIR}/bin'
LIBDIR='${VM_INSTALL_DIR}/lib'
EOF
cat > "${D}"/etc/vmware/config <<-EOF
bindir = "${VM_INSTALL_DIR}/bin"
libdir = "${VM_INSTALL_DIR}/lib/vmware"
initscriptdir = "/etc/init.d"
authd.fullpath = "${VM_INSTALL_DIR}/sbin/vmware-authd"
gksu.rootMethod = "su"
VMCI_CONFED = "yes"
VMBLOCK_CONFED = "yes"
VSOCK_CONFED = "yes"
NETWORKING = "yes"
player.product.version = "${MY_PV}"
product.buildNumber = "${PV_BUILD}"
EOF
# install the init.d script
local initscript="${T}/vmware.rc"
sed -e "s:@@BINDIR@@:${VM_INSTALL_DIR}/bin:g" \
"${FILESDIR}/vmware-11.0.rc" > "${initscript}" || die
newinitd "${initscript}" vmware || die
# fill in variable placeholders
sed -e "s:@@LIBCONF_DIR@@:${VM_INSTALL_DIR}/lib/vmware/libconf:g" \
-i "${D}${VM_INSTALL_DIR}"/lib/vmware/libconf/etc/{gtk-2.0/{gdk-pixbuf.loaders,gtk.immodules},pango/pango{.modules,rc}} || die
sed -e "s:@@BINARY@@:${VM_INSTALL_DIR}/bin/vmplayer:g" \
-e "/^Encoding/d" \
-i "${D}/usr/share/applications/${PN}.desktop" || die
}
pkg_config() {
"${VM_INSTALL_DIR}"/bin/vmware-networks --postinstall ${PN},old,new
}
pkg_preinst() {
gnome2_icon_savelist
}
pkg_postinst() {
fdo-mime_desktop_database_update
gnome2_icon_cache_update
ewarn "/etc/env.d was updated. Please run:"
ewarn "env-update && source /etc/profile"
ewarn ""
ewarn "Before you can use vmware-player, you must configure a default network setup."
ewarn "You can do this by running 'emerge --config ${PN}'."
}
pkg_prerm() {
einfo "Stopping ${PN} for safe unmerge"
/etc/init.d/vmware stop
}
pkg_postrm() {
fdo-mime_desktop_database_update
gnome2_icon_cache_update
}

@ -0,0 +1,244 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit eutils versionator fdo-mime gnome2-utils pax-utils vmware-bundle
MY_PN="VMware-Player"
MY_PV=$(get_version_component_range 1-3)
PV_MINOR=$(get_version_component_range 3)
PV_BUILD=$(get_version_component_range 4)
MY_P="${MY_PN}-${MY_PV}-${PV_BUILD}"
DESCRIPTION="Emulate a complete PC on your PC without the usual performance overhead of most emulators"
HOMEPAGE="http://www.vmware.com/products/player/"
BASE_URI="https://softwareupdate.vmware.com/cds/vmw-desktop/player/${MY_PV}/${PV_BUILD}/linux/core/"
SRC_URI="
amd64? ( ${BASE_URI}${MY_P}.x86_64.bundle.tar )
"
LICENSE="vmware GPL-2"
SLOT="0"
KEYWORDS="-* ~amd64"
IUSE="cups doc +vmware-tools"
RESTRICT="strip"
# vmware-workstation should not use virtual/libc as this is a
# precompiled binary package thats linked to glibc.
RDEPEND="dev-cpp/cairomm
dev-cpp/glibmm:2
dev-cpp/gtkmm:2.4
dev-cpp/libgnomecanvasmm:2.6
dev-cpp/pangomm:1.4
dev-libs/atk
dev-libs/glib:2
dev-libs/libaio
dev-libs/libsigc++
dev-libs/libxml2
=dev-libs/openssl-0.9.8*
dev-libs/xmlrpc-c
gnome-base/libgnomecanvas
gnome-base/libgtop:2
gnome-base/librsvg:2
gnome-base/orbit
media-libs/fontconfig
media-libs/freetype
media-libs/libart_lgpl
=media-libs/libpng-1.2*
net-misc/curl
cups? ( net-print/cups )
sys-devel/gcc
sys-fs/fuse
sys-libs/glibc
sys-libs/zlib
x11-libs/cairo
x11-libs/gtk+:2
x11-libs/libgksu
x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
x11-libs/libXau
x11-libs/libxcb
x11-libs/libXcomposite
x11-libs/libXcursor
x11-libs/libXdamage
x11-libs/libXdmcp
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXft
x11-libs/libXi
x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libXrender
x11-libs/libXtst
x11-libs/pango
x11-libs/startup-notification
!app-emulation/vmware-workstation"
PDEPEND="~app-emulation/vmware-modules-304.${PV_MINOR}
vmware-tools? ( app-emulation/vmware-tools )"
S=${WORKDIR}
VM_INSTALL_DIR="/opt/vmware"
src_unpack() {
default
local bundle=${A%.tar}
local component ; for component in \
vmware-player \
vmware-player-app \
vmware-vmx \
vmware-usbarbitrator \
vmware-network-editor \
vmware-player-setup
#vmware-ovftool
do
vmware-bundle_extract-bundle-component "${bundle}" "${component}" "${S}"
done
}
src_prepare() {
rm -f bin/vmware-modconfig
rm -rf lib/modules/binary
# Bug 459566
mv lib/libvmware-netcfg.so lib/lib/
}
clean_bundled_libs() {
ebegin 'Removing superfluous libraries'
# exclude OpenSSL from unbundling until the AES-NI patch gets into the tree
# see http://forums.gentoo.org/viewtopic-t-835867.html
# must use shipped libgcr.so.0 or else "undefined symbol: gcr_certificate_widget_new"
ldconfig -p | sed 's:^\s\+\([^(]*[^( ]\).*=> \(/.*\)$:\1 \2:g;t;d' | fgrep -v 'libcrypto.so.0.9.8
libssl.so.0.9.8
libgcr.so.0' | while read -r libname libpath ; do
dosym "${libpath}" "${VM_INSTALL_DIR}/lib/vmware/lib/${libname}/${libname}"
done
eend
}
src_install() {
# install the binaries
into "${VM_INSTALL_DIR}"
dobin bin/* || die "failed to install bin"
# install the libraries
insinto "${VM_INSTALL_DIR}"/lib/vmware
doins -r lib/*
# Bug 432918
dosym "${VM_INSTALL_DIR}"/lib/vmware/lib/libcrypto.so.0.9.8/libcrypto.so.0.9.8 \
"${VM_INSTALL_DIR}"/lib/vmware/lib/libvmwarebase.so.0/libcrypto.so.0.9.8
dosym "${VM_INSTALL_DIR}"/lib/vmware/lib/libssl.so.0.9.8/libssl.so.0.9.8 \
"${VM_INSTALL_DIR}"/lib/vmware/lib/libvmwarebase.so.0/libssl.so.0.9.8
# install the ancillaries
insinto /usr
doins -r share
if use cups; then
exeinto $(cups-config --serverbin)/filter
doexe extras/thnucups
insinto /etc/cups
doins -r etc/cups/*
fi
# install documentation
if use doc; then
dodoc doc/*
fi
exeinto "${VM_INSTALL_DIR}"/lib/vmware/setup
doexe vmware-config
# create symlinks for the various tools
local tool ; for tool in thnuclnt vmplayer{,-daemon} \
vmware-{acetool,unity-helper,modconfig{,-console},gksu,fuseUI} ; do
dosym appLoader "${VM_INSTALL_DIR}"/lib/vmware/bin/"${tool}"
done
dosym "${VM_INSTALL_DIR}"/lib/vmware/bin/vmplayer "${VM_INSTALL_DIR}"/bin/vmplayer
dosym "${VM_INSTALL_DIR}"/lib/vmware/icu /etc/vmware/icu
# fix permissions
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware/bin/{appLoader,fusermount,launcher.sh,mkisofs,vmware-remotemks}
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware/lib/{wrapper-gtk24.sh,libgksu2.so.0/gksu-run-helper}
fperms 4711 "${VM_INSTALL_DIR}"/lib/vmware/bin/vmware-vmx{,-debug,-stats}
pax-mark -m "${D}${VM_INSTALL_DIR}"/lib/vmware/bin/vmware-vmx
# create the environment
local envd="${T}/90vmware"
cat > "${envd}" <<-EOF
PATH='${VM_INSTALL_DIR}/bin'
ROOTPATH='${VM_INSTALL_DIR}/bin'
EOF
doenvd "${envd}" || die
# create the configuration
dodir /etc/vmware || die
cat > "${D}"/etc/vmware/bootstrap <<-EOF
BINDIR='${VM_INSTALL_DIR}/bin'
LIBDIR='${VM_INSTALL_DIR}/lib'
EOF
cat > "${D}"/etc/vmware/config <<-EOF
bindir = "${VM_INSTALL_DIR}/bin"
libdir = "${VM_INSTALL_DIR}/lib/vmware"
initscriptdir = "/etc/init.d"
authd.fullpath = "${VM_INSTALL_DIR}/sbin/vmware-authd"
gksu.rootMethod = "su"
VMCI_CONFED = "yes"
VMBLOCK_CONFED = "yes"
VSOCK_CONFED = "yes"
NETWORKING = "yes"
player.product.version = "${MY_PV}"
product.buildNumber = "${PV_BUILD}"
EOF
# install the init.d script
local initscript="${T}/vmware.rc"
sed -e "s:@@BINDIR@@:${VM_INSTALL_DIR}/bin:g" \
"${FILESDIR}/vmware-11.0.rc" > "${initscript}" || die
newinitd "${initscript}" vmware || die
# fill in variable placeholders
sed -e "s:@@LIBCONF_DIR@@:${VM_INSTALL_DIR}/lib/vmware/libconf:g" \
-i "${D}${VM_INSTALL_DIR}"/lib/vmware/libconf/etc/{gtk-2.0/{gdk-pixbuf.loaders,gtk.immodules},pango/pango{.modules,rc}} || die
sed -e "s:@@BINARY@@:${VM_INSTALL_DIR}/bin/vmplayer:g" \
-e "/^Encoding/d" \
-i "${D}/usr/share/applications/${PN}.desktop" || die
}
pkg_config() {
"${VM_INSTALL_DIR}"/bin/vmware-networks --postinstall ${PN},old,new
}
pkg_preinst() {
gnome2_icon_savelist
}
pkg_postinst() {
fdo-mime_desktop_database_update
gnome2_icon_cache_update
ewarn "/etc/env.d was updated. Please run:"
ewarn "env-update && source /etc/profile"
ewarn ""
ewarn "Before you can use vmware-player, you must configure a default network setup."
ewarn "You can do this by running 'emerge --config ${PN}'."
}
pkg_prerm() {
einfo "Stopping ${PN} for safe unmerge"
/etc/init.d/vmware stop
}
pkg_postrm() {
fdo-mime_desktop_database_update
gnome2_icon_cache_update
}

@ -4,33 +4,45 @@ DIST vmware-tools-freebsd-9.6.1-1379776.i386.component.tar 15155200 SHA256 a3be7
DIST vmware-tools-freebsd-9.6.1-1379776.x86_64.component.tar 15155200 SHA256 941e58d81e00a11b4f611475e5ecb4257c78380ceef42bd9a3f2341b6bbad43e SHA512 3a1d3e49c6ccbb174868925b5d980e9676e61c61b6df67352cad6f96a004902466ba26e18ef4919ae5afdfd0e7b213ce9754fd97e39bd0873a0da695f11f046e WHIRLPOOL b37985ac5017d3bf306a10b5414d04c206b6f657b012609b0278aa79ab238535782913e5f31918e6906e6b48a95e26bd0cabe3433b380f4c472fd57c58308942
DIST vmware-tools-freebsd-9.6.2-1744117.i386.component.tar 15144960 SHA256 a9c7c25f829db43005c14bd416a08ae8a30b8096dcc5b924e17ebbaacfcb595c SHA512 e9c1049cc639464532927d5d2f0e16141e114ca8fa68eb6acb0297748036c4d810a57001ab782efaa38cd1d8e3976e70ecc9687f36be0963cd3aab9edc5aa7e9 WHIRLPOOL ec49dfaa540f0f7233a6950d01f8c7bfde6e10a292561a6b81bcd2e0c90de529f33316298c6db6dae49c53f67fe06d1ec335a36c005e0602c1ebff90193a14b2
DIST vmware-tools-freebsd-9.6.2-1744117.x86_64.component.tar 15144960 SHA256 1c6d4d21aa4ae8ba0c56f4b24fc8c73da07a4e8bfaf421b4db7c25012328fde1 SHA512 3306ccba195ed0373cf94e810fbb75f74f1b4238ed5be9bc50141222c2a5b687f79b794729ab40e192bba1c861670867abc792e54b01445b1bae8553eace2437 WHIRLPOOL 4556ea97c83ab3708316bd96e9e525fcf1a67c46bb2dd55c005e89102b2d4b8992d5a4376d79cc1c2faf20e65e08b8c3c79e26d9c9fd4c30d680a6ed184b9974
DIST vmware-tools-freebsd-9.6.5-2700073.i386.component.tar 15216640 SHA256 d900d0ee4f9f185f1914f80cb9b0a7df8fcf027e1009def7c2b81a7ac15e5d0b SHA512 5e070544e85137b7f032e2c1e4567233adadac274abc727b4dcfdfdddd455bc5f080499b306c6bdf7e5bbe17f6610fdece1c2ef541d5b89081ec5d342145071e WHIRLPOOL 1cc29331cefb25628425553707b8c8572eddc1b208856eac409d0123901918677d95fe82cc6028f0debcd7b28a8d524e1f29357b399629c30653eced80d12a7b
DIST vmware-tools-freebsd-9.6.5-2700073.x86_64.component.tar 15216640 SHA256 7a2435330281b039727ab8a10736a95393bc143e6b3bfea6e9b7d18a7bf4ba15 SHA512 e78b1d85bcff951d4661374eb687c388d0b299d3d1cd6e4344d3a0439219f82a1e59f335cd5284fb371304223038ef358b59006504b061d702981bec7afa3408 WHIRLPOOL 42ea166a2b5ec8986d4d7b04dc2d13c76fb2509d6f9993d1dcceb7479332de0032589acfc749996a255b5487173f8ec03dc859b897a5f894fd2dde964db45220
DIST vmware-tools-linux-9.2.3-1031769.i386.component.tar 66211840 SHA256 0383d632139dbb463bba02c3f6770c877b2fc254710b05167b1d0d4213fbc11c SHA512 076d952a70bec0be1dcdc22534a57631faa1e74136cd1baac479d6f98d924a8d870958aa02aaaa9eef98e23609470ab85bde5ab7afacbc15516a5d7ad7b023c2 WHIRLPOOL 4429145db5528b8160115a7c55bc895e8b52745c9c3b08024a096e3bdefbb0e11ef6fdad976178e96fa32320711f30c2889c8830535dc6f6dfb8f6cbb214be03
DIST vmware-tools-linux-9.2.3-1031769.x86_64.component.tar 66211840 SHA256 be5fa35af317058bffe98979b3b1f77eed416f17c7f6ee265a4717bbe3c9e718 SHA512 1f26d724e8e50df9d34333e44831d002ecd1a8af43cfed575c092316c4328ef3f34ac52b32c81ad6eb01dd362947ed462b09af080ee5e19cfd8aa89fbf83cd1d WHIRLPOOL 7292d3d69a46ad97b6decd5dff6c9c5dc19f76545965c6b95a904a14755072bc061742c458eecf974e8ca910af5d6464ccc6708c00c647095c3e98856ab628b0
DIST vmware-tools-linux-9.6.1-1379776.i386.component.tar 60518400 SHA256 88ef45021e7dcc2197bbbb2021703000065c7aee0df35706b6c0927e06b9a8eb SHA512 1047b481d20fc3ab2818bb540ba0af16e8bc0f703af95e7f78449a688324d73f32af8650a6325400c38dace5ce582c71e1079c08605db69c45c0476dbe98997e WHIRLPOOL 70ab1d8730f95c2c628d397951f922e3022fc938676e330446ba3bc357eba9c1b0157c319bbd3857d46694e0296e280f88f5334af4ed6acde98207c260cad4eb
DIST vmware-tools-linux-9.6.1-1379776.x86_64.component.tar 60518400 SHA256 b9d453f210891c1f76d70a45c6e463465940af27826006ebba090bd71e7d9590 SHA512 99b941fc7ce87d122f9b66d19d0d9406ba6d479f7b4ee782f261939694768c42bc31fb60974e4e854fe86964ff24f4a9ea7dfa1f8ed42ae697640d19834b89c6 WHIRLPOOL ab6892d084be06d753b1e452316ac30c38cfd1fc2607181159fe5d3ef5f2c9b2466145cae5f2f93c95be1010bc5484d1a39b4ececc9e9fdb3439a4fe64229521
DIST vmware-tools-linux-9.6.2-1744117.i386.component.tar 61143040 SHA256 d84a4db83b1feb991b1a382b0936b864fc231dcc73c39304a16c34bb343e9f50 SHA512 7338a83330a62212559062e1c75f0540b7eb7f1037b7a32a9b8aba1750c9f53f2bb2c82c79147df93d93f9113b6902b3318ccd29d67d21ecb523f638d541c1e5 WHIRLPOOL 93213e870e99b71fc1dad344bd81acd61dd29a9fe853c37fa44408105d2be68e48ff044c56ad9dde8905ce7d42a614d585ab106ad1f9c5fea07f37fc2ba92526
DIST vmware-tools-linux-9.6.2-1744117.x86_64.component.tar 61143040 SHA256 ce07d8afe9c63dc8018979528d252413ea49f9330006fca7b9d9d1fb394dd2e4 SHA512 e5078b84a10ab0b6962ca175ae95475e89cda3f2cf94c0e077e012b7163f46f54a418f34439224b5cb41428f809359e053e36926e85cf17d2ef7a9dbed868b80 WHIRLPOOL 51186181d1ee9bf371e3d042d11baa16bf6627922ef9c967ab1a6c731763d50782787d0028978c5640ec7792f48072de3b2ece78bdfc30ad23a49352a4ea11d2
DIST vmware-tools-linux-9.6.5-2700073.i386.component.tar 61337600 SHA256 aad21f54da7bb37169dc85fd84062f3976618ce63034c6785235bd6d5aa580f4 SHA512 133c4958d904755ef9a4fdc13ea686aa69b325301c435a8cf7ea77a246a072099864c3b3654d5ad35bfda2b849d3c0e31afdc8654959f0ca2df07c9d822bf9f7 WHIRLPOOL 66ceb444996985f264892d7bbee5ab8a7122796691fedf321e108e1bc81c54646ca3fe325688f4824ef781e7f9ae7058d4f440e2f0219bd58c985195eb9332b2
DIST vmware-tools-linux-9.6.5-2700073.x86_64.component.tar 61337600 SHA256 dd1fea6f4e99f676cef89d6ad1f9880e28d324f5051a95a6216cb48045c39ea8 SHA512 a607713f410a405ff8364adc7a300223ffa26d5cfd8f0612ec39c371057d6a65744de5e4a2eb552e488cdcb9dbc9ae6ddff7e89b533a9cbe531969453eefe291 WHIRLPOOL 5d851d3a3b9e7ab3b5ff48fa43f40330e88c6cdf083b9a975032b9d2868e9ad3e6e73d9c64db5fba0838eebcf182d9406434abf20d4fe76f74b136a00948684c
DIST vmware-tools-netware-9.2.3-1031769.i386.component.tar 81920 SHA256 906680d060a59414fa1726ef71b29f90f3923b823d4a123d72f345f6c35bab97 SHA512 892b0e9e18a80ab33dc6113447d281e31eb1925fea67ad9d90bfe6af808f855c8efaef6800540037062c4062bacc575fd638b7a49b34998006f5a49696558623 WHIRLPOOL b97bb7314868b1600a349d3b6af0b516aa3bd17124f3cf6bc309f1cdc21617b4c0abbbf74bb080aaaa64f31dc6ebb57905851678600cb6fce48e235428a5099c
DIST vmware-tools-netware-9.2.3-1031769.x86_64.component.tar 81920 SHA256 e1279aeb2d402fa87c643fb5bcdda695fa39c93495b9a2b75b4e80a713176817 SHA512 542c350d1052a9bad0930138042424a0c91f55f861511e10ce4b81327a40dc1c8a339606b9118ae1e37a3d4171b0617d0205f74e03c2e28b398b2663575206cc WHIRLPOOL 5b146c80e1537f30c8051266994e44d366cd5964539ab1f2d51e82e0e9c10802f78de38bfdcfd83a0f0f91299381aada5f77dc3a19a759bf69b932a9718a0900
DIST vmware-tools-netware-9.6.1-1379776.i386.component.tar 81920 SHA256 c5c2e4870bf8e9b36a997018b2b40b736ee445b23ac0ee6cf21983cddf67747c SHA512 33e94dbe2c7817703219a00a8dc14af97cd827ab1602c2a17c959dbed072185a2f8c3ede2e075318b67d457f35599054d88e78bf0af190c97e8b5e9039a9c9a1 WHIRLPOOL 96ac4f31879489d9615e5dcaeee876b471a30b7caf54cddc8291143dec66ec9a23664ea527e42249ae44dc46d631b376ea32518335d55e615cde6cd0022640c6
DIST vmware-tools-netware-9.6.1-1379776.x86_64.component.tar 81920 SHA256 4dbc8ebfecceb0d281db4f75a535e7648f6fbb921202dd5d9dace8e6e8e3db8f SHA512 2497bfc1d1c31a2e7cc787bbf11254aa5d953e19e16f9fa99548a1b05424a6713106f63e3e1981d46d8c5045ca095ab6070b7e03fc934a064f91323b5b224a44 WHIRLPOOL c628730b5a8e1750babdd3d8bd97d25869fc01751cb2f9532d0024865455b7d89b334f5b34894ffa2262838a740d6c51e61e6000b673532a1014e5ad9028f7f7
DIST vmware-tools-netware-9.6.2-1744117.i386.component.tar 81920 SHA256 1bcf7439f957d07fd84a56e6ab1bf88818759cf9f9a11df50ae5d0d65f0fd466 SHA512 9579e36b667af282ac3901ff4b836ba3fb1e74af81d19ac82fac94deb51d3bcf074e97ccb27bcab0cf8b9e319404c4cc305cea03ce08c6695191f89461c9de4a WHIRLPOOL 34bb18ee5facaebc273e8a2e8212dd4aa946af0c873a822d5704b0dd5bbbfa3225fc6c7629ae1a21ca55608f41df6c1f1a3d80140d6f8a4c3f9566caf04dcd85
DIST vmware-tools-netware-9.6.2-1744117.x86_64.component.tar 81920 SHA256 ba9d0f84db9d1acf2c53574f411cf9c287b5905fddeaca703c5b503ba400e19d SHA512 72d1d8c8a2339e83a1feb206e8597dae8a922d5c99dbadf3f1c29662e34c3ac409783336e06b12f1885cff9a1f90840410478c7240770864564ff73e7ec5bfee WHIRLPOOL 2d9bede35a1b10648307405fce67dfd2e2dbbf5f5c34b017ef620b1f30680d7442abc785f5685edfcaf85c4cba9eb8d560aafd59d0962f87e3c17e6c6c9a3194
DIST vmware-tools-netware-9.6.5-2700073.i386.component.tar 81920 SHA256 5ec311062c98a8bd86fa86d2b762b89ad2642c0ba7d95f8d42734c43f3dc7139 SHA512 d5ad09faee4fc5e4d3e9f5ab0423dc4a28cd316b70193277dfc4e26b8daef372af4ba3e9994ed488a6a051ab4f0e2980f6e8a1ab0b911f7f93d29556d3826617 WHIRLPOOL a911c63efece39e149f4086cfdd8e5c29adce1f2553481328988bc946ab6c6653033f967b7f8970c3b859bb245c57e4d70a432bda3a618da9c5b740f8303e24b
DIST vmware-tools-netware-9.6.5-2700073.x86_64.component.tar 81920 SHA256 78d3a8e66efeeb831658e50fe012e1d1d6bc4cfdf426008c6a21456757e5238c SHA512 bb6a37252beb66c6843ee851dbb71d169f1eace25f2874ec6c577d32ba1df5791e046fb5039e09ee11f536cb0078685665070d2399756130c3bdd6bad2a43e20 WHIRLPOOL 05c41c61715f9cddc89cadf1d2891be9bc13933a1649761087022b592e28b08db5a12b69ea3055750bb7f19688be1f18df4422ebb0650133e2711a30a7bafec6
DIST vmware-tools-solaris-9.2.3-1031769.i386.component.tar 13096960 SHA256 bb38d98351c0bb7f1c268a5ec1140bf2023276fd82dc31895fc6039f983ce964 SHA512 5abbb8e7e31753301a02dc411ca41a4857fb41b0c97a1264e954a53a5f15869dec7e01f8b65190aaf20e86c04e929beb88d6f14261761801480f453ce6b3107b WHIRLPOOL 3ebfa56078c49d53bc17215124a901931fcc3fdcd660ad55f72ea0c8cb81a31463bc83ecc480d7e7cccba602c3a37157e560a99231edae3b8e2c1e26242ce252
DIST vmware-tools-solaris-9.2.3-1031769.x86_64.component.tar 13096960 SHA256 94ed550543096d9e03326a5adea93928f24f69349e5bc6a995e1fefead7112d9 SHA512 04724855a497aefcbd1ccf6ddd1e793eb6fd4bc65960f59f0e0dc95096434d8fa1a5a12b49a20f7e293427a794e4c16df06e4a844042fd21537b2513992bae41 WHIRLPOOL 223977e8ff88601f58752b7a2fda99a15212858d8045504aefe181b18ca29ca4b09dd2b07ddc4091533fd07da5062777000dcbd1e557a789688dbec70fae9069
DIST vmware-tools-solaris-9.6.1-1379776.i386.component.tar 13096960 SHA256 f6057b82bfc070e506b51503c4c7e3dd66565dcc06a2f7fbddeaaa87d76283d6 SHA512 aee20ebff38ac19f7d4512fde2cac6b152af61b5b669eedb152530a9bbbad32136aba9747e4f8c57e78c27b6a24b08c026503b6e7f86fcb427f03e4d5ef28b00 WHIRLPOOL 97c5aed51529a8a38f75ce602cdf88821241388d1ff1a3abeaa7ebad041c047233645b020f2ba6719bc5a3cdda24bdf06ffbd43672dc17ae22fc794a8dfa3b10
DIST vmware-tools-solaris-9.6.1-1379776.x86_64.component.tar 13096960 SHA256 96ad456174dd66acf25dee3fd4f8ecae718120b0d21296fe21bf22d0fd24ec17 SHA512 c41a707e8c68c8e1fff32cd962e9f8d0d30044346e823e2171bf3dc8392c536de97a8b8466af5088869625dfb96c8746e74f1d6080c62183b51c5e0f94fd885a WHIRLPOOL ec4900bfc58325bf4719c4783f42e590a83032529dd8694d912ee586584a49cbec68f8945a25666d8dee94ea7fb50d8e28c33fca454ab68e501cde0c6fb8e497
DIST vmware-tools-solaris-9.6.2-1744117.i386.component.tar 13086720 SHA256 07b51c4fff9c4ee67f1d45215da0c2c1258620cbd5d8d24c0cae118b48af4ad4 SHA512 3e9aae368556e335b8915f90921caebb6e95d629a1bdf56125bead32ef6a7bcaafca03768e9d8779f530e808b70c23e7ef59bb4563bfb3693e6c0fa008b553f0 WHIRLPOOL 82cdf434c9700dd633fda1a259934617bf8175370690ce3549b3edee109997b2b0cd0108b28c127a744db4c271391de040efda11df68f4ce341e35414e6d94b9
DIST vmware-tools-solaris-9.6.2-1744117.x86_64.component.tar 13086720 SHA256 6845e98fdd41ed190d6f5b7ae5d2713be7028172297607aee778cf955505e038 SHA512 9a3796cf5102423506c0375d4f1702f1074adb8a818309084a1f7b6de99cf424c4833cfb39bdb8062dde729ddfb62325c2763730af04d8cfdabd1ab3f14fc19f WHIRLPOOL bd23daac15397bf148156f109af1c6bea819ddf70d6de2f98f943880aac64de0c9647ca40dd909ce6395354d169239d7b1e95041531d89c0d5893401a6e6ce35
DIST vmware-tools-solaris-9.6.5-2700073.i386.component.tar 12830720 SHA256 dfff56bd05aea2f732d893be9bd7b52d5b0a3f4f993bb8a275a429fabedd03d5 SHA512 e5c51665119fce5655cc24cc6ff5815250cd291ab7216eaa5eba6056b70e31734c111ae33189c4cb78c9f95336141f012c35c61cbf1ac2887dd264af8e5d7823 WHIRLPOOL 6429b2ed61a1ecba0ab290a9e37c642350782f257364b984abdda3b448e0b11996c0c1c909811620074b1b18a1206cc5f7a6872765766b3d0dcb2d1a978cc784
DIST vmware-tools-solaris-9.6.5-2700073.x86_64.component.tar 12830720 SHA256 4995ee79f2aa8093fd8caa9bf5e9d2085f3b9a5b6de6b105069c68a97a01ef11 SHA512 f36aa070959bfe94dca921f7c776f878a56a116b5ab7a0da6a55acd34943b7b9631a4184d3aaa773387aed303922aa8d7e9f5b3f24c5d8d9eafbf3d02fb9bf88 WHIRLPOOL 558aa2a21da94b4741d3dc6195ee705e918947511408560ca836937ca094fe66efd2582e967e7fac941dabbaee86b4727f7010782eded8abdcfc05d66fe779a7
DIST vmware-tools-winPre2k-9.2.3-1031769.i386.component.tar 11253760 SHA256 a83173fbed35fd6484740fa1c3899ef18c84f0e2728e8db2cca442c809bafe1f SHA512 466625a1e342afae65203b1f04568c4d6c57eee2022890ca463a750d67c6fbbd1f9e5c557515298db0566d9297ffcb32183ff476a5e9368fa05b63b073ade467 WHIRLPOOL a5192928c6fc5c198e818bcf5f623660ae4741017a25cf4e691005ff8284666afb3d5e1dbc037a4caa5889e1bf102e91e4a9f06b630c041674cb0d53d8c0d0f4
DIST vmware-tools-winPre2k-9.2.3-1031769.x86_64.component.tar 11253760 SHA256 9b51d31ca911ccf95db641834ae79220db44df53c2fd5a91d6b6e382cffdd39e SHA512 60f99dcb92794d3b798334c91966658f8bbb5cd11a435672094e0a0ccd0b070c0be277d38a9dfac9df77db6d7b91da806fa50a13e67b30d19c33fe153ff63a2e WHIRLPOOL 8426b651f35902f1ac87d556b330100f68ca1c615011301e6ab0dffb160fb4dab4f205f293ffd83ad74c67e9776d54c354f9fe98d70c596cec165929c5a1ba5c
DIST vmware-tools-winPre2k-9.6.1-1379776.i386.component.tar 11458560 SHA256 9d46fa6842684d099f8eaf3459aac8973644193ebb4c663164c04b3f69536872 SHA512 6ecb3726235d1cb156898f6887508f7540a5e93437bde43e86740bce15cb8db4a9c9bb4e2d89ef1f5670f37ac11a457410551ff70d8e096d881b51630fd0b40a WHIRLPOOL ed4a441ceb6eac141ea009d871e4a2315e63a1f4f086fb93055b6c2de97e2d06fa98a772a4fda4582cd2e2511a0ace85b2ed52127f1c7343e3e46e122808602d
DIST vmware-tools-winPre2k-9.6.1-1379776.x86_64.component.tar 11458560 SHA256 99d603372e69bea2e57e62c3c78dff5ac8119de3e89b438a8cf83a22b0f9774a SHA512 0f4ef0bb79cac357cbdb62d918d22f63a6f1ced51a3d15c10c32dd25dc97474858c85ce9dd080210e07e0b5f7c40741fb7695f1cacf84f5c29c8f8abae15f2c8 WHIRLPOOL f523815ad06bca65719ab99bc54da850a9c67568aa9e6e3ac567ec9669a81d6b554b91ddefe774387cadb014e418b33bb47cc3651caa897bca330a9ec1f22df8
DIST vmware-tools-winPre2k-9.6.2-1744117.i386.component.tar 11458560 SHA256 24f197f2d20d44f052f97d206cd904cb8cb6943a165a43188a6ab616e3d9346d SHA512 c1b9272097d83bc645cdce8d5e477053d9c68f3216440c31f7ad3d6e0acbb0cf6daa294584d3c381075fe9ccc8489e21d94040a6f47c06c4d8984ba4d0910551 WHIRLPOOL e9d4c6a77a926cbbe035babb6b6a0c28338cc6bfff6a791da2fab73bcc917b69642e7cd8963f228370cda0d508f7e9b7ef15c9d8378c09397b33fc46ea0032ac
DIST vmware-tools-winPre2k-9.6.2-1744117.x86_64.component.tar 11458560 SHA256 9b32f4f4fccdc6e40f36544ea5cc21f77fd2a517dace8dd672b5ca5e25604b6e SHA512 51259807b2e4e0267a4c7bd2ea294ab504b1681e91101813e5bb16ac155d7b0f065a3fabb692dc0108d44024fc373398aa891cb64eaa96244c5c644c08123159 WHIRLPOOL 07c963e0e821df31b60677769fb46fa836f552b3b41af4c133b0bc7ce76cd6011808fbd6a678c8e38e1c07dfb9221e46caee0923d22844cb399ac2831015e47b
DIST vmware-tools-winPre2k-9.6.5-2700073.i386.component.tar 11458560 SHA256 8b381b1c787466a96bf0f9536df05f58aa62c5c10d6fdeaedd136c6a49e09b8c SHA512 17bcbc4aa84e5e212732860cf34d4c4d8b4c806bd137b497e6dab9f023cf26af5a43a83f6f4d30f9d6e7df87f85b7a33e8ab0626c56450ea024b17e45ab1e1db WHIRLPOOL c3b45bbf5cc49f8b9dd64517dbd9e258ae60de59ea6beeed0b88745f7ba8beef1da9cba577d7829fa25dccf2c51ca919f36db5e7c141e7a4e1d62abe5b9fd187
DIST vmware-tools-winPre2k-9.6.5-2700073.x86_64.component.tar 11458560 SHA256 55e856f7a701174c3f1f0257d2a8054b836b5e14b328cadcd21e792db03afd3f SHA512 bbc80f18ec0e08d26850220124d0e9187fe9d80472dbd55269c63d05b51ecc7374d7e6066aa5e9fc9bcd027b218925084fb30ddd48dc3828df9c09a9c3579699 WHIRLPOOL f01ad51f8944a167e19abc876f31a6e08f85920d1e17272edff44e4c4871090694e87749cdbd83ffab6deba8569cfec4b600b9de5f930e57405e831dc73a0cd9
DIST vmware-tools-windows-9.2.3-1031769.i386.component.tar 61777920 SHA256 0fa4f7aac30b589292b6064c23702e6a257ac27ce1342c96755352f6f39e3b04 SHA512 776c834b49ad8f4bbe84ba800aa866e740e1dd236496065ebd46ddafa35621d4356f99a6f0bb45dfb1fe337bc75452236b5d5c87ec8c5ab6b5a1b6c18bc8d542 WHIRLPOOL 787725514f0ee1a48b64cc2f3b25f706290e386f9762857290ca2a84baea4a21205900b37df197976205baf27606023ea7626337b580299d4f6d63288c8ba39b
DIST vmware-tools-windows-9.2.3-1031769.x86_64.component.tar 61777920 SHA256 dbb7f6dbbcf9e44263193e40ad89944a45ef860f4f3b4b51d00ae1602f863f8c SHA512 818e2895c57be6792e82362c9616e2e6e8638997bde65ecea1416f71ccfa9681fc5cd44cd3356780ab35345e6b19ac8054a05eb8424dff1bcd779c9b686455a9 WHIRLPOOL ab847bddd07b029ba7a75fb6ae96133211d5a412fbe2059f851ae249854357dd0e25ab28df98fc2a3ee33f5aae08587a8b4bbfd6a60a2313f77fe6f98a1a3a3d
DIST vmware-tools-windows-9.6.1-1379776.i386.component.tar 69232640 SHA256 cb09c083adec2bd6a10f9cb75e4570fc19019ddd98320e7cf1ddf311737f75bd SHA512 a1caf8095e8ec56cf15c55e6c0081e16dc3b25e035f1a50eb9f6636a5879b5bbadb4dd079d822b6b1c27f2279c4214eefe004e460f1c1ae70f28242d0aafd400 WHIRLPOOL e61f9df173f83e8844dafd9e226d4b8cd0530df18b4104d1229d18a8c4e8757adc35ac1085602baeb35ba4896273070739c4d783679f18085583124bd856a715
DIST vmware-tools-windows-9.6.1-1379776.x86_64.component.tar 69232640 SHA256 4034d5f0fe06a7fb4d2dcd7159f59223f0886d2be5ea4dd1ae685cf5ff0c535d SHA512 8a1be0aae39bf7abe5c76d74f26f7f936dda2d6d169d3e5256479251cb961753abcb519647fcc6a026da11d57f45fa626d1c4a7d91a985ffd2361b2468ab601c WHIRLPOOL 2faccc4a8c04fb52bc0749dd69e887b3ad6f8e9776623f7e583590c5e1612de50bb3355372a60e850104f13f8c9ecd613e5f43ebccffe86661838b757110b57c
DIST vmware-tools-windows-9.6.2-1744117.i386.component.tar 69283840 SHA256 f5f43a1a8d39b16d74953a6ffd36f8b56a4e20808918e7358047080f961c7367 SHA512 9fd041f13d250665ea4adb5d9af7c07e1f3eb48708e1744e88ab7378844632e7da2c42c283b87d0b58af3afc456b9b6cd2eebfc28af1ccca3a53b7968eaadb7f WHIRLPOOL 12ccfd6c5d947caaceb7319359ccf70185ed4fe2d0bd60c39e1f4f6200d7ef89bd1a2c7fbeec5eb7b675fc23cd30aa8339fedfed1350f23745640a768fa9df07
DIST vmware-tools-windows-9.6.2-1744117.x86_64.component.tar 69283840 SHA256 d4fe4f1d5137c577dd2b82eae8eeee55fe4fc021506eeaa8eaf77ef45f309331 SHA512 c3e40d7e2b10e6c318776d7fcef151c140fd20848de6d48d4a380ff8596b0c4889f8c46816bcacd6e3cdd815d0d8b868283714dba9e9095d94a7cd64da79dc80 WHIRLPOOL 0b1670d8ce585333755fccc72fa55bed6919645c5756917dfd96ccfd6a1eca9d9cd17c74f6458b38e8b9db0632668a33ff9b6d6724e4b01d185eaceff9f14e41
DIST vmware-tools-windows-9.6.5-2700073.i386.component.tar 69294080 SHA256 6aba23b1bd9f7877c7fd54102f634dbf6d0d61fe2640d2e56f280395ad595f45 SHA512 fb63d93dd2ca26aeae42f27ce4b0dcda4991f10e0077a8384b8c7bbc3dbf73fa1f62f986a6c5661b70aed59e3841dc9a63b0de76c637ef62d919f9b667149dae WHIRLPOOL 8969ab16cc660b39626f40af69563bd85f40547d4656e156c4ef79221b6d71f8c9cd1b9ec6e0657f1c61f7104748cf84c356a5ff50339462f998d677a762eee5
DIST vmware-tools-windows-9.6.5-2700073.x86_64.component.tar 69294080 SHA256 effeb7d57c0c916de4b18f80df4cd8d9fcf00d0dda886b2ba0ce23179b3ad0fa SHA512 bcf036d3fa54b1b0ae98370a54f0e5d95ba68a6476fc79f60615d5754f370b8724d0ccaa6c826f843ebb3e1eb1afceb03701214774ff0b1e40742be5e9adad3f WHIRLPOOL 595918763b0b31ab07725b19c9642730bfb4ed14cec44ed4920bed0aed38b3d71ffab9a931b2923aef63514ff180f4f2221e1b6694418578ca1d2960531e4438

@ -0,0 +1,55 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
inherit versionator vmware-bundle
MY_PV="$(replace_version_separator 3 - $PV)"
BASE_URI="http://softwareupdate.vmware.com/cds/vmw-desktop/player/6.0.6/$(get_version_component_range 4)/linux/packages/"
DESCRIPTION="VMware Tools for guest operating systems"
HOMEPAGE="http://www.vmware.com/products/player/"
LICENSE="vmware"
SLOT="0"
KEYWORDS="-* ~amd64 ~x86"
RESTRICT="mirror"
IUSE=""
DEPEND=""
RDEPEND=""
IUSE_VMWARE_GUEST="freebsd linux netware solaris windows winPre2k"
VM_INSTALL_DIR="/opt/vmware"
for guest in ${IUSE_VMWARE_GUEST} ; do
SRC_URI+=" vmware_guest_${guest}? (
amd64? ( ${BASE_URI}vmware-tools-${guest}-${MY_PV}.x86_64.component.tar )
x86? ( ${BASE_URI}vmware-tools-${guest}-${MY_PV}.i386.component.tar )
)"
IUSE+=" vmware_guest_${guest}"
done ; unset guest
src_unpack() {
local arch
if use x86 ; then arch='i386'
elif use amd64 ; then arch='x86_64'
fi
local guest ; for guest in ${IUSE_VMWARE_GUEST} ; do
if use "vmware_guest_${guest}" ; then
local component="vmware-tools-${guest}-${MY_PV}.${arch}.component"
unpack "${component}.tar"
vmware-bundle_extract-component "${component}"
fi
done
}
src_install() {
insinto "${VM_INSTALL_DIR}"/lib/vmware/isoimages
local guest ; for guest in ${IUSE_VMWARE_GUEST} ; do
if use "vmware_guest_${guest}" ; then
doins "${guest}".iso{,.sig}
fi
done
}

@ -4,6 +4,10 @@ DIST VMware-Workstation-10.0.2-1744117.i386.bundle.tar 283658240 SHA256 3b8fcdf6
DIST VMware-Workstation-10.0.2-1744117.x86_64.bundle.tar 254115840 SHA256 95986090a4f2f59ae551a63a78f9ff5bdc3a87c48b25b10abb754720c3581f02 SHA512 69ede2f67e3283a3b234605ca5aa05555da008917d6b329ab6ca27f578620b6268ec79622b4fc5c331111f527fcac917dd78a844ad2ff4bbd0149aa4dbb7755d WHIRLPOOL 42117a4bb6184629ec2e8c13c39f3298c746a4fa10b0928cee3ccd1c3e4464af95f59c7ff0f71c44184d25cc91e593cbb40fd050275ee1e66b308010fc907a17
DIST VMware-Workstation-10.0.3-1895310.i386.bundle.tar 283648000 SHA256 8d66dd5b9351e53ce6729f96f8c9eca0631926220e14c34395236e9133b0c717 SHA512 32b953d25a89ac7a681a5e54adb8005ab32f47ca536af56e6b0095984376e28c59609af615b0f9f5a32999bbb65e2c2d20a4dca25ff7f28768435a1ac60b9ba3 WHIRLPOOL 060d82b470a5fb382ba49e4e2859d3e363864c451b91e4ece2bc19a75131b395438039dfb3cb9baa316beae70992f1ddc47522c0d891c17bbc67cbc1510eacfb
DIST VMware-Workstation-10.0.3-1895310.x86_64.bundle.tar 254105600 SHA256 59cd70ddb31b08bcf0cf369b4d2d566dee70ed0119a93ec34e180adcd82852bc SHA512 bf32a4d31152c614291cdb490a4ce41a51dbb5421232b8abef7461438e60f6dd8c989e6bf17899ef2d4e4dfb3e36707374368e5d09039f4193b402175d1fb421 WHIRLPOOL cae78535dfe59334b3812586ac454086bf54c32f238ee1a5981e404382ec4b5c2b5042de89fe568545908824377b77bfbd6ec549c1b5968502358d96ce49ff9e
DIST VMware-Workstation-10.0.6-2700073.i386.bundle.tar 281272320 SHA256 02b6c26ba33027344a943734e48cac03ed522a9cf09131837758af3ebd27ea60 SHA512 f65ce16784c9fccb0a6f09abe52bbbe1cc1567d366d03cfe0f79fdfbf4b9d5fef8238a6f62e969b8415112bf063f3d6a5e66239aa89159172520c80efd90c7e9 WHIRLPOOL 11ffae3b8a7e059e63afd2a8a19f9a07d8d63d2ef8f83c623b37e315750b09cb9a31537125614610fc988184017fe45b3ae5408670257c1dc9531dd6b6b17717
DIST VMware-Workstation-10.0.6-2700073.x86_64.bundle.tar 252610560 SHA256 e29edcb0638f32bff81d372c9eaf54e663e3376cd1d89dbd4cfe4cab533398b2 SHA512 072de1da92cbef890707a6c4e3d5223fdc60e50a5166bb72b1ebc098d28c1a75b83ed65a29fdf1311e119e590560546e376909e1384f1eab05918500ec80ede4 WHIRLPOOL 3f4252abb6c87424b88fa34adc29e1927d1e6458beca65d9b290ff0c8ad4ccaf2945e2209670f8f8d4e84548d806c18fb23dc8380ec65452841e2c0bbcce89aa
DIST VMware-Workstation-11.1.0-2496824.x86_64.bundle.tar 259112960 SHA256 bad9d8e223a2d7be07965c6dfc1dc450c996d4d447c500a7c874b85fc731d6c1 SHA512 78de89be8943f8ee99fae048047047f98ae44ee3bbb6dabd550726af864c61b0824a72b5ad91120cab0115d91fa036908d182518fcbd1b68b9a78caeb18ebc33 WHIRLPOOL 77807b5139eef194233bca608c888cec81a40b3fda1c08fb31a39bd24133ac58f700b6b84fd50207b9a47184a72a86e00cf00c74b13523c05b069b3dc089b34b
DIST VMware-Workstation-11.1.2-2780323.x86_64.bundle.tar 259133440 SHA256 085b50175b253647d8b2cb188286d3cf9265ed246cc0deb3b142b0438ef5725f SHA512 1c43ebaa4f8b228ec00f24a263eddcbbad5c0c940cd67040e6e2275c3a4aab6c9e2e5ee96996ca4f007ff786ece978c5789214ad92479720182fc3153d7edbde WHIRLPOOL 60e359a1dcfe1178652d8c6be705dda4f2f31b109bf01d5b5b16dc03e26a649e8f1af2ffa03d68e9108646c98e9cad41c10a9452ea14950883f9162e57ac20ca
DIST VMware-Workstation-9.0.3-1410761.i386.bundle.tar 264908800 SHA256 dfe9aaa75987793eac096c0fbdb364f94e354ab668213774ea3e90d5ddcecdc0 SHA512 5d0943400cb1fefca20f1a81d3989bf5cdda5e123d1a70b09ebc20a56498d36f597ed7a0730d2f6f752c3c4baad2c86d5ef7691e8d245147d944c6f7e4e708b0 WHIRLPOOL 14a950f2deb03c3b7a088d4fb50378c7109330d89903965c28ead0be1e2223dbce05a628b1ea859215d31a8978f497bd8f807652cf266667d67893eaf2d7372b
DIST VMware-Workstation-9.0.3-1410761.x86_64.bundle.tar 232724480 SHA256 2612f8a523c9f23164d7557c105520bc6e010af82b3e6d4a3ada04d8ff03cbf0 SHA512 07923231e481550cb0348e40ef341c2d0682ac0daf6c8e0ada130c03113f43a37bf322e64fb9dc73511dea0fd2851f3cb4f5e755bbad4beba9e3cc4e69566070 WHIRLPOOL d979f2d9ef8888be89d5747c16e0db7ca45609cd9d77d84baf8485b4956f9e9f99bf46c33a2690b7b1fea851c0495ed0a06b36e3e69b51abfc11604d9a62fe4d
DIST gentoo-01.tar.gz 1884 SHA256 e92c694865f1b29f4d7a39efa1dd87bc71dc5f922573f00a3d31ee8e27a8c335 SHA512 454ab93997781bd0a9accddb2ac7bb446f07ea7cddef5640369025c30e03592e14869e0f0f7b4457db2f1ada31c98051426016c86201afa8bc8e3aa4ccc2f875 WHIRLPOOL 9202583b617532ab2612b384da307218e7c93c2962f0d233e28bea066b07163c9bc51c0a599309f9d703c5575ebeb292d787716225624dc1c2fdff3c44fa3513

@ -0,0 +1,44 @@
#!/sbin/runscript
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
depend() {
need localmount
use net
}
start() {
ebegin Starting VMware USB Arbitrator
#start-stop-daemon --start --exec @@BINDIR@@/vmware-usbarbitrator
@@BINDIR@@/vmware-usbarbitrator
eend $?
ebegin Starting VMware services
# quiet for vmci because it may not be there
modprobe -vq vmci || modprobe -v vmw_vmci
eend $?
# vmci or vmw_vmci was loaded by the previous modprobe
# no need to do it here
modprobe -av vmmon vsock vmblock vmnet
eend $?
@@BINDIR@@/vmware-networks --start
eend $?
}
stop() {
ebegin Stopping VMware USB Arbitrator
#start-stop-daemon --stop --exec @@BINDIR@@/vmware-usbarbitrator
killall --wait @@BINDIR@@/vmware-usbarbitrator
eend $?
@@BINDIR@@/vmware-networks --stop
eend $?
ebegin Stopping VMware services
modprobe -rv vsock vmmon vmblock vmnet
eend $?
# quiet for vmci because it may not be there
modprobe -rvq vmci || modprobe -rv vmw_vmci
eend $?
}

@ -0,0 +1,44 @@
#!/sbin/runscript
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
depend() {
need localmount
use net
}
start() {
ebegin Starting VMware USB Arbitrator
#start-stop-daemon --start --exec @@BINDIR@@/vmware-usbarbitrator
@@BINDIR@@/vmware-usbarbitrator
eend $?
ebegin Starting VMware services
# quiet for vmci because it may not be there
modprobe -vq vmci || modprobe -v vmw_vmci
eend $?
# vmci or vmw_vmci was loaded by the previous modprobe
# no need to do it here
modprobe -av vmmon vsock vmblock vmnet
eend $?
@@BINDIR@@/vmware-networks --start
eend $?
}
stop() {
ebegin Stopping VMware USB Arbitrator
#start-stop-daemon --stop --exec @@BINDIR@@/vmware-usbarbitrator
killall --wait @@BINDIR@@/vmware-usbarbitrator
eend $?
@@BINDIR@@/vmware-networks --stop
eend $?
ebegin Stopping VMware services
modprobe -rv vsock vmmon vmblock vmnet
eend $?
# quiet for vmci because it may not be there
modprobe -rvq vmci || modprobe -rv vmw_vmci
eend $?
}

@ -0,0 +1,44 @@
#!/sbin/runscript
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
depend() {
need localmount
use net
}
start() {
ebegin Starting VMware USB Arbitrator
#start-stop-daemon --start --exec @@BINDIR@@/vmware-usbarbitrator
@@BINDIR@@/vmware-usbarbitrator
eend $?
ebegin Starting VMware services
# quiet for vmci because it may not be there
modprobe -vq vmci || modprobe -v vmw_vmci
eend $?
# vmci or vmw_vmci was loaded by the previous modprobe
# no need to do it here
modprobe -av vmmon vsock vmblock vmnet
eend $?
@@BINDIR@@/vmware-networks --start
eend $?
}
stop() {
ebegin Stopping VMware USB Arbitrator
#start-stop-daemon --stop --exec @@BINDIR@@/vmware-usbarbitrator
killall --wait @@BINDIR@@/vmware-usbarbitrator
eend $?
@@BINDIR@@/vmware-networks --stop
eend $?
ebegin Stopping VMware services
modprobe -rv vsock vmmon vmblock vmnet
eend $?
# quiet for vmci because it may not be there
modprobe -rvq vmci || modprobe -rv vmw_vmci
eend $?
}

@ -0,0 +1,55 @@
#!/sbin/runscript
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-workstation/files/vmware-server-10.0.rc,v 1.1 2013/10/19 11:38:39 dilfridge Exp $
depend() {
need localmount vmware
use net
}
checkconfig() {
# Check if certificates exist. If not, we need to generate them, ala sshd.
if [ ! -e @@ETCDIR@@/ssl/rui.key -o ! -e @@ETCDIR@@/ssl/rui.crt ]; then
mkdir -p @@ETCDIR@@/ssl
openssl req -x509 -days 365 -newkey rsa:2048 -keyout @@ETCDIR@@/ssl/rui.key -out @@ETCDIR@@/ssl/rui.crt -config @@ETCDIR@@/ssl/hostd.ssl.config
chmod -R 600 @@ETCDIR@@/ssl
fi
}
start() {
checkconfig
ebegin Starting VMware Authentication Daemon
start-stop-daemon --start \
--exec @@PREFIX@@/sbin/vmware-authdlauncher
eend $?
ebegin Starting VMware Workstation Server
start-stop-daemon --start \
--pidfile /var/run/vmware/vmware-hostd.PID \
--exec @@BINDIR@@/vmware-hostd \
-- -a -d @@ETCDIR@@/hostd/config.xml
eend $?
}
stop() {
ebegin "Shutdown VMs in the AutoStart Sequence"
local HOHO_ADMIN="$(@@BINDIR@@/vmware-wssc-adminTool "@@ETCDIR@@/hostd/authorization.xml" 2>/dev/null)"
if [ "x" != "x${HOHO_ADMIN}" ]; then
@@BINDIR@@/vmware-vim-cmd -U "${HOHO_ADMIN}" hostsvc/autostartmanager/autostop
fi
eend $?
ebegin Stopping VMware Workstation Server
start-stop-daemon --stop \
--pidfile /var/run/vmware/vmware-hostd.PID \
--exec @@BINDIR@@/vmware-hostd
eend $?
ebegin Stopping VMware Authentication Daemon
#start-stop-daemon --stop \
# --exec @@PREFIX@@/sbin/vmware-authdlauncher
killall @@PREFIX@@/sbin/vmware-authdlauncher
eend $?
}

@ -0,0 +1,55 @@
#!/sbin/runscript
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-workstation/files/vmware-server-10.0.rc,v 1.1 2013/10/19 11:38:39 dilfridge Exp $
depend() {
need localmount vmware
use net
}
checkconfig() {
# Check if certificates exist. If not, we need to generate them, ala sshd.
if [ ! -e @@ETCDIR@@/ssl/rui.key -o ! -e @@ETCDIR@@/ssl/rui.crt ]; then
mkdir -p @@ETCDIR@@/ssl
openssl req -x509 -days 365 -newkey rsa:2048 -keyout @@ETCDIR@@/ssl/rui.key -out @@ETCDIR@@/ssl/rui.crt -config @@ETCDIR@@/ssl/hostd.ssl.config
chmod -R 600 @@ETCDIR@@/ssl
fi
}
start() {
checkconfig
ebegin Starting VMware Authentication Daemon
start-stop-daemon --start \
--exec @@PREFIX@@/sbin/vmware-authdlauncher
eend $?
ebegin Starting VMware Workstation Server
start-stop-daemon --start \
--pidfile /var/run/vmware/vmware-hostd.PID \
--exec @@BINDIR@@/vmware-hostd \
-- -a -d @@ETCDIR@@/hostd/config.xml
eend $?
}
stop() {
ebegin "Shutdown VMs in the AutoStart Sequence"
local HOHO_ADMIN="$(@@BINDIR@@/vmware-wssc-adminTool "@@ETCDIR@@/hostd/authorization.xml" 2>/dev/null)"
if [ "x" != "x${HOHO_ADMIN}" ]; then
@@BINDIR@@/vmware-vim-cmd -U "${HOHO_ADMIN}" hostsvc/autostartmanager/autostop
fi
eend $?
ebegin Stopping VMware Workstation Server
start-stop-daemon --stop \
--pidfile /var/run/vmware/vmware-hostd.PID \
--exec @@BINDIR@@/vmware-hostd
eend $?
ebegin Stopping VMware Authentication Daemon
#start-stop-daemon --stop \
# --exec @@PREFIX@@/sbin/vmware-authdlauncher
killall @@PREFIX@@/sbin/vmware-authdlauncher
eend $?
}

@ -0,0 +1,55 @@
#!/sbin/runscript
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-workstation/files/vmware-server-10.0.rc,v 1.1 2013/10/19 11:38:39 dilfridge Exp $
depend() {
need localmount vmware
use net
}
checkconfig() {
# Check if certificates exist. If not, we need to generate them, ala sshd.
if [ ! -e @@ETCDIR@@/ssl/rui.key -o ! -e @@ETCDIR@@/ssl/rui.crt ]; then
mkdir -p @@ETCDIR@@/ssl
openssl req -x509 -days 365 -newkey rsa:2048 -keyout @@ETCDIR@@/ssl/rui.key -out @@ETCDIR@@/ssl/rui.crt -config @@ETCDIR@@/ssl/hostd.ssl.config
chmod -R 600 @@ETCDIR@@/ssl
fi
}
start() {
checkconfig
ebegin Starting VMware Authentication Daemon
start-stop-daemon --start \
--exec @@PREFIX@@/sbin/vmware-authdlauncher
eend $?
ebegin Starting VMware Workstation Server
start-stop-daemon --start \
--pidfile /var/run/vmware/vmware-hostd.PID \
--exec @@BINDIR@@/vmware-hostd \
-- -a -d @@ETCDIR@@/hostd/config.xml
eend $?
}
stop() {
ebegin "Shutdown VMs in the AutoStart Sequence"
local HOHO_ADMIN="$(@@BINDIR@@/vmware-wssc-adminTool "@@ETCDIR@@/hostd/authorization.xml" 2>/dev/null)"
if [ "x" != "x${HOHO_ADMIN}" ]; then
@@BINDIR@@/vmware-vim-cmd -U "${HOHO_ADMIN}" hostsvc/autostartmanager/autostop
fi
eend $?
ebegin Stopping VMware Workstation Server
start-stop-daemon --stop \
--pidfile /var/run/vmware/vmware-hostd.PID \
--exec @@BINDIR@@/vmware-hostd
eend $?
ebegin Stopping VMware Authentication Daemon
#start-stop-daemon --stop \
# --exec @@PREFIX@@/sbin/vmware-authdlauncher
killall @@PREFIX@@/sbin/vmware-authdlauncher
eend $?
}

@ -0,0 +1,499 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=5
inherit eutils versionator fdo-mime systemd gnome2-utils pam vmware-bundle
MY_PN="VMware-Workstation"
MY_PV=$(get_version_component_range 1-3)
PV_MINOR=$(get_version_component_range 3)
PV_BUILD=$(get_version_component_range 4)
MY_P="${MY_PN}-${MY_PV}-${PV_BUILD}"
SYSTEMD_UNITS_TAG="gentoo-01"
DESCRIPTION="Emulate a complete PC on your PC without the usual performance overhead of most emulators"
HOMEPAGE="http://www.vmware.com/products/workstation/"
BASE_URI="https://softwareupdate.vmware.com/cds/vmw-desktop/ws/${MY_PV}/${PV_BUILD}/linux/core/"
SRC_URI="
x86? ( ${BASE_URI}${MY_P}.i386.bundle.tar )
amd64? ( ${BASE_URI}${MY_P}.x86_64.bundle.tar )
https://github.com/akhuettel/systemd-vmware/archive/${SYSTEMD_UNITS_TAG}.tar.gz
"
LICENSE="vmware GPL-2"
SLOT="0"
KEYWORDS="-* ~amd64 ~x86"
IUSE="cups doc ovftool server vix vmware-tools"
RESTRICT="mirror strip"
# vmware-workstation should not use virtual/libc as this is a
# precompiled binary package thats linked to glibc.
RDEPEND="dev-cpp/cairomm
dev-cpp/glibmm:2
dev-cpp/gtkmm:2.4
dev-cpp/libgnomecanvasmm
dev-cpp/pangomm
dev-libs/atk
dev-libs/glib:2
dev-libs/icu
dev-libs/expat
dev-libs/libaio
=dev-libs/libgcrypt-1.5*
dev-libs/libsigc++
dev-libs/libxml2
dev-libs/openssl:0.9.8
dev-libs/xmlrpc-c
gnome-base/libgnomecanvas
gnome-base/libgtop:2
gnome-base/librsvg:2
gnome-base/orbit
media-libs/fontconfig
media-libs/freetype
media-libs/libart_lgpl
media-libs/libpng:1.2
media-libs/libpng
media-libs/tiff:3
net-misc/curl
cups? ( net-print/cups )
sys-devel/gcc
sys-fs/fuse
sys-libs/glibc
sys-libs/zlib
x11-libs/cairo
x11-libs/gtk+:2
x11-libs/libgksu
x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
x11-libs/libXau
x11-libs/libxcb
x11-libs/libXcomposite
x11-libs/libXcursor
x11-libs/libXdamage
x11-libs/libXdmcp
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXft
x11-libs/libXi
x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libXrender
x11-libs/libXtst
x11-libs/pango
x11-libs/pangox-compat
x11-libs/startup-notification
x11-themes/hicolor-icon-theme
!app-emulation/vmware-player"
PDEPEND="~app-emulation/vmware-modules-279.${PV_MINOR}
vmware-tools? ( app-emulation/vmware-tools )"
S=${WORKDIR}
VM_INSTALL_DIR="/opt/vmware"
VM_DATA_STORE_DIR="/var/lib/vmware/Shared VMs"
VM_HOSTD_USER="root"
src_unpack() {
default
local bundle
use amd64 && bundle=${MY_P}.x86_64.bundle
use x86 && bundle=${MY_P}.i386.bundle
local component; for component in \
vmware-vmx \
vmware-player-app \
vmware-player-setup \
vmware-workstation \
vmware-network-editor \
vmware-network-editor-ui \
vmware-usbarbitrator \
vmware-vprobe
do
vmware-bundle_extract-bundle-component "${bundle}" "${component}" "${S}"
done
if use server; then
vmware-bundle_extract-bundle-component "${bundle}" vmware-workstation-server #"${S}"
fi
if use vix; then
vmware-bundle_extract-bundle-component "${bundle}" vmware-vix-core vmware-vix
vmware-bundle_extract-bundle-component "${bundle}" vmware-vix-lib-Workstation1000andvSphere550 vmware-vix
fi
if use ovftool; then
vmware-bundle_extract-bundle-component "${bundle}" vmware-ovftool
fi
}
src_prepare() {
rm -f bin/vmware-modconfig
rm -rf lib/modules/binary
# Bug 459566
mv lib/libvmware-netcfg.so lib/lib/
if use server; then
rm -f vmware-workstation-server/bin/{openssl,configure-hostd.sh}
fi
find "${S}" -name '*.a' -delete
# clean_bundled_libs
}
clean_bundled_libs() {
ebegin 'Removing superfluous libraries'
cd lib/lib || die
ldconfig -p | \
sed 's:^\s\+\([^(]*[^( ]\).*=> /.*$:\1:g;t;d' | \
fgrep -vx 'libcrypto.so.0.9.8
libssl.so.0.9.8i
libgcr.so.0
libglib-2.0.so.0' |
xargs -d'\n' -r rm -rf
eend
}
src_install() {
local major_minor=$(get_version_component_range 1-2 "${PV}")
local major_minor_revision=$(get_version_component_range 1-3 "${PV}")
local build=$(get_version_component_range 4 "${PV}")
# revdep-rebuild entry
insinto /etc/revdep-rebuild
echo "SEARCH_DIRS_MASK=\"${VM_INSTALL_DIR}\"" >> ${T}/10${PN}
doins "${T}"/10${PN}
# install the binaries
into "${VM_INSTALL_DIR}"
dobin bin/*
# install the libraries
insinto "${VM_INSTALL_DIR}"/lib/vmware
doins -r lib/*
# Bug 432918
dosym "${VM_INSTALL_DIR}"/lib/vmware/lib/libcrypto.so.0.9.8/libcrypto.so.0.9.8 \
"${VM_INSTALL_DIR}"/lib/vmware/lib/libvmwarebase.so.0/libcrypto.so.0.9.8
dosym "${VM_INSTALL_DIR}"/lib/vmware/lib/libssl.so.0.9.8/libssl.so.0.9.8 \
"${VM_INSTALL_DIR}"/lib/vmware/lib/libvmwarebase.so.0/libssl.so.0.9.8
# install the ancillaries
insinto /usr
doins -r share
if use cups; then
exeinto $(cups-config --serverbin)/filter
doexe extras/thnucups
insinto /etc/cups
doins -r etc/cups/*
fi
insinto /etc/xdg
doins -r etc/xdg/*
# install documentation
doman man/man1/vmware.1.gz
if use doc; then
dodoc doc/*
fi
insinto "${VM_INSTALL_DIR}"/lib/vmware/setup
doins vmware-config
# install vmware workstation server
if use server; then
dosbin sbin/*
cd "${S}"/vmware-workstation-server
# install binaries
into "${VM_INSTALL_DIR}"/lib/vmware
dobin bin/*
dobin "${FILESDIR}"/configure-hostd.sh
dobin "${FILESDIR}"/configure-hostd.sh
# install the libraries
insinto "${VM_INSTALL_DIR}"/lib/vmware/lib
doins -r lib/*
into "${VM_INSTALL_DIR}"
for tool in vmware-{hostd,wssc-adminTool} ; do
cat > "${T}/${tool}" <<-EOF
#!/usr/bin/env bash
set -e
. /etc/vmware/bootstrap
exec "${VM_INSTALL_DIR}/lib/vmware/lib/wrapper-gtk24.sh" \\
"${VM_INSTALL_DIR}/lib/vmware/lib" \\
"${VM_INSTALL_DIR}/lib/vmware/bin/${tool}" \\
"${VM_INSTALL_DIR}/lib/vmware/libconf" "\$@"
EOF
dobin "${T}/${tool}"
done
insinto "${VM_INSTALL_DIR}"/lib/vmware
doins -r hostd
# create the configuration
insinto /etc/vmware/hostd
doins -r config/etc/vmware/hostd/*
doins -r etc/vmware/hostd/*
insinto /etc/vmware/ssl
doins etc/vmware/ssl/*
# pam
pamd_mimic_system vmware-authd auth account
# create directory for shared virtual machines.
keepdir "${VM_DATA_STORE_DIR}"
keepdir /var/log/vmware
fi
# install vmware-vix
if use vix; then
cd "${S}"/vmware-vix
# install the binary
into "${VM_INSTALL_DIR}"
dobin bin/*
# install the libraries
insinto "${VM_INSTALL_DIR}"/lib/vmware-vix
doins -r lib/*
dosym vmware-vix/libvixAllProducts.so "${VM_INSTALL_DIR}"/lib/libbvixAllProducts.so
# install headers
insinto /usr/include/vmware-vix
doins include/*
if use doc; then
dohtml -r doc/*
fi
fi
# install ovftool
if use ovftool; then
cd "${S}"
insinto "${VM_INSTALL_DIR}"/lib/vmware-ovftool
doins -r vmware-ovftool/*
chmod 0755 "${D}${VM_INSTALL_DIR}"/lib/vmware-ovftool/{ovftool,ovftool.bin}
dosym "${D}${VM_INSTALL_DIR}"/lib/vmware-ovftool/ovftool "${VM_INSTALL_DIR}"/bin/ovftool
fi
# create symlinks for the various tools
local tool ; for tool in thnuclnt vmware vmplayer{,-daemon} licenseTool vmamqpd \
vmware-{acetool,enter-serial,gksu,fuseUI,modconfig{,-console},netcfg,tray,unity-helper,zenity} ; do
dosym appLoader "${VM_INSTALL_DIR}"/lib/vmware/bin/"${tool}"
done
dosym "${VM_INSTALL_DIR}"/lib/vmware/bin/vmplayer "${VM_INSTALL_DIR}"/bin/vmplayer
dosym "${VM_INSTALL_DIR}"/lib/vmware/bin/vmware "${VM_INSTALL_DIR}"/bin/vmware
dosym "${VM_INSTALL_DIR}"/lib/vmware/icu /etc/vmware/icu
# fix permissions
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware/bin/{appLoader,fusermount,launcher.sh,mkisofs,vmware-remotemks}
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware/lib/{wrapper-gtk24.sh,libgksu2.so.0/gksu-run-helper}
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware/setup/vmware-config
fperms 4711 "${VM_INSTALL_DIR}"/bin/vmware-mount
fperms 4711 "${VM_INSTALL_DIR}"/lib/vmware/bin/vmware-vmx{,-debug,-stats}
if use server; then
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware/bin/vmware-{hostd,wssc-adminTool}
fperms 4711 "${VM_INSTALL_DIR}"/sbin/vmware-authd
fperms 1777 "${VM_DATA_STORE_DIR}"
fi
if use vix; then
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware-vix/setup/vmware-config
fi
# create the environment
local envd="${T}/90vmware"
cat > "${envd}" <<-EOF
PATH='${VM_INSTALL_DIR}/bin'
ROOTPATH='${VM_INSTALL_DIR}/bin'
EOF
doenvd "${envd}"
# create the configuration
dodir /etc/vmware
cat > "${D}"/etc/vmware/bootstrap <<-EOF
BINDIR='${VM_INSTALL_DIR}/bin'
LIBDIR='${VM_INSTALL_DIR}/lib'
EOF
cat > "${D}"/etc/vmware/config <<-EOF
bindir = "${VM_INSTALL_DIR}/bin"
libdir = "${VM_INSTALL_DIR}/lib/vmware"
initscriptdir = "/etc/init.d"
authd.fullpath = "${VM_INSTALL_DIR}/sbin/vmware-authd"
gksu.rootMethod = "su"
VMCI_CONFED = "yes"
VMBLOCK_CONFED = "yes"
VSOCK_CONFED = "yes"
NETWORKING = "yes"
player.product.version = "${major_minor_revision}"
product.version = "${major_minor_revision}"
product.buildNumber = "${build}"
product.name = "VMware Workstation"
workstation.product.version = "${major_minor_revision}"
EOF
if use vix; then
cat >> "${D}"/etc/vmware/config <<-EOF
vmware.fullpath = "${VM_INSTALL_DIR}/bin/vmware"
vix.libdir = "${VM_INSTALL_DIR}/lib/vmware-vix"
vix.config.version = "1"
EOF
fi
if use server; then
cat >> "${D}"/etc/vmware/config <<-EOF
authd.client.port = "902"
authd.proxy.nfc = "vmware-hostd:ha-nfc"
authd.soapserver = "TRUE"
EOF
fi
# install the init.d script
local initscript="${T}/vmware.rc"
sed -e "s:@@BINDIR@@:${VM_INSTALL_DIR}/bin:g" \
"${FILESDIR}/vmware-${major_minor}.rc" > ${initscript}
newinitd "${initscript}" vmware
if use server; then
# install the init.d script
local initscript="${T}/vmware-workstation-server.rc"
sed -e "s:@@ETCDIR@@:/etc/vmware:g" \
-e "s:@@PREFIX@@:${VM_INSTALL_DIR}:g" \
-e "s:@@BINDIR@@:${VM_INSTALL_DIR}/bin:g" \
-e "s:@@LIBDIR@@:${VM_INSTALL_DIR}/lib/vmware:g" \
"${FILESDIR}/vmware-server-${major_minor}.rc" > ${initscript}
newinitd "${initscript}" vmware-workstation-server
fi
# fill in variable placeholders
sed -e "s:@@LIBCONF_DIR@@:${VM_INSTALL_DIR}/lib/vmware/libconf:g" \
-i "${D}${VM_INSTALL_DIR}"/lib/vmware/libconf/etc/{gtk-2.0/{gdk-pixbuf.loaders,gtk.immodules},pango/pango{.modules,rc}}
sed -e "s:@@BINARY@@:${VM_INSTALL_DIR}/bin/vmware:g" \
-e "/^Encoding/d" \
-i "${D}/usr/share/applications/${PN}.desktop"
sed -e "s:@@BINARY@@:${VM_INSTALL_DIR}/bin/vmplayer:g" \
-e "/^Encoding/d" \
-i "${D}/usr/share/applications/vmware-player.desktop"
sed -e "s:@@BINARY@@:${VM_INSTALL_DIR}/bin/vmware-netcfg:g" \
-e "/^Encoding/d" \
-i "${D}/usr/share/applications/vmware-netcfg.desktop"
if use server; then
# Configuration for vmware-workstation-server
local hostdUser="${VM_HOSTD_USER:-root}"
sed -e "/ACEDataUser/s:root:${hostdUser}:g" \
-i "${D}/etc/vmware/hostd/authorization.xml" || die
# Shared VMs Path: [standard].
sed -e "s:##{DS_NAME}##:standard:g" \
-e "s:##{DS_PATH}##:${VM_DATA_STORE_DIR}:g" \
-i "${D}/etc/vmware/hostd/datastores.xml" || die
sed -e "s:##{HTTP_PORT}##:-1:g" \
-e "s:##{HTTPS_PORT}##:443:g" \
-e "s:##{PIPE_PREFIX}##:/var/run/vmware/:g" \
-i "${D}/etc/vmware/hostd/proxy.xml" || die
# See vmware-workstation-server.py for more details.
sed -e "s:##{BUILD_CFGDIR}##:/etc/vmware/hostd/:g" \
-e "s:##{CFGALTDIR}##:/etc/vmware/hostd/:g" \
-e "s:##{CFGDIR}##:/etc/vmware/:g" \
-e "s:##{ENABLE_AUTH}##:true:g" \
-e "s:##{HOSTDMODE}##:ws:g" \
-e "s:##{HOSTD_CFGDIR}##:/etc/vmware/hostd/:g" \
-e "s:##{HOSTD_MOCKUP}##:false:g" \
-e "s:##{LIBDIR}##:${VM_INSTALL_DIR}/lib/vmware:g" \
-e "s:##{LIBDIR_INSTALLED}##:${VM_INSTALL_DIR}/lib/vmware/:g" \
-e "s:##{LOGDIR}##:/var/log/vmware/:g" \
-e "s:##{LOGLEVEL}##:verbose:g" \
-e "s:##{MOCKUP}##:mockup-host-config.xml:g" \
-e "s:##{PLUGINDIR}##:./:g" \
-e "s:##{SHLIB_PREFIX}##:lib:g" \
-e "s:##{SHLIB_SUFFIX}##:.so:g" \
-e "s:##{USE_BLKLISTSVC}##:false:g" \
-e "s:##{USE_CBRCSVC}##:false:g" \
-e "s:##{USE_CIMSVC}##:false:g" \
-e "s:##{USE_DIRECTORYSVC}##:false:g" \
-e "s:##{USE_DIRECTORYSVC_MOCKUP}##:false:g" \
-e "s:##{USE_DYNAMIC_PLUGIN_LOADING}##:false:g" \
-e "s:##{USE_DYNAMO}##:false:g" \
-e "s:##{USE_DYNSVC}##:false:g" \
-e "s:##{USE_GUESTSVC}##:false:g" \
-e "s:##{USE_HBRSVC}##:false:g" \
-e "s:##{USE_HBRSVC_MOCKUP}##:false:g" \
-e "s:##{USE_HOSTSVC_MOCKUP}##:false:g" \
-e "s:##{USE_HTTPNFCSVC}##:false:g" \
-e "s:##{USE_HTTPNFCSVC_MOCKUP}##:false:g" \
-e "s:##{USE_LICENSESVC_MOCKUP}##:false:g" \
-e "s:##{USE_NFCSVC}##:true:g" \
-e "s:##{USE_NFCSVC_MOCKUP}##:false:g" \
-e "s:##{USE_OVFMGRSVC}##:true:g" \
-e "s:##{USE_PARTITIONSVC}##:false:g" \
-e "s:##{USE_SECURESOAP}##:false:g" \
-e "s:##{USE_SNMPSVC}##:false:g" \
-e "s:##{USE_SOLO_MOCKUP}##:false:g" \
-e "s:##{USE_STATSSVC_MOCKUP}##:false:g" \
-e "s:##{USE_VCSVC_MOCKUP}##:false:g" \
-e "s:##{USE_VDISKSVC}##:false:g" \
-e "s:##{USE_VDISKSVC_MOCKUP}##:false:g" \
-e "s:##{USE_VMSVC_MOCKUP}##:false:g" \
-e "s:##{VM_INVENTORY}##:vmInventory.xml:g" \
-e "s:##{VM_RESOURCES}##:vmResources.xml:g" \
-e "s:##{WEBSERVER_PORT_ENTRY}##::g" \
-e "s:##{WORKINGDIR}##:./:g" \
-i "${D}/etc/vmware/hostd/config.xml" || die
sed -e "s:##{ENV_LOCATION}##:/etc/vmware/hostd/env/:g" \
-i "${D}/etc/vmware/hostd/environments.xml" || die
# @@VICLIENT_URL@@=XXX
sed -e "s:@@AUTHD_PORT@@:902:g" \
-i "${D}${VM_INSTALL_DIR}/lib/vmware/hostd/docroot/client/clients.xml" || die
fi
# install systemd unit files
systemd_dounit "${WORKDIR}/systemd-vmware-${SYSTEMD_UNITS_TAG}/"*.{service,target}
}
pkg_config() {
"${VM_INSTALL_DIR}"/bin/vmware-networks --postinstall ${PN},old,new
}
pkg_preinst() {
gnome2_icon_savelist
}
pkg_postinst() {
fdo-mime_desktop_database_update
gnome2_icon_cache_update
ewarn "/etc/env.d was updated. Please run:"
ewarn "env-update && source /etc/profile"
ewarn ""
ewarn "Before you can use vmware workstation, you must configure a default network setup."
ewarn "You can do this by running 'emerge --config ${PN}'."
}
pkg_prerm() {
einfo "Stopping ${PN} for safe unmerge"
/etc/init.d/vmware stop
}
pkg_postrm() {
fdo-mime_desktop_database_update
gnome2_icon_cache_update
}

@ -0,0 +1,497 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=5
inherit eutils versionator fdo-mime systemd gnome2-utils pam vmware-bundle
MY_PN="VMware-Workstation"
MY_PV=$(get_version_component_range 1-3)
PV_MINOR=$(get_version_component_range 3)
PV_BUILD=$(get_version_component_range 4)
MY_P="${MY_PN}-${MY_PV}-${PV_BUILD}"
SYSTEMD_UNITS_TAG="gentoo-01"
DESCRIPTION="Emulate a complete PC on your PC without the usual performance overhead of most emulators"
HOMEPAGE="http://www.vmware.com/products/workstation/"
BASE_URI="https://softwareupdate.vmware.com/cds/vmw-desktop/ws/${MY_PV}/${PV_BUILD}/linux/core/"
SRC_URI="
amd64? ( ${BASE_URI}${MY_P}.x86_64.bundle.tar )
https://github.com/akhuettel/systemd-vmware/archive/${SYSTEMD_UNITS_TAG}.tar.gz
"
LICENSE="vmware GPL-2"
SLOT="0"
KEYWORDS="-* ~amd64"
IUSE="cups doc ovftool server vix vmware-tools"
RESTRICT="mirror strip"
# vmware-workstation should not use virtual/libc as this is a
# precompiled binary package thats linked to glibc.
RDEPEND="dev-cpp/cairomm
dev-cpp/glibmm:2
dev-cpp/gtkmm:2.4
dev-cpp/libgnomecanvasmm
dev-cpp/pangomm
dev-libs/atk
dev-libs/glib:2
dev-libs/icu
dev-libs/expat
dev-libs/libaio
=dev-libs/libgcrypt-1.5*
dev-libs/libsigc++
dev-libs/libxml2
dev-libs/openssl:0.9.8
dev-libs/xmlrpc-c
gnome-base/libgnomecanvas
gnome-base/libgtop:2
gnome-base/librsvg:2
gnome-base/orbit
media-libs/fontconfig
media-libs/freetype
media-libs/libart_lgpl
media-libs/libpng:1.2
media-libs/libpng
media-libs/tiff:3
net-misc/curl
cups? ( net-print/cups )
sys-devel/gcc
sys-fs/fuse
sys-libs/glibc
sys-libs/zlib
x11-libs/cairo
x11-libs/gtk+:2
x11-libs/libgksu
x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
x11-libs/libXau
x11-libs/libxcb
x11-libs/libXcomposite
x11-libs/libXcursor
x11-libs/libXdamage
x11-libs/libXdmcp
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXft
x11-libs/libXi
x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libXrender
x11-libs/libXtst
x11-libs/pango
x11-libs/pangox-compat
x11-libs/startup-notification
x11-themes/hicolor-icon-theme
!app-emulation/vmware-player"
PDEPEND="~app-emulation/vmware-modules-304.${PV_MINOR}
vmware-tools? ( app-emulation/vmware-tools )"
S=${WORKDIR}
VM_INSTALL_DIR="/opt/vmware"
VM_DATA_STORE_DIR="/var/lib/vmware/Shared VMs"
VM_HOSTD_USER="root"
src_unpack() {
default
local bundle
use amd64 && bundle=${MY_P}.x86_64.bundle
local component; for component in \
vmware-vmx \
vmware-player-app \
vmware-player-setup \
vmware-workstation \
vmware-network-editor \
vmware-network-editor-ui \
vmware-usbarbitrator \
vmware-vprobe
do
vmware-bundle_extract-bundle-component "${bundle}" "${component}" "${S}"
done
if use server; then
vmware-bundle_extract-bundle-component "${bundle}" vmware-workstation-server #"${S}"
fi
if use vix; then
vmware-bundle_extract-bundle-component "${bundle}" vmware-vix-core vmware-vix
vmware-bundle_extract-bundle-component "${bundle}" vmware-vix-lib-Workstation1100andvSphere600 vmware-vix
fi
if use ovftool; then
vmware-bundle_extract-bundle-component "${bundle}" vmware-ovftool
fi
}
src_prepare() {
rm -f bin/vmware-modconfig
rm -rf lib/modules/binary
# Bug 459566
mv lib/libvmware-netcfg.so lib/lib/
if use server; then
rm -f vmware-workstation-server/bin/{openssl,configure-hostd.sh}
fi
find "${S}" -name '*.a' -delete
# clean_bundled_libs
}
clean_bundled_libs() {
ebegin 'Removing superfluous libraries'
cd lib/lib || die
ldconfig -p | \
sed 's:^\s\+\([^(]*[^( ]\).*=> /.*$:\1:g;t;d' | \
fgrep -vx 'libcrypto.so.0.9.8
libssl.so.0.9.8i
libgcr.so.0
libglib-2.0.so.0' |
xargs -d'\n' -r rm -rf
eend
}
src_install() {
local major_minor=$(get_version_component_range 1-2 "${PV}")
local major_minor_revision=$(get_version_component_range 1-3 "${PV}")
local build=$(get_version_component_range 4 "${PV}")
# revdep-rebuild entry
insinto /etc/revdep-rebuild
echo "SEARCH_DIRS_MASK=\"${VM_INSTALL_DIR}\"" >> ${T}/10${PN}
doins "${T}"/10${PN}
# install the binaries
into "${VM_INSTALL_DIR}"
dobin bin/*
# install the libraries
insinto "${VM_INSTALL_DIR}"/lib/vmware
doins -r lib/*
# Bug 432918
dosym "${VM_INSTALL_DIR}"/lib/vmware/lib/libcrypto.so.0.9.8/libcrypto.so.0.9.8 \
"${VM_INSTALL_DIR}"/lib/vmware/lib/libvmwarebase.so.0/libcrypto.so.0.9.8
dosym "${VM_INSTALL_DIR}"/lib/vmware/lib/libssl.so.0.9.8/libssl.so.0.9.8 \
"${VM_INSTALL_DIR}"/lib/vmware/lib/libvmwarebase.so.0/libssl.so.0.9.8
# install the ancillaries
insinto /usr
doins -r share
if use cups; then
exeinto $(cups-config --serverbin)/filter
doexe extras/thnucups
insinto /etc/cups
doins -r etc/cups/*
fi
insinto /etc/xdg
doins -r etc/xdg/*
# install documentation
doman man/man1/vmware.1.gz
if use doc; then
dodoc doc/*
fi
insinto "${VM_INSTALL_DIR}"/lib/vmware/setup
doins vmware-config
# install vmware workstation server
if use server; then
dosbin sbin/*
cd "${S}"/vmware-workstation-server
# install binaries
into "${VM_INSTALL_DIR}"/lib/vmware
dobin bin/*
dobin "${FILESDIR}"/configure-hostd.sh
dobin "${FILESDIR}"/configure-hostd.sh
# install the libraries
insinto "${VM_INSTALL_DIR}"/lib/vmware/lib
doins -r lib/*
into "${VM_INSTALL_DIR}"
for tool in vmware-{hostd,wssc-adminTool} ; do
cat > "${T}/${tool}" <<-EOF
#!/usr/bin/env bash
set -e
. /etc/vmware/bootstrap
exec "${VM_INSTALL_DIR}/lib/vmware/lib/wrapper-gtk24.sh" \\
"${VM_INSTALL_DIR}/lib/vmware/lib" \\
"${VM_INSTALL_DIR}/lib/vmware/bin/${tool}" \\
"${VM_INSTALL_DIR}/lib/vmware/libconf" "\$@"
EOF
dobin "${T}/${tool}"
done
insinto "${VM_INSTALL_DIR}"/lib/vmware
doins -r hostd
# create the configuration
insinto /etc/vmware/hostd
doins -r config/etc/vmware/hostd/*
doins -r etc/vmware/hostd/*
insinto /etc/vmware/ssl
doins etc/vmware/ssl/*
# pam
pamd_mimic_system vmware-authd auth account
# create directory for shared virtual machines.
keepdir "${VM_DATA_STORE_DIR}"
keepdir /var/log/vmware
fi
# install vmware-vix
if use vix; then
cd "${S}"/vmware-vix
# install the binary
into "${VM_INSTALL_DIR}"
dobin bin/*
# install the libraries
insinto "${VM_INSTALL_DIR}"/lib/vmware-vix
doins -r lib/*
dosym vmware-vix/libvixAllProducts.so "${VM_INSTALL_DIR}"/lib/libbvixAllProducts.so
# install headers
insinto /usr/include/vmware-vix
doins include/*
if use doc; then
dohtml -r doc/*
fi
fi
# install ovftool
if use ovftool; then
cd "${S}"
insinto "${VM_INSTALL_DIR}"/lib/vmware-ovftool
doins -r vmware-ovftool/*
chmod 0755 "${D}${VM_INSTALL_DIR}"/lib/vmware-ovftool/{ovftool,ovftool.bin}
dosym "${D}${VM_INSTALL_DIR}"/lib/vmware-ovftool/ovftool "${VM_INSTALL_DIR}"/bin/ovftool
fi
# create symlinks for the various tools
local tool ; for tool in thnuclnt vmware vmplayer{,-daemon} licenseTool vmamqpd \
vmware-{acetool,enter-serial,gksu,fuseUI,modconfig{,-console},netcfg,tray,unity-helper,zenity} ; do
dosym appLoader "${VM_INSTALL_DIR}"/lib/vmware/bin/"${tool}"
done
dosym "${VM_INSTALL_DIR}"/lib/vmware/bin/vmplayer "${VM_INSTALL_DIR}"/bin/vmplayer
dosym "${VM_INSTALL_DIR}"/lib/vmware/bin/vmware "${VM_INSTALL_DIR}"/bin/vmware
dosym "${VM_INSTALL_DIR}"/lib/vmware/icu /etc/vmware/icu
# fix permissions
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware/bin/{appLoader,fusermount,launcher.sh,mkisofs,vmware-remotemks}
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware/lib/{wrapper-gtk24.sh,libgksu2.so.0/gksu-run-helper}
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware/setup/vmware-config
fperms 4711 "${VM_INSTALL_DIR}"/bin/vmware-mount
fperms 4711 "${VM_INSTALL_DIR}"/lib/vmware/bin/vmware-vmx{,-debug,-stats}
if use server; then
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware/bin/vmware-{hostd,wssc-adminTool}
fperms 4711 "${VM_INSTALL_DIR}"/sbin/vmware-authd
fperms 1777 "${VM_DATA_STORE_DIR}"
fi
if use vix; then
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware-vix/setup/vmware-config
fi
# create the environment
local envd="${T}/90vmware"
cat > "${envd}" <<-EOF
PATH='${VM_INSTALL_DIR}/bin'
ROOTPATH='${VM_INSTALL_DIR}/bin'
EOF
doenvd "${envd}"
# create the configuration
dodir /etc/vmware
cat > "${D}"/etc/vmware/bootstrap <<-EOF
BINDIR='${VM_INSTALL_DIR}/bin'
LIBDIR='${VM_INSTALL_DIR}/lib'
EOF
cat > "${D}"/etc/vmware/config <<-EOF
bindir = "${VM_INSTALL_DIR}/bin"
libdir = "${VM_INSTALL_DIR}/lib/vmware"
initscriptdir = "/etc/init.d"
authd.fullpath = "${VM_INSTALL_DIR}/sbin/vmware-authd"
gksu.rootMethod = "su"
VMCI_CONFED = "yes"
VMBLOCK_CONFED = "yes"
VSOCK_CONFED = "yes"
NETWORKING = "yes"
player.product.version = "${major_minor_revision}"
product.version = "${major_minor_revision}"
product.buildNumber = "${build}"
product.name = "VMware Workstation"
workstation.product.version = "${major_minor_revision}"
EOF
if use vix; then
cat >> "${D}"/etc/vmware/config <<-EOF
vmware.fullpath = "${VM_INSTALL_DIR}/bin/vmware"
vix.libdir = "${VM_INSTALL_DIR}/lib/vmware-vix"
vix.config.version = "1"
EOF
fi
if use server; then
cat >> "${D}"/etc/vmware/config <<-EOF
authd.client.port = "902"
authd.proxy.nfc = "vmware-hostd:ha-nfc"
authd.soapserver = "TRUE"
EOF
fi
# install the init.d script
local initscript="${T}/vmware.rc"
sed -e "s:@@BINDIR@@:${VM_INSTALL_DIR}/bin:g" \
"${FILESDIR}/vmware-${major_minor}.rc" > ${initscript}
newinitd "${initscript}" vmware
if use server; then
# install the init.d script
local initscript="${T}/vmware-workstation-server.rc"
sed -e "s:@@ETCDIR@@:/etc/vmware:g" \
-e "s:@@PREFIX@@:${VM_INSTALL_DIR}:g" \
-e "s:@@BINDIR@@:${VM_INSTALL_DIR}/bin:g" \
-e "s:@@LIBDIR@@:${VM_INSTALL_DIR}/lib/vmware:g" \
"${FILESDIR}/vmware-server-${major_minor}.rc" > ${initscript}
newinitd "${initscript}" vmware-workstation-server
fi
# fill in variable placeholders
sed -e "s:@@LIBCONF_DIR@@:${VM_INSTALL_DIR}/lib/vmware/libconf:g" \
-i "${D}${VM_INSTALL_DIR}"/lib/vmware/libconf/etc/{gtk-2.0/{gdk-pixbuf.loaders,gtk.immodules},pango/pango{.modules,rc}}
sed -e "s:@@BINARY@@:${VM_INSTALL_DIR}/bin/vmware:g" \
-e "/^Encoding/d" \
-i "${D}/usr/share/applications/${PN}.desktop"
sed -e "s:@@BINARY@@:${VM_INSTALL_DIR}/bin/vmplayer:g" \
-e "/^Encoding/d" \
-i "${D}/usr/share/applications/vmware-player.desktop"
sed -e "s:@@BINARY@@:${VM_INSTALL_DIR}/bin/vmware-netcfg:g" \
-e "/^Encoding/d" \
-i "${D}/usr/share/applications/vmware-netcfg.desktop"
if use server; then
# Configuration for vmware-workstation-server
local hostdUser="${VM_HOSTD_USER:-root}"
sed -e "/ACEDataUser/s:root:${hostdUser}:g" \
-i "${D}/etc/vmware/hostd/authorization.xml" || die
# Shared VMs Path: [standard].
sed -e "s:##{DS_NAME}##:standard:g" \
-e "s:##{DS_PATH}##:${VM_DATA_STORE_DIR}:g" \
-i "${D}/etc/vmware/hostd/datastores.xml" || die
sed -e "s:##{HTTP_PORT}##:-1:g" \
-e "s:##{HTTPS_PORT}##:443:g" \
-e "s:##{PIPE_PREFIX}##:/var/run/vmware/:g" \
-i "${D}/etc/vmware/hostd/proxy.xml" || die
# See vmware-workstation-server.py for more details.
sed -e "s:##{BUILD_CFGDIR}##:/etc/vmware/hostd/:g" \
-e "s:##{CFGALTDIR}##:/etc/vmware/hostd/:g" \
-e "s:##{CFGDIR}##:/etc/vmware/:g" \
-e "s:##{ENABLE_AUTH}##:true:g" \
-e "s:##{HOSTDMODE}##:ws:g" \
-e "s:##{HOSTD_CFGDIR}##:/etc/vmware/hostd/:g" \
-e "s:##{HOSTD_MOCKUP}##:false:g" \
-e "s:##{LIBDIR}##:${VM_INSTALL_DIR}/lib/vmware:g" \
-e "s:##{LIBDIR_INSTALLED}##:${VM_INSTALL_DIR}/lib/vmware/:g" \
-e "s:##{LOGDIR}##:/var/log/vmware/:g" \
-e "s:##{LOGLEVEL}##:verbose:g" \
-e "s:##{MOCKUP}##:mockup-host-config.xml:g" \
-e "s:##{PLUGINDIR}##:./:g" \
-e "s:##{SHLIB_PREFIX}##:lib:g" \
-e "s:##{SHLIB_SUFFIX}##:.so:g" \
-e "s:##{USE_BLKLISTSVC}##:false:g" \
-e "s:##{USE_CBRCSVC}##:false:g" \
-e "s:##{USE_CIMSVC}##:false:g" \
-e "s:##{USE_DIRECTORYSVC}##:false:g" \
-e "s:##{USE_DIRECTORYSVC_MOCKUP}##:false:g" \
-e "s:##{USE_DYNAMIC_PLUGIN_LOADING}##:false:g" \
-e "s:##{USE_DYNAMO}##:false:g" \
-e "s:##{USE_DYNSVC}##:false:g" \
-e "s:##{USE_GUESTSVC}##:false:g" \
-e "s:##{USE_HBRSVC}##:false:g" \
-e "s:##{USE_HBRSVC_MOCKUP}##:false:g" \
-e "s:##{USE_HOSTSVC_MOCKUP}##:false:g" \
-e "s:##{USE_HTTPNFCSVC}##:false:g" \
-e "s:##{USE_HTTPNFCSVC_MOCKUP}##:false:g" \
-e "s:##{USE_LICENSESVC_MOCKUP}##:false:g" \
-e "s:##{USE_NFCSVC}##:true:g" \
-e "s:##{USE_NFCSVC_MOCKUP}##:false:g" \
-e "s:##{USE_OVFMGRSVC}##:true:g" \
-e "s:##{USE_PARTITIONSVC}##:false:g" \
-e "s:##{USE_SECURESOAP}##:false:g" \
-e "s:##{USE_SNMPSVC}##:false:g" \
-e "s:##{USE_SOLO_MOCKUP}##:false:g" \
-e "s:##{USE_STATSSVC_MOCKUP}##:false:g" \
-e "s:##{USE_VCSVC_MOCKUP}##:false:g" \
-e "s:##{USE_VDISKSVC}##:false:g" \
-e "s:##{USE_VDISKSVC_MOCKUP}##:false:g" \
-e "s:##{USE_VMSVC_MOCKUP}##:false:g" \
-e "s:##{VM_INVENTORY}##:vmInventory.xml:g" \
-e "s:##{VM_RESOURCES}##:vmResources.xml:g" \
-e "s:##{WEBSERVER_PORT_ENTRY}##::g" \
-e "s:##{WORKINGDIR}##:./:g" \
-i "${D}/etc/vmware/hostd/config.xml" || die
sed -e "s:##{ENV_LOCATION}##:/etc/vmware/hostd/env/:g" \
-i "${D}/etc/vmware/hostd/environments.xml" || die
# @@VICLIENT_URL@@=XXX
sed -e "s:@@AUTHD_PORT@@:902:g" \
-i "${D}${VM_INSTALL_DIR}/lib/vmware/hostd/docroot/client/clients.xml" || die
fi
# install systemd unit files
systemd_dounit "${WORKDIR}/systemd-vmware-${SYSTEMD_UNITS_TAG}/"*.{service,target}
}
pkg_config() {
"${VM_INSTALL_DIR}"/bin/vmware-networks --postinstall ${PN},old,new
}
pkg_preinst() {
gnome2_icon_savelist
}
pkg_postinst() {
fdo-mime_desktop_database_update
gnome2_icon_cache_update
ewarn "/etc/env.d was updated. Please run:"
ewarn "env-update && source /etc/profile"
ewarn ""
ewarn "Before you can use vmware workstation, you must configure a default network setup."
ewarn "You can do this by running 'emerge --config ${PN}'."
}
pkg_prerm() {
einfo "Stopping ${PN} for safe unmerge"
/etc/init.d/vmware stop
}
pkg_postrm() {
fdo-mime_desktop_database_update
gnome2_icon_cache_update
}

@ -0,0 +1,497 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=5
inherit eutils versionator fdo-mime systemd gnome2-utils pam vmware-bundle
MY_PN="VMware-Workstation"
MY_PV=$(get_version_component_range 1-3)
PV_MINOR=$(get_version_component_range 3)
PV_BUILD=$(get_version_component_range 4)
MY_P="${MY_PN}-${MY_PV}-${PV_BUILD}"
SYSTEMD_UNITS_TAG="gentoo-01"
DESCRIPTION="Emulate a complete PC on your PC without the usual performance overhead of most emulators"
HOMEPAGE="http://www.vmware.com/products/workstation/"
BASE_URI="https://softwareupdate.vmware.com/cds/vmw-desktop/ws/${MY_PV}/${PV_BUILD}/linux/core/"
SRC_URI="
amd64? ( ${BASE_URI}${MY_P}.x86_64.bundle.tar )
https://github.com/akhuettel/systemd-vmware/archive/${SYSTEMD_UNITS_TAG}.tar.gz
"
LICENSE="vmware GPL-2"
SLOT="0"
KEYWORDS="-* ~amd64"
IUSE="cups doc ovftool server vix vmware-tools"
RESTRICT="mirror strip"
# vmware-workstation should not use virtual/libc as this is a
# precompiled binary package thats linked to glibc.
RDEPEND="dev-cpp/cairomm
dev-cpp/glibmm:2
dev-cpp/gtkmm:2.4
dev-cpp/libgnomecanvasmm
dev-cpp/pangomm
dev-libs/atk
dev-libs/glib:2
dev-libs/icu
dev-libs/expat
dev-libs/libaio
=dev-libs/libgcrypt-1.5*
dev-libs/libsigc++
dev-libs/libxml2
dev-libs/openssl:0.9.8
dev-libs/xmlrpc-c
gnome-base/libgnomecanvas
gnome-base/libgtop:2
gnome-base/librsvg:2
gnome-base/orbit
media-libs/fontconfig
media-libs/freetype
media-libs/libart_lgpl
media-libs/libpng:1.2
media-libs/libpng
media-libs/tiff:3
net-misc/curl
cups? ( net-print/cups )
sys-devel/gcc
sys-fs/fuse
sys-libs/glibc
sys-libs/zlib
x11-libs/cairo
x11-libs/gtk+:2
x11-libs/libgksu
x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
x11-libs/libXau
x11-libs/libxcb
x11-libs/libXcomposite
x11-libs/libXcursor
x11-libs/libXdamage
x11-libs/libXdmcp
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXft
x11-libs/libXi
x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libXrender
x11-libs/libXtst
x11-libs/pango
x11-libs/pangox-compat
x11-libs/startup-notification
x11-themes/hicolor-icon-theme
!app-emulation/vmware-player"
PDEPEND="~app-emulation/vmware-modules-304.${PV_MINOR}
vmware-tools? ( app-emulation/vmware-tools )"
S=${WORKDIR}
VM_INSTALL_DIR="/opt/vmware"
VM_DATA_STORE_DIR="/var/lib/vmware/Shared VMs"
VM_HOSTD_USER="root"
src_unpack() {
default
local bundle
use amd64 && bundle=${MY_P}.x86_64.bundle
local component; for component in \
vmware-vmx \
vmware-player-app \
vmware-player-setup \
vmware-workstation \
vmware-network-editor \
vmware-network-editor-ui \
vmware-usbarbitrator \
vmware-vprobe
do
vmware-bundle_extract-bundle-component "${bundle}" "${component}" "${S}"
done
if use server; then
vmware-bundle_extract-bundle-component "${bundle}" vmware-workstation-server #"${S}"
fi
if use vix; then
vmware-bundle_extract-bundle-component "${bundle}" vmware-vix-core vmware-vix
vmware-bundle_extract-bundle-component "${bundle}" vmware-vix-lib-Workstation1100andvSphere600 vmware-vix
fi
if use ovftool; then
vmware-bundle_extract-bundle-component "${bundle}" vmware-ovftool
fi
}
src_prepare() {
rm -f bin/vmware-modconfig
rm -rf lib/modules/binary
# Bug 459566
mv lib/libvmware-netcfg.so lib/lib/
if use server; then
rm -f vmware-workstation-server/bin/{openssl,configure-hostd.sh}
fi
find "${S}" -name '*.a' -delete
# clean_bundled_libs
}
clean_bundled_libs() {
ebegin 'Removing superfluous libraries'
cd lib/lib || die
ldconfig -p | \
sed 's:^\s\+\([^(]*[^( ]\).*=> /.*$:\1:g;t;d' | \
fgrep -vx 'libcrypto.so.0.9.8
libssl.so.0.9.8i
libgcr.so.0
libglib-2.0.so.0' |
xargs -d'\n' -r rm -rf
eend
}
src_install() {
local major_minor=$(get_version_component_range 1-2 "${PV}")
local major_minor_revision=$(get_version_component_range 1-3 "${PV}")
local build=$(get_version_component_range 4 "${PV}")
# revdep-rebuild entry
insinto /etc/revdep-rebuild
echo "SEARCH_DIRS_MASK=\"${VM_INSTALL_DIR}\"" >> ${T}/10${PN}
doins "${T}"/10${PN}
# install the binaries
into "${VM_INSTALL_DIR}"
dobin bin/*
# install the libraries
insinto "${VM_INSTALL_DIR}"/lib/vmware
doins -r lib/*
# Bug 432918
dosym "${VM_INSTALL_DIR}"/lib/vmware/lib/libcrypto.so.0.9.8/libcrypto.so.0.9.8 \
"${VM_INSTALL_DIR}"/lib/vmware/lib/libvmwarebase.so.0/libcrypto.so.0.9.8
dosym "${VM_INSTALL_DIR}"/lib/vmware/lib/libssl.so.0.9.8/libssl.so.0.9.8 \
"${VM_INSTALL_DIR}"/lib/vmware/lib/libvmwarebase.so.0/libssl.so.0.9.8
# install the ancillaries
insinto /usr
doins -r share
if use cups; then
exeinto $(cups-config --serverbin)/filter
doexe extras/thnucups
insinto /etc/cups
doins -r etc/cups/*
fi
insinto /etc/xdg
doins -r etc/xdg/*
# install documentation
doman man/man1/vmware.1.gz
if use doc; then
dodoc doc/*
fi
insinto "${VM_INSTALL_DIR}"/lib/vmware/setup
doins vmware-config
# install vmware workstation server
if use server; then
dosbin sbin/*
cd "${S}"/vmware-workstation-server
# install binaries
into "${VM_INSTALL_DIR}"/lib/vmware
dobin bin/*
dobin "${FILESDIR}"/configure-hostd.sh
dobin "${FILESDIR}"/configure-hostd.sh
# install the libraries
insinto "${VM_INSTALL_DIR}"/lib/vmware/lib
doins -r lib/*
into "${VM_INSTALL_DIR}"
for tool in vmware-{hostd,wssc-adminTool} ; do
cat > "${T}/${tool}" <<-EOF
#!/usr/bin/env bash
set -e
. /etc/vmware/bootstrap
exec "${VM_INSTALL_DIR}/lib/vmware/lib/wrapper-gtk24.sh" \\
"${VM_INSTALL_DIR}/lib/vmware/lib" \\
"${VM_INSTALL_DIR}/lib/vmware/bin/${tool}" \\
"${VM_INSTALL_DIR}/lib/vmware/libconf" "\$@"
EOF
dobin "${T}/${tool}"
done
insinto "${VM_INSTALL_DIR}"/lib/vmware
doins -r hostd
# create the configuration
insinto /etc/vmware/hostd
doins -r config/etc/vmware/hostd/*
doins -r etc/vmware/hostd/*
insinto /etc/vmware/ssl
doins etc/vmware/ssl/*
# pam
pamd_mimic_system vmware-authd auth account
# create directory for shared virtual machines.
keepdir "${VM_DATA_STORE_DIR}"
keepdir /var/log/vmware
fi
# install vmware-vix
if use vix; then
cd "${S}"/vmware-vix
# install the binary
into "${VM_INSTALL_DIR}"
dobin bin/*
# install the libraries
insinto "${VM_INSTALL_DIR}"/lib/vmware-vix
doins -r lib/*
dosym vmware-vix/libvixAllProducts.so "${VM_INSTALL_DIR}"/lib/libbvixAllProducts.so
# install headers
insinto /usr/include/vmware-vix
doins include/*
if use doc; then
dohtml -r doc/*
fi
fi
# install ovftool
if use ovftool; then
cd "${S}"
insinto "${VM_INSTALL_DIR}"/lib/vmware-ovftool
doins -r vmware-ovftool/*
chmod 0755 "${D}${VM_INSTALL_DIR}"/lib/vmware-ovftool/{ovftool,ovftool.bin}
dosym "${D}${VM_INSTALL_DIR}"/lib/vmware-ovftool/ovftool "${VM_INSTALL_DIR}"/bin/ovftool
fi
# create symlinks for the various tools
local tool ; for tool in thnuclnt vmware vmplayer{,-daemon} licenseTool vmamqpd \
vmware-{acetool,enter-serial,gksu,fuseUI,modconfig{,-console},netcfg,tray,unity-helper,zenity} ; do
dosym appLoader "${VM_INSTALL_DIR}"/lib/vmware/bin/"${tool}"
done
dosym "${VM_INSTALL_DIR}"/lib/vmware/bin/vmplayer "${VM_INSTALL_DIR}"/bin/vmplayer
dosym "${VM_INSTALL_DIR}"/lib/vmware/bin/vmware "${VM_INSTALL_DIR}"/bin/vmware
dosym "${VM_INSTALL_DIR}"/lib/vmware/icu /etc/vmware/icu
# fix permissions
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware/bin/{appLoader,fusermount,launcher.sh,mkisofs,vmware-remotemks}
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware/lib/{wrapper-gtk24.sh,libgksu2.so.0/gksu-run-helper}
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware/setup/vmware-config
fperms 4711 "${VM_INSTALL_DIR}"/bin/vmware-mount
fperms 4711 "${VM_INSTALL_DIR}"/lib/vmware/bin/vmware-vmx{,-debug,-stats}
if use server; then
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware/bin/vmware-{hostd,wssc-adminTool}
fperms 4711 "${VM_INSTALL_DIR}"/sbin/vmware-authd
fperms 1777 "${VM_DATA_STORE_DIR}"
fi
if use vix; then
fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware-vix/setup/vmware-config
fi
# create the environment
local envd="${T}/90vmware"
cat > "${envd}" <<-EOF
PATH='${VM_INSTALL_DIR}/bin'
ROOTPATH='${VM_INSTALL_DIR}/bin'
EOF
doenvd "${envd}"
# create the configuration
dodir /etc/vmware
cat > "${D}"/etc/vmware/bootstrap <<-EOF
BINDIR='${VM_INSTALL_DIR}/bin'
LIBDIR='${VM_INSTALL_DIR}/lib'
EOF
cat > "${D}"/etc/vmware/config <<-EOF
bindir = "${VM_INSTALL_DIR}/bin"
libdir = "${VM_INSTALL_DIR}/lib/vmware"
initscriptdir = "/etc/init.d"
authd.fullpath = "${VM_INSTALL_DIR}/sbin/vmware-authd"
gksu.rootMethod = "su"
VMCI_CONFED = "yes"
VMBLOCK_CONFED = "yes"
VSOCK_CONFED = "yes"
NETWORKING = "yes"
player.product.version = "${major_minor_revision}"
product.version = "${major_minor_revision}"
product.buildNumber = "${build}"
product.name = "VMware Workstation"
workstation.product.version = "${major_minor_revision}"
EOF
if use vix; then
cat >> "${D}"/etc/vmware/config <<-EOF
vmware.fullpath = "${VM_INSTALL_DIR}/bin/vmware"
vix.libdir = "${VM_INSTALL_DIR}/lib/vmware-vix"
vix.config.version = "1"
EOF
fi
if use server; then
cat >> "${D}"/etc/vmware/config <<-EOF
authd.client.port = "902"
authd.proxy.nfc = "vmware-hostd:ha-nfc"
authd.soapserver = "TRUE"
EOF
fi
# install the init.d script
local initscript="${T}/vmware.rc"
sed -e "s:@@BINDIR@@:${VM_INSTALL_DIR}/bin:g" \
"${FILESDIR}/vmware-${major_minor}.rc" > ${initscript}
newinitd "${initscript}" vmware
if use server; then
# install the init.d script
local initscript="${T}/vmware-workstation-server.rc"
sed -e "s:@@ETCDIR@@:/etc/vmware:g" \
-e "s:@@PREFIX@@:${VM_INSTALL_DIR}:g" \
-e "s:@@BINDIR@@:${VM_INSTALL_DIR}/bin:g" \
-e "s:@@LIBDIR@@:${VM_INSTALL_DIR}/lib/vmware:g" \
"${FILESDIR}/vmware-server-${major_minor}.rc" > ${initscript}
newinitd "${initscript}" vmware-workstation-server
fi
# fill in variable placeholders
sed -e "s:@@LIBCONF_DIR@@:${VM_INSTALL_DIR}/lib/vmware/libconf:g" \
-i "${D}${VM_INSTALL_DIR}"/lib/vmware/libconf/etc/{gtk-2.0/{gdk-pixbuf.loaders,gtk.immodules},pango/pango{.modules,rc}}
sed -e "s:@@BINARY@@:${VM_INSTALL_DIR}/bin/vmware:g" \
-e "/^Encoding/d" \
-i "${D}/usr/share/applications/${PN}.desktop"
sed -e "s:@@BINARY@@:${VM_INSTALL_DIR}/bin/vmplayer:g" \
-e "/^Encoding/d" \
-i "${D}/usr/share/applications/vmware-player.desktop"
sed -e "s:@@BINARY@@:${VM_INSTALL_DIR}/bin/vmware-netcfg:g" \
-e "/^Encoding/d" \
-i "${D}/usr/share/applications/vmware-netcfg.desktop"
if use server; then
# Configuration for vmware-workstation-server
local hostdUser="${VM_HOSTD_USER:-root}"
sed -e "/ACEDataUser/s:root:${hostdUser}:g" \
-i "${D}/etc/vmware/hostd/authorization.xml" || die
# Shared VMs Path: [standard].
sed -e "s:##{DS_NAME}##:standard:g" \
-e "s:##{DS_PATH}##:${VM_DATA_STORE_DIR}:g" \
-i "${D}/etc/vmware/hostd/datastores.xml" || die
sed -e "s:##{HTTP_PORT}##:-1:g" \
-e "s:##{HTTPS_PORT}##:443:g" \
-e "s:##{PIPE_PREFIX}##:/var/run/vmware/:g" \
-i "${D}/etc/vmware/hostd/proxy.xml" || die
# See vmware-workstation-server.py for more details.
sed -e "s:##{BUILD_CFGDIR}##:/etc/vmware/hostd/:g" \
-e "s:##{CFGALTDIR}##:/etc/vmware/hostd/:g" \
-e "s:##{CFGDIR}##:/etc/vmware/:g" \
-e "s:##{ENABLE_AUTH}##:true:g" \
-e "s:##{HOSTDMODE}##:ws:g" \
-e "s:##{HOSTD_CFGDIR}##:/etc/vmware/hostd/:g" \
-e "s:##{HOSTD_MOCKUP}##:false:g" \
-e "s:##{LIBDIR}##:${VM_INSTALL_DIR}/lib/vmware:g" \
-e "s:##{LIBDIR_INSTALLED}##:${VM_INSTALL_DIR}/lib/vmware/:g" \
-e "s:##{LOGDIR}##:/var/log/vmware/:g" \
-e "s:##{LOGLEVEL}##:verbose:g" \
-e "s:##{MOCKUP}##:mockup-host-config.xml:g" \
-e "s:##{PLUGINDIR}##:./:g" \
-e "s:##{SHLIB_PREFIX}##:lib:g" \
-e "s:##{SHLIB_SUFFIX}##:.so:g" \
-e "s:##{USE_BLKLISTSVC}##:false:g" \
-e "s:##{USE_CBRCSVC}##:false:g" \
-e "s:##{USE_CIMSVC}##:false:g" \
-e "s:##{USE_DIRECTORYSVC}##:false:g" \
-e "s:##{USE_DIRECTORYSVC_MOCKUP}##:false:g" \
-e "s:##{USE_DYNAMIC_PLUGIN_LOADING}##:false:g" \
-e "s:##{USE_DYNAMO}##:false:g" \
-e "s:##{USE_DYNSVC}##:false:g" \
-e "s:##{USE_GUESTSVC}##:false:g" \
-e "s:##{USE_HBRSVC}##:false:g" \
-e "s:##{USE_HBRSVC_MOCKUP}##:false:g" \
-e "s:##{USE_HOSTSVC_MOCKUP}##:false:g" \
-e "s:##{USE_HTTPNFCSVC}##:false:g" \
-e "s:##{USE_HTTPNFCSVC_MOCKUP}##:false:g" \
-e "s:##{USE_LICENSESVC_MOCKUP}##:false:g" \
-e "s:##{USE_NFCSVC}##:true:g" \
-e "s:##{USE_NFCSVC_MOCKUP}##:false:g" \
-e "s:##{USE_OVFMGRSVC}##:true:g" \
-e "s:##{USE_PARTITIONSVC}##:false:g" \
-e "s:##{USE_SECURESOAP}##:false:g" \
-e "s:##{USE_SNMPSVC}##:false:g" \
-e "s:##{USE_SOLO_MOCKUP}##:false:g" \
-e "s:##{USE_STATSSVC_MOCKUP}##:false:g" \
-e "s:##{USE_VCSVC_MOCKUP}##:false:g" \
-e "s:##{USE_VDISKSVC}##:false:g" \
-e "s:##{USE_VDISKSVC_MOCKUP}##:false:g" \
-e "s:##{USE_VMSVC_MOCKUP}##:false:g" \
-e "s:##{VM_INVENTORY}##:vmInventory.xml:g" \
-e "s:##{VM_RESOURCES}##:vmResources.xml:g" \
-e "s:##{WEBSERVER_PORT_ENTRY}##::g" \
-e "s:##{WORKINGDIR}##:./:g" \
-i "${D}/etc/vmware/hostd/config.xml" || die
sed -e "s:##{ENV_LOCATION}##:/etc/vmware/hostd/env/:g" \
-i "${D}/etc/vmware/hostd/environments.xml" || die
# @@VICLIENT_URL@@=XXX
sed -e "s:@@AUTHD_PORT@@:902:g" \
-i "${D}${VM_INSTALL_DIR}/lib/vmware/hostd/docroot/client/clients.xml" || die
fi
# install systemd unit files
systemd_dounit "${WORKDIR}/systemd-vmware-${SYSTEMD_UNITS_TAG}/"*.{service,target}
}
pkg_config() {
"${VM_INSTALL_DIR}"/bin/vmware-networks --postinstall ${PN},old,new
}
pkg_preinst() {
gnome2_icon_savelist
}
pkg_postinst() {
fdo-mime_desktop_database_update
gnome2_icon_cache_update
ewarn "/etc/env.d was updated. Please run:"
ewarn "env-update && source /etc/profile"
ewarn ""
ewarn "Before you can use vmware workstation, you must configure a default network setup."
ewarn "You can do this by running 'emerge --config ${PN}'."
}
pkg_prerm() {
einfo "Stopping ${PN} for safe unmerge"
/etc/init.d/vmware stop
}
pkg_postrm() {
fdo-mime_desktop_database_update
gnome2_icon_cache_update
}

@ -5,12 +5,9 @@
EAPI=5
EGIT_REPO_URI="git://git.savannah.gnu.org/screen.git"
EGIT_BOOTSTRAP="cd src; ./autogen.sh"
EGIT_SOURCEDIR="${WORKDIR}/${P}" # needed for setting S later on
EGIT_CHECKOUT_DIR="${WORKDIR}/${P}" # needed for setting S later on
WANT_AUTOCONF="2.5"
inherit eutils flag-o-matic toolchain-funcs pam autotools user git-2
inherit eutils flag-o-matic toolchain-funcs pam autotools user git-r3
DESCRIPTION="Full-screen window manager that multiplexes physical terminals between several processes"
HOMEPAGE="https://www.gnu.org/software/screen/"
@ -70,15 +67,12 @@ src_configure() {
--with-sys-screenrc="${EPREFIX}/etc/screenrc" \
--with-pty-mode=0620 \
--with-pty-group=5 \
--enable-rxvt_osc \
--enable-telnet \
--enable-colors256 \
$(use_enable pam)
}
src_compile() {
LC_ALL=POSIX emake comm.h term.h
emake osdef.h
emake -C doc screen.info
default
@ -115,7 +109,7 @@ src_install() {
pamd_mimic_system screen auth
dodoc \
README ChangeLog INSTALL TODO NEWS* patchlevel.h \
README ChangeLog INSTALL TODO NEWS* \
doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps}
doman doc/screen.1

@ -1,4 +1,4 @@
DIST wps-office_9.1.0.4953~a18_amd64.deb 67389656 SHA256 e98793e25261bbd92b465eca53300d36e837adb7abb1a74d5241081f7069669f SHA512 8e2d2aba488f359cc841b7513dfd50cb6abc95a4f4abffe7f8d21d0ec3ad0ac97ac35b602fd60688232847a0ba3942e47571cc6ef63d48b52a1a0f4d0dc68c08 WHIRLPOOL 70dc5382cad1de5f490085af35cac58d9edefbd2acfda37ef6bf1739ea3b047d704871a83a3562d73e425f9de86011cc0ca27a582c1133a7ce8f735c606cbc61
DIST wps-office_9.1.0.4953~a18_i386.deb 74618126 SHA256 f471094a61c0153ef3f63081430151ebbc7cb7a7b6c191e32867f98567473851 SHA512 9e41e6805527ceb6d8099b5c0bac0d6554ee856844c422529c837a8b713acacf056b8e8c2ff311197730cef4179677be0c0246df94022c7431caa054f440af10 WHIRLPOOL 957d21b3d2fe378cc55a3f8c684c23d5c8247bfb91217ddce80e08812518da32cbdee2edfee850c213bb4b0eff2b6b82d6ace77d4b22304349ee6daf88b74ac1
DIST wps-office_9.1.0.4961~a18p1_amd64.deb 67419632 SHA256 a37c28648d571571351582e0863d252fc7378da87683c335ee93937a09924a6f SHA512 c828f9cc3383a33db533ada811dd8ca2d80599b8c49d9f1a4fd6080386245aae7a5bc71b2e628cacb2bf9c07b2619417afebf990c6332abb4e23ade2ef0f471f WHIRLPOOL c46cf46a6bd8249c5f6643fbc61c03a374e264a3577e66c32e459b95ae7fe4ef663488657a2c4ba4ef79a32dddbe0ae63515f7efcd898dada698528d74778386
DIST wps-office_9.1.0.4961~a18p1_i386.deb 74647622 SHA256 e5e6f2813d3e778c68c3bc810ebe95ee862700c7ebf823f10a70dffbea1cd81c SHA512 7d90812e4a5a23f7d55f30c24831f8c17825048da14de6689cd8df9c4ce0cfb62982a05da78cbdc314e174b0e965c04852b104dd4d44bd1b76af45fdeba604d8 WHIRLPOOL 83fe9921bb71e2541790bff44728cd3ae5d557819ee25f103f5b3cb4c4e8d4801d2f402029371b8a58d6bdb5459efe8f5f64777b763070ab79d9690915c2b87d
DIST wps-office_9.1.0.4975~a19p1_amd64.deb 64716800 SHA256 79a49c9db0c4482c894e3c334e38bd299302e1c4bb4cd387f6a615f9e054a25d SHA512 f92415eb8d652afa6601dbea8f87949ed05d970e610c5aedebda21f2b0386a80bcea164f86e7c680946302d2f953067fc88889891a346353e4f15b547ecb8a3a WHIRLPOOL b8603756e4d3b09691974966d62f80dbe1ec668ae2eb5d99bbe2ad39a6c944de89292ede651143d894fad2631f7686036cd4a281ed5265a09f1af6361d75ea77
DIST wps-office_9.1.0.4975~a19p1_i386.deb 15731896 SHA256 c2732b2cf5a2f5166388546d895d74636353770ff9697c3e5120deacbc475b9d SHA512 6455becb978403efc5c2a8266c4a95b3bc880c33430a88e8f79af9967b685fe313281c1e0792ec22778f81c2502dcae63668d58b40195d5707ef50fdc29a89ad WHIRLPOOL cd2f5b06949cecf052e36cbd7df1e37f4e105257ee3c015aa115828a50c1c4eaee942151200e7248f05ee066f6d4d1d1c6be376fa5d22cf391111c2b8509dcaf

@ -6,7 +6,6 @@
<name>Pacho Ramos</name>
</maintainer>
<use>
<flag name="corefonts">Ensure <pkg>media-fonts/corefonts</pkg> is present</flag>
<flag name="sharedfonts">Preserve fonts from WPS</flag>
</use>
</pkgmetadata>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save