diff options
Diffstat (limited to 'app-emulation/vmware-server/vmware-server-1.0.0.23869.ebuild')
-rw-r--r-- | app-emulation/vmware-server/vmware-server-1.0.0.23869.ebuild | 269 |
1 files changed, 269 insertions, 0 deletions
diff --git a/app-emulation/vmware-server/vmware-server-1.0.0.23869.ebuild b/app-emulation/vmware-server/vmware-server-1.0.0.23869.ebuild new file mode 100644 index 0000000..755cd9e --- /dev/null +++ b/app-emulation/vmware-server/vmware-server-1.0.0.23869.ebuild @@ -0,0 +1,269 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +# 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. + +inherit vmware-pkg eutils versionator + +VMWARE_VME="VME_S1B1" + +MY_PN="VMware-server" +MY_PV="e.x.p-$(get_version_component_range 4)" +NP="${MY_PN}-${MY_PV}" +S="${WORKDIR}/vmware-server-distrib" + +DESCRIPTION="VMware Server for Linux" +HOMEPAGE="http://www.vmware.com/" +SRC_URI="http://download3.vmware.com/software/vmserver/${NP}.tar.gz + http://dev.gentoo.org/~ikelos/devoverlay-distfiles/${P}-rpath-corrected-libs.tar.bz2" + +LICENSE="vmware" +IUSE="" +SLOT="0" +KEYWORDS="-* ~amd64 ~x86" +RESTRICT="nostrip" + +DEPEND=">=sys-libs/glibc-2.3.5 + >=dev-lang/perl-5 + sys-apps/pciutils + sys-apps/findutils + virtual/os-headers" +# vmware-server should not use virtual/libc as this is a +# precompiled binary package thats linked to glibc. +RDEPEND=">=sys-libs/glibc-2.3.5 + amd64? ( app-emulation/emul-linux-x86-baselibs + app-emulation/emul-linux-x86-gtklibs + ) + !amd64 ( || ( ( x11-libs/libX11 + x11-libs/libXtst + x11-libs/libXext + x11-libs/libXt + x11-libs/libICE + x11-libs/libSM + x11-libs/libXrender + ) + ( virtual/x11 + virtual/xft + ) + ) + ) + >=dev-lang/perl-5 + !app-emulation/vmware-player + !app-emulation/vmware-workstation + sys-apps/pciutils + sys-apps/xinetd + >=sys-apps/baselayout-1.11.14" +PDEPEND=">=app-emulation/vmware-modules-101" + +dir=/opt/vmware/server +Ddir=${D}/${dir} +VMWARE_GROUP=${VMWARE_GROUP:-vmware} + +EPATCH_SOURCE=${FILESDIR}/${P} + +pkg_setup() { + # This is due to both bugs #104480 and #106170 + enewgroup "${VMWARE_GROUP}" + + vmware_test_module_build +} + +src_unpack() { + unpack ${A} + cd ${S} + + epatch ${FILESDIR}/${PV} + + # patch the vmware /etc/pam.d file to ensure that only + # vmware group members can log in + cp ${FILESDIR}/vmware-authd ${S}/etc/pam.d/vmware-authd +} + +src_install() { + dodir ${dir}/bin + cp -pPR ${S}/bin/* ${Ddir}/bin + + dodir ${dir}/sbin + cp -pPR ${S}/sbin/* ${Ddir}/sbin + + dodir ${dir}/lib + cp -dr ${S}/lib/* ${Ddir}/lib + + # 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 ${Ddir}/lib/modules/binary + # We also don't need to keep the icons around + rm -rf ${Ddir}/lib/share/icons + # We set vmware-vmx and vmware-ping suid + chmod u+s ${Ddir}/bin/vmware-ping + # chmod u+s ${Ddir}/lib/bin/vmware-vmx + # chmod u+s ${Ddir}/sbin/vmware-authd + + dodoc doc/* || die "dodoc" + # Fix for bug #91191 + dodir ${dir}/doc + insinto ${dir}/doc + doins doc/EULA || die "copying EULA" + + doman ${S}/man/man1/vmware.1.gz || die "doman" + + # vmware service loader + newinitd ${FILESDIR}/vmware.rc vmware || die "newinitd" + + # vmware enviroment + doenvd ${FILESDIR}/90vmware-server || die "doenvd" + + # Fix the amd64 emulation pam stuff + use amd64 && dosed ":pam_:/emul/linux/x86/lib/security/pam_:" /etc/pam.d/vmware-authd + + dodir /etc/vmware/ + cp -pPR etc/* ${D}/etc/vmware/ + echo "${VMWARE_GROUP}" > ${D}/etc/vmware/vmwaregroup + + dodir /etc/vmware/init.d + dodir /etc/vmware/init.d/rc0.d + dodir /etc/vmware/init.d/rc1.d + dodir /etc/vmware/init.d/rc2.d + dodir /etc/vmware/init.d/rc3.d + dodir /etc/vmware/init.d/rc4.d + dodir /etc/vmware/init.d/rc5.d + dodir /etc/vmware/init.d/rc6.d + dosym /etc/init.d/xinetd /etc/vmware/init.d + cp -pPR installer/services.sh ${D}/etc/vmware/init.d/vmware || die + + # This is to fix a problem where if someone merges vmware and then + # before configuring vmware they upgrade or re-merge the vmware + # package which would rmdir the /etc/vmware/init.d/rc?.d directories. + keepdir /etc/vmware/init.d/rc{0,1,2,3,4,5,6}.d + + #insinto ${dir}/lib/icon + #doins ${S}/lib/share/icons/48x48/apps/${PN}.png || die + #doicon ${S}/lib/share/icons/48x48/apps/${PN}.png || die + insinto /usr/share/mime/packages + doins ${FILESDIR}/vmware.xml + + # make_desktop_entry vmware "VMWare Server" ${PN}.png + + dodir /usr/bin + dosym ${dir}/bin/vmware /usr/bin/vmware + + # this removes the user/group warnings + chown -R root:0 ${D} || die + + dodir /etc/vmware + # this makes the vmware-vmx executable only executable by vmware group + fowners root:${VMWARE_GROUP} ${dir}/sbin/vmware-authd ${dir}/lib/bin{,-debug}/vmware-vmx /etc/vmware \ + || die "Changing permissions" + fperms 4750 ${dir}/lib/bin{,-debug}/vmware-vmx ${dir}/sbin/vmware-authd || die + fperms 770 /etc/vmware || die + + # this adds udev rules for vmmon* + dodir /etc/udev/rules.d + echo 'KERNEL=="vmmon*", GROUP="'${VMWARE_GROUP}'" MODE=660' > \ + ${D}/etc/udev/rules.d/60-vmware.rules || die + + # Questions: + einfo "Adding answers to /etc/vmware/locations" + locations="${D}/etc/vmware/locations" + echo "answer BINDIR ${dir}/bin" >> ${locations} + echo "answer SBINDIR ${dir}/sbin" >> ${locations} + echo "answer LIBDIR ${dir}/lib" >> ${locations} + echo "answer MANDIR ${dir}/man" >> ${locations} + echo "answer DOCDIR ${dir}/doc" >> ${locations} + echo "answer RUN_CONFIGURATOR no" >> ${locations} + echo "answer INITDIR /etc/vmware/init.d" >> ${locations} + echo "answer INITSCRIPTSDIR /etc/vmware/init.d" >> ${locations} +} + +pkg_preinst() { + # This must be done after the install to get the mtimes on each file + # right. This perl snippet gets the /etc/vmware/locations file code: + # perl -e "@a = stat('bin/vmware'); print \$a[9]" + # The above perl line and the find line below output the same thing. + # I would think the find line is faster to execute. + # find /opt/vmware/workstation/bin/vmware -printf %T@ + + #Note: it's a bit weird to use ${D} in a preinst script but it should work + #(drobbins, 1 Feb 2002) + + einfo "Generating /etc/vmware/locations file." + d=`echo ${D} | wc -c` + for x in `find ${Ddir} ${D}/etc/vmware` ; do + x="`echo ${x} | cut -c ${d}-`" + if [ -d ${D}/${x} ] ; then + echo "directory ${x}" >> ${D}/etc/vmware/locations + else + echo -n "file ${x}" >> ${D}/etc/vmware/locations + if [ "${x}" == "/etc/vmware/locations" ] ; then + echo "" >> ${D}/etc/vmware/locations + elif [ "${x}" == "/etc/vmware/not_configured" ] ; then + echo "" >> ${D}/etc/vmware/locations + else + echo -n " " >> ${D}/etc/vmware/locations + #perl -e "@a = stat('${D}${x}'); print \$a[9]" >> ${D}/etc/vmware/locations + find ${D}${x} -printf %T@ >> ${D}/etc/vmware/locations + echo "" >> ${D}/etc/vmware/locations + fi + fi + done +} + +pkg_config() { + einfo "Running ${ROOT}${dir}/bin/vmware-config.pl" + ${ROOT}${dir}/bin/vmware-config.pl +} + +pkg_postinst() { + update-mime-database ${ROOT}/usr/share/mime + [ -d ${ROOT}/etc/vmware ] && chown -R root:${VMWARE_GROUP} ${ROOT}/etc/vmware + + # 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 /etc/vmware/locations" + for x in "${ROOT}/etc/vmware/._cfg????_locations" ; do + if [ -f $x ] ; then + cat $x >> "${ROOT}/etc/vmware/locations" + rm $x + fi + done + + einfo + einfo "You need to run ${dir}/bin/vmware-config.pl to complete the install." + einfo + einfo "For VMware Add-Ons just visit" + einfo "http://www.vmware.com/download/downloadaddons.html" + einfo + einfo "Remember by default xinetd only allows connections from localhost" + einfo "To allow external users access to vmware-server you must edit" + einfo " /etc/xinetd.d/vmware-authd" + einfo "and specify a new 'only_from' line" + einfo + einfo "Also note that when you reboot you should run:" + einfo " /etc/init.d/vmware start" + einfo "before trying to run vmware. Or you could just add" + einfo "it to the default run level:" + einfo "rc-update add vmware default" + echo + ewarn "Remember, in order to connect to vmware-server, you have to" + ewarn "be in the '${VMWARE_GROUP}' group." + echo + ewarn "VMWare allows for the potential of overwriting files as root. Only" + ewarn "give VMWare access to trusted individuals." + echo + ewarn "VMWare also has issues when running on a JFS filesystem. For more" + ewarn "information see http://bugs.gentoo.org/show_bug.cgi?id=122500#c94" + #ewarn "For users of glibc-2.3.x, vmware-nat support is *still* broken on 2.6.x" +} + +pkg_postrm() { + einfo + einfo "To remove all traces of vmware you will need to remove the files" + einfo "in /etc/vmware/, /etc/init.d/vmware, /lib/modules/*/misc/vm*.{ko,o}," + einfo "and .vmware/ in each users home directory. Don't forget to rmmod the" + einfo "vm* modules, either." + einfo +} |