summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/vmware-server/vmware-server-2.0.2.203138-r4.ebuild')
-rw-r--r--app-emulation/vmware-server/vmware-server-2.0.2.203138-r4.ebuild287
1 files changed, 287 insertions, 0 deletions
diff --git a/app-emulation/vmware-server/vmware-server-2.0.2.203138-r4.ebuild b/app-emulation/vmware-server/vmware-server-2.0.2.203138-r4.ebuild
new file mode 100644
index 0000000..685ec47
--- /dev/null
+++ b/app-emulation/vmware-server/vmware-server-2.0.2.203138-r4.ebuild
@@ -0,0 +1,287 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-server/vmware-server-2.0.2.203138-r1.ebuild,v 1.4 2010/05/13 22:33:47 vadimk Exp $
+
+# Unlike many other binary packages the user doesn't need to agree to a licence
+# to download VMWare. The agreeing to a licence is part of the configure step
+# which the user must run manually.
+
+EAPI="2"
+
+inherit eutils pam pax-utils versionator
+
+MY_PV=$(replace_version_separator 3 '-' )
+MY_PN="VMware-server-${MY_PV}"
+
+DESCRIPTION="VMware Server for Linux"
+HOMEPAGE="http://www.vmware.com/"
+DOWNLOAD_URL="http://downloads.vmware.com/d/info/datacenter_downloads/vmware_server/2_0"
+SRC_URI=" x86? ( mirror://vmware/software/vmserver/${MY_PN}.i386.tar.gz )
+ amd64? ( mirror://vmware/software/vmserver/${MY_PN}.x86_64.tar.gz ) "
+
+LICENSE="vmware"
+IUSE=""
+SLOT="0"
+KEYWORDS="-* ~x86 ~amd64"
+RESTRICT="fetch strip"
+
+CDEPEND="
+ >=dev-lang/perl-5
+ >=sys-libs/glibc-2.3.5
+ sys-apps/pciutils"
+DEPEND="${CDEPEND}
+ sys-apps/findutils
+ x11-misc/shared-mime-info
+ virtual/os-headers"
+# vmware-server should not use virtual/libc as this is a
+# precompiled binary package thats linked to glibc.
+RDEPEND="${CDEPEND}
+ dev-libs/expat
+ dev-libs/glib
+ dev-libs/libxml2
+ =media-libs/libpng-1.2*
+ sys-fs/fuse
+ sys-libs/zlib
+ virtual/pam
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXau
+ x11-libs/libXdmcp
+ x11-libs/libXext
+ x11-libs/libXft
+ x11-libs/libXt
+ x11-libs/libXtst
+ x11-misc/xdg-utils
+ !<sys-apps/dbus-0.62
+ !app-emulation/vmware-player
+ !app-emulation/vmware-workstation
+ "
+
+PDEPEND="~app-emulation/vmware-modules-208.2
+ app-emulation/vmware-vix"
+
+S=${WORKDIR}/vmware-server-distrib
+
+pkg_setup() {
+ if use x86; then
+ MY_P="${MY_PN}.i386"
+ elif use amd64; then
+ MY_P="${MY_PN}.x86_64"
+ fi
+}
+
+pkg_nofetch() {
+ if use x86; then
+ MY_P="${MY_PN}.i386"
+ elif use amd64; then
+ MY_P="${MY_PN}.x86_64"
+ fi
+
+ einfo "Please download the ${MY_P}.bundle from"
+ einfo "${DOWNLOAD_URL}"
+ einfo "and place it in ${DISTDIR}"
+}
+
+src_prepare() {
+ VMWARE_GROUP=${VMWARE_GROUP:-vmware}
+ VMWARE_INSTALL_DIR=/opt/${PN//-//}
+
+ shortname="wgs"
+ product="vmware"
+ config_program="vmware-config.pl"
+ config_dir="/etc/vmware"
+ product_name="VMware Server 2"
+
+ enewgroup ${VMWARE_GROUP}
+
+ # Remove PAX MPROTECT flag from all applicable files in /bin, /sbin for
+ # the vmware package only (since modules, tools and console should not
+ # need to generate code on the fly in memory).
+ pax-mark -m $(list-paxables "${S}"/{bin{,-debug},sbin}/{vmware-serverd,vmware-vmx})
+
+ EPATCH_SOURCE="${FILESDIR}"/${PV} EPATCH_SUFFIX="patch" epatch
+
+ # Proper lsmod
+ sed -i -e "s:/sbin/lsmod:/bin/lsmod:" "${S}"/installer/services.sh || die "sed"
+ sed -i -e "s:/sbin/lsmod:/bin/lsmod:" "${S}"/lib/net-services.sh || die "sed"
+
+ # Set the name
+ sed -i -e "s:%LONGNAME%:${product_name}:" "${S}"/installer/services.sh || die "sed"
+ sed -i -e "s:%SHORTNAME%:${shortname}:" "${S}"/installer/services.sh || die "sed"
+
+ # We won't want any perl scripts from VMware once we've finally got all
+ # of the configuration done, but for now, they're necessary.
+ #rm -f *.pl bin/*.pl
+ rm -f vmware-install.pl bin/vmware-uninstall.pl
+ rm -f *.pl
+ rm -f etc/installer.sh
+
+ # Since with Gentoo we compile everthing it doesn't make sense to keep
+ # the precompiled modules arround. Saves about 4 megs of disk space too.
+ rm -rf "${S}"/lib/modules/binary
+ # We also don't need to keep the icons around, or do we?
+ #rm -rf ${S}/lib/share/icons
+
+ rm -rf "${S}"/etc/pam.d/
+ sed -i -e "s:configure_wgs_pam_d():#&:" "${S}"/bin/vmware-config.pl || die "sed pam_d"
+}
+
+src_install() {
+ # We loop through our directories and copy everything to our system.
+ for x in bin lib sbin
+ do
+ if [[ -e "${S}/${x}" ]]
+ then
+ dodir "${VMWARE_INSTALL_DIR}"/${x}
+ cp -pPR "${S}"/${x}/* "${D}""${VMWARE_INSTALL_DIR}"/${x} \
+ || die "copying ${x}"
+ fi
+ done
+
+ # Bug 282213
+ mv "${D}"/"${VMWARE_INSTALL_DIR}"/lib/lib/libpng12.so.0/libpng12.so.0 \
+ "${D}"/"${VMWARE_INSTALL_DIR}"/lib/lib/libpng12.so.0/libpng12.so.0.old
+ dosym /usr/lib/libpng12.so.0 "${VMWARE_INSTALL_DIR}"/lib/lib/libpng12.so.0/libpng12.so.0
+
+ # Bug 292771
+ mv "${D}"/"${VMWARE_INSTALL_DIR}"/lib/lib/libexpat.so.0/libexpat.so.0 \
+ "${D}"/"${VMWARE_INSTALL_DIR}"/lib/lib/libexpat.so.0/libexpat.so.0.old
+ dosym /usr/lib/libexpat.so.1 "${VMWARE_INSTALL_DIR}"/lib/lib/libexpat.so.0/libexpat.so.0
+ mv "${D}"/"${VMWARE_INSTALL_DIR}"/lib/lib/libxml2.so.2/libxml2.so.2 \
+ "${D}"/"${VMWARE_INSTALL_DIR}"/lib/lib/libxml2.so.2/libxml2.so.2.old
+ dosym /usr/lib/libxml2.so.2 "${VMWARE_INSTALL_DIR}"/lib/lib/libxml2.so.2/libxml2.so.2
+
+ # If we have an /etc directory, we copy it.
+ if [[ -e "${S}/etc" ]]
+ then
+ dodir "${config_dir}"
+ cp -pPR "${S}"/etc/* "${D}""${config_dir}"
+ fowners root:${VMWARE_GROUP} "${config_dir}"
+ fperms 770 "${config_dir}"
+ fi
+
+ # If we have any helper files, we install them. First, we check for an
+ # init script.
+ if [[ -e "${FILESDIR}/${PN}-2.rc" ]]
+ then
+ newinitd "${FILESDIR}"/${PN}-2.rc ${product} || die "newinitd"
+ fi
+ # Then we check for an environment file.
+ if [[ -e "${FILESDIR}/90${PN}" ]]
+ then
+ doenvd "${FILESDIR}"/90${PN} || die "doenvd"
+ fi
+ # Last, we check for any mime files.
+ if [[ -e "${FILESDIR}/${PN}.xml" ]]
+ then
+ insinto /usr/share/mime/packages
+ doins "${FILESDIR}"/${PN}.xml || die "mimetypes"
+ fi
+
+ # Blame bug #91191 for this one.
+ if [[ -e doc/EULA ]]
+ then
+ insinto "${VMWARE_INSTALL_DIR}"/doc
+ doins doc/EULA || die "copying EULA"
+ fi
+
+ # Do we have vmware-ping/vmware-vmx? If so, make them setuid.
+ for p in /bin/vmware-ping /lib/bin/vmware-vmx /lib/bin-debug/vmware-vmx /lib/bin/vmware-vmx-debug /sbin/vmware-authd;
+ do
+ if [ -x "${D}${VMWARE_INSTALL_DIR}${p}" ]
+ then
+ fowners root:${VMWARE_GROUP} "${VMWARE_INSTALL_DIR}"${p}
+ fperms 4750 "${VMWARE_INSTALL_DIR}"${p}
+ fi
+ done
+
+ # This removed the user/group warnings
+ # But also broke vmware-server with FEATURES="userpriv" since it removes
+ # the set-UID bit
+ #chown -R root:${VMWARE_GROUP} ${D} || die
+
+ # We like desktop icons.
+ # TODO: Fix up the icon creation, across the board.
+ #make_desktop_entry ${PN} "${product_name}" ${PN}.png
+
+ # Now, we copy in our services.sh file
+ exeinto "${config_dir}"/init.d
+ newexe installer/services.sh ${product} || die "services.sh"
+
+ # startup symlinks
+ dosym ${config_dir}/init.d/${product} ${config_dir}/init.d/vmware-autostart
+ dosym ${config_dir}/init.d/${product} ${config_dir}/init.d/vmware-core
+ dosym ${config_dir}/init.d/${product} ${config_dir}/init.d/vmware-mgmt
+
+ # pam
+ pamd_mimic_system vmware-authd auth account
+
+ # Man pages and docs
+ dodoc doc/*
+ doman man/man1/*
+
+ # VMware authorization service
+ insinto ${config_dir}/hostd
+ doins "${FILESDIR}/authorization.xml"
+
+ # Finally, we run the "Questions"
+ einfo "Adding answers to ${config_dir}/locations"
+ locations="${D}${config_dir}/locations"
+ cat >> "${D}${config_dir}"/locations <<-EOF
+ answer BINDIR ${VMWARE_INSTALL_DIR}/bin
+ answer LIBDIR ${VMWARE_INSTALL_DIR}/lib
+ answer MANDIR ${VMWARE_INSTALL_DIR}/man
+ answer DOCDIR ${VMWARE_INSTALL_DIR}/doc
+ answer SBINDIR ${VMWARE_INSTALL_DIR}/sbin
+ answer RUN_CONFIGURATOR no
+ answer INITDIR ${config_dir}/init.d
+ answer INITSCRIPTSDIR ${config_dir}/init.d
+ answer VMCI_CONFED yes
+ answer VSOCK_CONFED yes
+ EOF
+}
+
+pkg_config() {
+ einfo "Running ${VMWARE_INSTALL_DIR}/bin/vmware-config.pl"
+ "${VMWARE_INSTALL_DIR}/bin/vmware-config.pl"
+}
+
+pkg_postinst() {
+ update-mime-database /usr/share/mime
+ [[ -d "${config_dir}" ]] && chown -R root:${VMWARE_GROUP} ${config_dir}
+
+ # This is to fix the problem where the not_configured file doesn't get
+ # removed when the configuration is run. This doesn't remove the file
+ # It just tells the vmware-config.pl script it can delete it.
+ #einfo "Updating ${config_dir}/locations"
+ #for x in "${config_dir}"/._cfg????_locations ; do
+ # if [ -f $x ] ; then
+ # cat $x >> "${config_dir}"/locations
+ # rm $x
+ # fi
+ #done
+
+ ewarn "Use "
+ ewarn " emerge vmware-server --config"
+ ewarn "to configure your installation of ${product_name}."
+
+ ewarn "In order to run ${product_name}, you have to"
+ ewarn "be in the '${VMWARE_GROUP}' group."
+
+ ewarn "VMWare Server also has issues when running on a JFS filesystem. For more"
+ ewarn "information see http://bugs.gentoo.org/show_bug.cgi?id=122500#c94"
+}
+
+pkg_prerm() {
+ einfo "Stopping ${product_name} for safe unmerge"
+ /etc/init.d/vmware stop
+}
+
+pkg_postrm() {
+ if ! has_version app-emulation/${PN}; then
+ elog "To remove all traces of ${product} you will need to remove the files"
+ elog "in ${config_dir} and /etc/init.d/${product}."
+ elog "If the vmware-modules package is installed, you may no longer need it."
+ fi
+}