update perl based vmware eclass

git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/linamh@1267 6952d904-891a-0410-993b-d76249ca496b
This commit is contained in:
geos_one 2009-05-30 11:28:03 +00:00
parent 3b3636d70a
commit 575a13368a
1 changed files with 83 additions and 93 deletions

View File

@ -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
}