summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
Diffstat (limited to 'eclass')
-rw-r--r--eclass/vmware-mod.eclass119
-rw-r--r--eclass/vmware.eclass412
2 files changed, 0 insertions, 531 deletions
diff --git a/eclass/vmware-mod.eclass b/eclass/vmware-mod.eclass
deleted file mode 100644
index 566708c..0000000
--- a/eclass/vmware-mod.eclass
+++ /dev/null
@@ -1,119 +0,0 @@
-# Copyright 1999-2006 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/vmware-mod.eclass,v 1.11 2007/07/12 23:57:42 wolf31o2 Exp $
-
-
-# Ensure vmware comes before linux-mod since we want linux-mod's pkg_preinst and
-# pkg_postinst, along with our own pkg_setup, src_unpack and src_compile
-inherit eutils vmware linux-mod
-
-DESCRIPTION="Modules for Vmware Programs"
-HOMEPAGE="http://www.vmware.com/"
-SRC_URI="http://platan.vc.cvut.cz/ftp/pub/vmware/${ANY_ANY}.tar.gz
- http://platan.vc.cvut.cz/ftp/pub/vmware/obsolete/${ANY_ANY}.tar.gz
- http://knihovny.cvut.cz/ftp/pub/vmware/${ANY_ANY}.tar.gz
- http://knihovny.cvut.cz/ftp/pub/vmware/obsolete/${ANY_ANY}.tar.gz
- http://ftp.cvut.cz/vmware/${ANY_ANY}.tar.gz
- http://ftp.cvut.cz/vmware/obsolete/${ANY_ANY}.tar.gz"
-LICENSE="vmware"
-SLOT="0"
-IUSE=""
-
-# Provide vaguely sensible defaults
-[[ -z "${VMWARE_VER}" ]] && VMWARE_VER="VME_V55"
-VMWARE_MOD_DIR="${ANY_ANY}"
-
-S="${WORKDIR}"
-
-# We needn't restrict this since it was only required to read
-# /etc/vmware/locations to determine the version (which is now fixed by
-# VMWARE_VER)
-# RESTRICT="userpriv"
-
-EXPORT_FUNCTIONS pkg_setup src_unpack src_install
-
-vmware-mod_pkg_setup() {
- linux-mod_pkg_setup
- # Must define VMWARE_VER to make, otherwise it'll try and run getversion.pl
- BUILD_TARGETS="auto-build VMWARE_VER=${VMWARE_VER} KERNEL_DIR=${KERNEL_DIR} KBUILD_OUTPUT=${KV_OUT_DIR}"
-
- vmware_determine_product
- # We create a group for VMware users due to bugs #104480 and #106170
- enewgroup "${VMWARE_GROUP}"
-
- if [[ -z "${VMWARE_MODULE_LIST}" ]]; then
- case ${product} in
- vmware-tools)
- VMWARE_MODULE_LIST="${VMWARE_MODULE_LIST} vmxnet"
- [ "$shortname" != "server-tools" ] && VMWARE_MODULE_LIST="${VMWARE_MODULE_LIST} vmhgfs vmmemctl"
- use amd64 || VMWARE_MODULE_LIST="${VMWARE_MODULE_LIST} vmdesched"
- ;;
- *)
- VMWARE_MODULE_LIST="${VMWARE_MODULE_LIST} vmmon vmnet"
- ;;
- esac
- fi
-
- for mod in ${VMWARE_MODULE_LIST}; do
- MODULE_NAMES="${MODULE_NAMES}
- ${mod}(misc:${S}/${mod}-only)"
- done
-}
-
-vmware-mod_src_unpack() {
- case ${product} in
- vmware-tools)
- # Do nothing, this should be dealt with by vmware.eclass unpack
- ;;
- *)
- unpack ${A}
- ;;
- esac
-
- for mod in ${VMWARE_MODULE_LIST}; do
- cd "${S}"
- unpack ./"${VMWARE_MOD_DIR}"/${mod}.tar
- cd "${S}"/${mod}-only
- # Ensure it's not used
- # rm getversion.pl
- if [[ "${VMWARE_MOD_DIR}" = "${ANY_ANY}" ]] ; then
- EPATCH_SUFFIX="patch"
- epatch "${FILESDIR}"/patches
- [[ -d "${FILESDIR}"/patches/${mod} ]] && epatch "${FILESDIR}"/patches/${mod}
- fi
- convert_to_m "${S}"/${mod}-only/Makefile
- done
-}
-
-vmware-mod_src_install() {
- # this adds udev rules for vmmon*
- if [[ -n "`echo ${VMWARE_MODULE_LIST} | grep vmmon`" ]];
- then
- dodir /etc/udev/rules.d
- echo 'KERNEL=="vmmon*", GROUP="'$VMWARE_GROUP'" MODE=660' >> "${D}/etc/udev/rules.d/60-vmware.rules" || die
- echo 'KERNEL=="vmnet*", GROUP="'$VMWARE_GROUP'" MODE=660' >> "${D}/etc/udev/rules.d/60-vmware.rules" || die
- fi
-
- linux-mod_src_install
-}
-
-# Current VMWARE product mappings
-# 'VME_TOT' = .0
-# 'VME_GSX1' = .1
-# 'VME_GSX2' = .2
-# 'VME_GSX251' = .3
-# 'VME_GSX25' = .4
-# 'VME_GSX32' = .5
-# 'VME_V3' = .6
-# 'VME_V32' = .7
-# 'VME_V321' = .8
-# 'VME_V4' = .9
-# 'VME_V45' = .10
-# 'VME_V452' = .11
-# 'VME_V5' = .12
-# 'VME_V55' = .13
-# 'VME_S1B1' = .14
-# 'VME_S1??' = .15
-# 'VME_V6' = .16
-# 'VME_V6' = .17 (6.0.2)
-# 'VME_S2B1' = .18
diff --git a/eclass/vmware.eclass b/eclass/vmware.eclass
deleted file mode 100644
index 75c5c44..0000000
--- a/eclass/vmware.eclass
+++ /dev/null
@@ -1,412 +0,0 @@
-# Copyright 1999-2006 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/vmware.eclass,v 1.24 2007/04/28 09:40:42 ikelos Exp $
-
-# This eclass is for all vmware-* ebuilds in the tree and should contain all
-# of the common components across the multiple packages.
-
-# Only one package per "product" is allowed to be installed at any given time.
-
-inherit pax-utils eutils
-
-EXPORT_FUNCTIONS pkg_preinst pkg_postinst pkg_setup src_install src_unpack pkg_postrm
-
-DEPEND="x11-misc/shared-mime-info"
-
-export ANY_ANY="vmware-any-any-update115"
-#export TOOLS_ANY="vmware-tools-any-update1"
-export VMWARE_GROUP=${VMWARE_GROUP:-vmware}
-export VMWARE_INSTALL_DIR=/opt/${PN//-//}
-
-vmware_create_initd() {
- dodir "${config_dir}"/init.d/rc{0,1,2,3,4,5,6}.d
- # 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 "${config_dir}"/init.d/rc{0,1,2,3,4,5,6}.d
-}
-
-vmware_run_questions() {
- vmware_determine_product
- # Questions:
- einfo "Adding answers to ${config_dir}/locations"
- locations="${D}${config_dir}/locations"
- echo "answer BINDIR ${VMWARE_INSTALL_DIR}/bin" >> ${locations}
- echo "answer LIBDIR ${VMWARE_INSTALL_DIR}/lib" >> ${locations}
- echo "answer MANDIR ${VMWARE_INSTALL_DIR}/man" >> ${locations}
- echo "answer DOCDIR ${VMWARE_INSTALL_DIR}/doc" >> ${locations}
- if [ "${product}" == "vmware" -o "${product}" == "vmware-tools" ]
- then
- echo "answer SBINDIR ${VMWARE_INSTALL_DIR}/sbin" >> ${locations}
- echo "answer RUN_CONFIGURATOR no" >> ${locations}
- echo "answer INITDIR ${config_dir}/init.d" >> ${locations}
- echo "answer INITSCRIPTSDIR ${config_dir}/init.d" >> ${locations}
- fi
-}
-
-vmware_determine_product() {
- # Set the product category, and the category options
- shortname=$(echo ${PN} | cut -d- -f2-)
- case "${shortname}" in
- workstation|server|player)
- product="vmware"
- config_program="vmware-config.pl"
- ;;
- server-console|esx-console|gsx-console)
- product="vmware-console"
- config_program="vmware-config-console.pl"
- ;;
- workstation-tools|esx-tools|gsx-tools|server-tools)
- product="vmware-tools"
- config_program="vmware-config-tools.pl"
- ;;
- *)
- product="unknown"
- ;;
- esac
- config_dir="/etc/${product}"
-
- # Set per package options
- case "${shortname}" in
- workstation)
- FULL_NAME="Workstation"
- ;;
- player)
- FULL_NAME="Player"
- ;;
- server)
- FULL_NAME="Server"
- ;;
- server-console)
- FULL_NAME="Server Console"
- config_program="vmware-config-server-console.pl"
- config_dir="/etc/${PN}"
- ;;
- esx-console)
- FULL_NAME="ESX Console"
- ;;
- esac
-}
-
-vmware_pkg_setup() {
- vmware_determine_product
-}
-
-vmware_src_unpack() {
- vmware_determine_product
- case "${product}" in
- vmware-tools)
- # We grab our tarball from "CD"
- einfo "You will need ${TARBALL} from the VMware installation."
- einfo "Select VM->Install VMware Tools from VMware's menu."
- cdrom_get_cds ${TARBALL}
- ;;
- esac
- # If there is anything to unpack, at all, then we should be using MY_P.
- if [[ -n "${MY_P}" ]]
- then
- if [[ -e "${CDROM_ROOT}"/${MY_P}.tar.gz ]]
- then
- tar xzf "${CDROM_ROOT}"/${MY_P}.tar.gz
- else
- unpack "${MY_P}".tar.gz
- fi
-
- if [[ -n "${ANY_ANY}" ]]
- then
- unpack "${ANY_ANY}".tar.gz
- # Move the relevant ANY_ANY files now, so that they can be patched later...
- mv -f "${ANY_ANY}"/services.sh "${S}"/installer/services.sh
- # We should be able to get rid of this eventually,
- # since we'll be using vmware-modules in future...
- [[ "${product}" == "vmware" ]] && \
- mv -f "${ANY_ANY}"/*.tar "${S}"/lib/modules/source
- [[ -e lib/bin/vmware ]] && \
- chmod 755 lib/bin/vmware
- [[ -e bin/vmnet-bridge ]] && \
- chmod 755 bin/vmnet-bridge
- [[ -e lib/bin/vmware-vmx ]] && \
- chmod 755 lib/bin/vmware-vmx
- [[ -e lib/bin-debug/vmware-vmx ]] && \
- chmod 755 lib/bin-debug/vmware-vmx
- if [[ "${RUN_UPDATE}" == "yes" ]]
- then
- cd "${S}"/"${ANY_ANY}"
- ./update vmware ../lib/bin/vmware || die
- ./update bridge ../bin/vmnet-bridge || die
- ./update vmx ../lib/bin/vmware-vmx || die
- ./update vmxdebug ../lib/bin-debug/vmware-vmx || die
- fi
- fi
-
- # 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).
- [[ "${product}" == "vmware" ]] && pax-mark -m \
- $(list-paxables ${S}/{bin{,-debug},sbin}/{vmware-serverd,vmware-vmx})
-
- # Run through any patches that might need to be applied
- cd "${S}"
- if [[ -d "${FILESDIR}/${PV}" ]]
- then
- EPATCH_SUFFIX="patch"
- epatch "${FILESDIR}"/${PV}
- fi
- if [[ -n "${PATCHES}" ]]
- then
- for patch in ${PATCHES}
- do
- epatch "${FILESDIR}"/${patch}
- done
- fi
- # Unpack our new libs
- for a in ${A}
- do
- case ${a} in
- vmware-libssl.so.0.9.7l.tar.bz2)
- unpack vmware-libssl.so.0.9.7l.tar.bz2
- ;;
- vmware-libcrypto.so.0.9.7l.tar.bz2)
- unpack vmware-libcrypto.so.0.9.7l.tar.bz2
- ;;
- esac
- done
- fi
-}
-
-vmware_src_install() {
- # 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 bin/*.pl
-
- # As backwards as this seems, we're installing our icons first.
- if [[ -e lib/share/icons/48x48/apps/${PN}.png ]]
- then
- doicon lib/share/icons/48x48/apps/${PN}.png
- elif [[ -e doc/icon48x48.png ]]
- then
- newicon doc/icon48x48.png ${PN}.png
- elif [[ -e "${DISTDIR}/${product}.png" ]]
- then
- newicon "${DISTDIR}"/${product}.png ${PN}.png
- fi
-
- # 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
-
- # Just like any good monkey, we install the documentation and man pages.
- [[ -d doc ]] && dodoc doc/*
- if [[ -d man ]]
- then
- cd man
- for x in *
- do
- doman ${x}/* || die "doman"
- done
- fi
- cd "${S}"
-
- # We remove the shipped libssl for bug #148682
- if [ -d "${S}"/libssl.so.0.9.7 ]
- then
- rm -rf "${S}"/lib/lib/libssl.so.0.9.7
- # Now, we move in our own
- cp -pPR "${S}"/libssl.so.0.9.7 "${S}"/lib/lib
- fi
- # We remove the shipped libcrypto for bug #148682
- if [ -d "${S}"/libcrypto.so.0.9.7 ]
- then
- rm -rf "${S}"/lib/lib/libcrypto.so.0.9.7
- # Now, we move in our own
- cp -pPR "${S}"/libcrypto.so.0.9.7 "${S}"/lib/lib
- fi
-
- # 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
-
- # 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}.rc" ]]
- then
- newinitd "${FILESDIR}"/${PN}.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} "VMware ${FULL_NAME}" ${PN}.png
-
- # We like symlinks for console users.
- # TODO: Fix up the symlink creation, across the board.
- # dosym ${VMWARE_INSTALL_DIR}/bin/${PN} /usr/bin/${PN}
-
- # TODO: Replace this junk
- # Everything after this point will hopefully go away once we can rid
- # ourselves of the evil perl configuration scripts.
-
- if [ "${product}" == "vmware" -o "${product}" == "vmware-tools" ]
- then
-
- # We have to create a bunch of rc directories for the init script
- vmware_create_initd || die "creating rc directories"
-
- # Now, we copy in our services.sh file
- exeinto "${config_dir}"/init.d
- newexe installer/services.sh ${product} || die "services.sh"
-
- # Set the name
- dosed "s:%LONGNAME%:Vmware ${FULL_NAME}:" \
- "${config_dir}"/init.d/${product}
- [ "${shortname}" == "server" ] && dosed "s:%SHORTNAME%:wgs:" \
- "${config_dir}"/init.d/${product}
- fi
-
- # Finally, we run the "questions"
- vmware_run_questions || die "running questions"
-}
-
-vmware_pkg_preinst() {
- # This is run here due to bug #143150
- [ -z "${product}" ] && vmware_determine_product
-
- # This must be done after the install to get the mtimes on each file
- # right.
-
- #Note: it's a bit weird to use ${D} in a preinst script but it should work
- #(drobbins, 1 Feb 2002)
-
- einfo "Generating ${config_dir}/locations file."
- d=`echo ${D} | wc -c`
- for x in `find ${D}${VMWARE_INSTALL_DIR} ${D}${config_dir}` ; do
- x="`echo ${x} | cut -c ${d}-`"
- if [ -d "${D}/${x}" ] ; then
- echo "directory ${x}" >> "${D}${config_dir}"/locations
- else
- echo -n "file ${x}" >> "${D}${config_dir}"/locations
- if [ "${x}" == "${config_dir}/locations" ] ; then
- echo "" >> "${D}${config_dir}"/locations
- elif [ "${x}" == "${config_dir}/not_configured" ] ; then
- echo "" >> "${D}${config_dir}"/locations
- else
- echo -n " " >> "${D}${config_dir}"/locations
- find ${D}${x} -printf %T@ >> "${D}${config_dir}"/locations
- echo "" >> "${D}${config_dir}"/locations
- fi
- fi
- done
-}
-
-vmware_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
-
- echo
- elog "You need to run "
- elog " ${VMWARE_INSTALL_DIR}/bin/${config_program}"
- elog "to complete the install."
- echo
- einfo "For VMware Add-Ons just visit"
- einfo "http://www.vmware.com/download/downloadaddons.html"
- echo
- if [ "${PN}" == "vmware-player" ]
- then
- elog "After configuring, run vmplayer to launch"
- else
- elog "After configuring, run ${PN} to launch"
- fi
- echo
- if [ "${product}" == "vmware" -o "${product}" == "vmware-tools" ]
- then
- elog "Also note that when you reboot you should run:"
- elog " /etc/init.d/${product} start"
- elog "before trying to run ${product}. Or you could just add it to"
- elog "the default runlevel:"
- elog " rc-update add ${product} default"
- echo
- ewarn "VMWare allows for the potential of overwriting files as root. Only"
- ewarn "give VMWare access to trusted individuals."
- echo
- fi
- ewarn "Remember, in order to run VMware ${FULL_NAME}, you have to"
- ewarn "be in the '${VMWARE_GROUP}' group."
- echo
-}
-
-vmware_pkg_postrm() {
- [ -z "${product}" ] && vmware_determine_product
- local product_extras
- if [ "${product}" == "vmware" ]
- then
- product_extras=" and /etc/init.d/${product}"
- fi
- if ! has_version app-emulation/${PN}; then
- echo
- elog "To remove all traces of ${product} you will need to remove the files"
- elog "in ${config_dir}${product_extras}."
- elog "If the vmware-modules package is installed, you may no longer need it."
- echo
- fi
-}