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.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.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
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
DIST gedit-3.14.3.tar.xz 2875192 SHA256 cd6c9f556ec12001e4b250091a1d7405cd807cce7fe767bc89ed2c25aa96a319 SHA512 2237ad697161cff5755336775cf128136d7cefdece0d335246735b3ae1b9d2cadb29ae36be2000cd7fb02d6a4187aac1d2ff7935bec5c64b5b880fe84f330b01 WHIRLPOOL 39ffa7ece00f712f052c78107b3f95cd0e3a744932d22f5e946141b3bc8954643ae091f75508d9761761fb041a18b43e50b23ed1c0ff3d7ac0bdce9464cc71cd
|
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.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.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.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)
|
||||||
|
}
|
@ -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
|
||||||
|
-}
|
@ -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
|
@ -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}"
|
||||||
|
}
|
@ -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 $?
|
||||||
|
}
|
@ -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
|
||||||
|
}
|
@ -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
|
||||||
|
}
|
@ -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
|
||||||
|
}
|
@ -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_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.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
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue