diff --git a/eclass/vmware-1.eclass b/eclass/vmware-1.eclass index d694c596..840422fd 100644 --- a/eclass/vmware-1.eclass +++ b/eclass/vmware-1.eclass @@ -2,6 +2,13 @@ # Distributed under the terms of the GNU General Public License v2 # $Header: $ +# By default this eclasses wants eapi 2 which might be redefinable to newer +# versions. +case ${EAPI:-0} in + 2) : ;; + *) die "No way! EAPI other than 2 is not supported for now." ;; +esac + # This eclass is for all vmware-1-* ebuilds in the tree and should contain all # of the common components across the multiple packages. @@ -9,40 +16,7 @@ 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-1_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-1_run_questions() { - vmware-1_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 -} +EXPORT_FUNCTIONS pkg_preinst pkg_postinst pkg_setup src_prepare src_install src_unpack pkg_postrm vmware-1_determine_product() { # Set the product category, and the category options @@ -80,6 +54,7 @@ vmware-1_determine_product() { ;; server) FULL_NAME="Server" + SRC_URI="mirror://vmware/software/vmserver/${VM_SRC}" ;; server-console) FULL_NAME="Server Console" @@ -92,12 +67,57 @@ vmware-1_determine_product() { esac } +DEPEND="x11-misc/shared-mime-info" +DESCRIPTION="VMware ${FULL_NAME} for Linux" +HOMEPAGE="http://www.vmware.com/" + +LICENSE="vmware" +IUSE="" +RESTRICT="strip" + +vmware-1_determine_product + +for a in ${VM_SRC_EXTRA} +do + SRC_URI="${SRC_URI} http://ftp.mars.arge.at/vmware/${P/_p/-}-${a}.tar.bz2" +done + +export VMWARE_GROUP=${VMWARE_GROUP:-vmware} +export VMWARE_INSTALL_DIR=/opt/${PN//-//} + +vmware-1_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-1_run_questions() { + [ -z "${product}" ] && vmware-1_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-1_pkg_setup() { - vmware-1_determine_product + [ -z "${product}" ] && vmware-1_determine_product } vmware-1_src_unpack() { - vmware-1_determine_product + [ -z "${product}" ] && vmware-1_determine_product case "${product}" in vmware-tools) # We grab our tarball from "CD" @@ -115,66 +135,36 @@ vmware-1_src_unpack() { else unpack "${MY_P}".tar.gz fi + fi + for a in ${VM_SRC_EXTRA} + do + unpack ${P/_p/-}-${a}.tar.bz2 + done +} - 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 +vmware-1_src_prepare() { + [[ -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 - # 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}) + # 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 + # Run through any patches that might need to be applied + cd "${S}" + if [[ -d "${WORKDIR}/patches" ]] + then + EPATCH_FORCE="yes" + EPATCH_SUFFIX="patch" + epatch "${WORKDIR}"/patches fi }