diff options
author | 2006-03-07 09:15:03 +0000 | |
---|---|---|
committer | 2006-03-07 09:15:03 +0000 | |
commit | ced47ee07132adf860df970c4634fb3191ee47d1 (patch) | |
tree | 36d2eb0b33d56c1904c7380831dfecd6d9795cb7 /app-emulation | |
download | vmware-ced47ee07132adf860df970c4634fb3191ee47d1.tar.gz vmware-ced47ee07132adf860df970c4634fb3191ee47d1.tar.bz2 vmware-ced47ee07132adf860df970c4634fb3191ee47d1.zip |
Initialise the custom overlays by adding the vmware-server tree, and importing the xgl tree
svn path=/trunk/; revision=1
Diffstat (limited to 'app-emulation')
16 files changed, 742 insertions, 0 deletions
diff --git a/app-emulation/vmware-server-console/files/99vmware-console b/app-emulation/vmware-server-console/files/99vmware-console new file mode 100644 index 0000000..847dd8c --- /dev/null +++ b/app-emulation/vmware-server-console/files/99vmware-console @@ -0,0 +1,2 @@ +PATH=/opt/vmware/server/console/bin +ROOTPATH=/opt/vmware/server/console/bin diff --git a/app-emulation/vmware-server-console/vmware-server-console-1.0.0.20925.ebuild b/app-emulation/vmware-server-console/vmware-server-console-1.0.0.20925.ebuild new file mode 100644 index 0000000..ba7e087 --- /dev/null +++ b/app-emulation/vmware-server-console/vmware-server-console-1.0.0.20925.ebuild @@ -0,0 +1,175 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-server-console/vmware-server-console-1.0.0.20925.ebuild,v 1.4 2006/01/04 21:59:43 wolf31o2 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. + +inherit eutils versionator + +MY_PN="VMware-console" +MY_PV="e.x.p-$(get_version_component_range 4)" +NP="${MY_PN}-${MY_PV}" +FN="VMware-server-linux-client-${MY_PV}" +S="${WORKDIR}/vmware-console-distrib" + +DESCRIPTION="VMware Remote Console for Linux" +HOMEPAGE="http://www.vmware.com/" +SRC_URI="http://download3.vmware.com/software/vmserver/${FN}.zip" + +LICENSE="vmware" +IUSE="" +SLOT="0" +KEYWORDS="-* ~amd64 ~x86" +RESTRICT="nostrip" + +DEPEND=">=sys-libs/glibc-2.3.5 + virtual/os-headers + >=dev-lang/perl-5 + app-arch/unzip + " +# vmware-server-console 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-gtklibs ) + || ( ( x11-libs/libSM + x11-libs/libICE + x11-libs/libX11 + x11-libs/libXau + x11-libs/libXcursor + x11-libs/libXdmcp + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXft + x11-libs/libXi + x11-libs/libXrandr + x11-libs/libXrender + x11-libs/libXt + x11-libs/libXtst + ) + virtual/x11 + ) + >=dev-lang/perl-5 + " + +dir=/opt/vmware/server/console +Ddir=${D}/${dir} + +src_unpack() { + cd ${WORKDIR} + unpack ${FN}.zip + unpack ./${NP}.tar.gz + rm *.tar.gz *.rpm + cd ${S} +} + +src_install() { + echo 'libdir = "/opt/vmware/server/console/lib"' >etc/config + + dodir ${dir}/bin + cp -pPR ${S}/bin/* ${Ddir}/bin + + dodir ${dir}/lib + cp -dr ${S}/lib/* ${Ddir}/lib + + 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-console.1.gz || die "doman" + + # vmware enviroment + doenvd ${FILESDIR}/99vmware-console || die "doenvd" + + dodir /etc/vmware-console/ + cp -pPR etc/* ${D}/etc/vmware-console/ + + insinto ${dir}/lib/icon + newins ${S}/doc/icon48x48.png ${PN}.png || die + newicon ${S}/doc/icon48x48.png ${PN}.png || die + insinto /usr/share/mime/packages + doins ${FILESDIR}/vmware.xml + + make_desktop_entry vmware-console "VMWare Remote Console" ${PN}.png + + dodir /usr/bin + dosym ${dir}/bin/vmware-console /usr/bin/vmware-console + + # Questions: + einfo "Adding answers to /etc/vmware-console/locations" + locations="${D}/etc/vmware-console/locations" + echo "answer BINDIR ${dir}/bin" >> ${locations} + echo "answer LIBDIR ${dir}/lib" >> ${locations} + echo "answer MANDIR ${dir}/man" >> ${locations} + echo "answer DOCDIR ${dir}/doc" >> ${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-console/locations file." + d=`echo ${D} | wc -c` + for x in `find ${Ddir} ${D}/etc/vmware-console` ; do + x="`echo ${x} | cut -c ${d}-`" + if [ -d ${D}/${x} ] ; then + echo "directory ${x}" >> ${D}/etc/vmware-console/locations + else + echo -n "file ${x}" >> ${D}/etc/vmware-console/locations + if [ "${x}" == "/etc/vmware-console/locations" ] ; then + echo "" >> ${D}/etc/vmware-console/locations + elif [ "${x}" == "/etc/vmware-console/not_configured" ] ; then + echo "" >> ${D}/etc/vmware-console/locations + else + echo -n " " >> ${D}/etc/vmware-console/locations + #perl -e "@a = stat('${D}${x}'); print \$a[9]" >> ${D}/etc/vmware-console/locations + find ${D}${x} -printf %T@ >> ${D}/etc/vmware-console/locations + echo "" >> ${D}/etc/vmware-console/locations + fi + fi + done +} + +pkg_config() { + einfo "Running ${dir}/bin/vmware-config-console.pl" + ${dir}/bin/vmware-config-console.pl +} + +pkg_postinst() { + update-mime-database /usr/share/mime + + # 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-console.pl script it can delete it. + einfo "Updating /etc/vmware-console/locations" + for x in /etc/vmware-console/._cfg????_locations ; do + if [ -f $x ] ; then + cat $x >> /etc/vmware-console/locations + rm $x + fi + done + + einfo + einfo "You need to run ${dir}/bin/vmware-config-console.pl to complete the install." + einfo + einfo "For VMware Add-Ons just visit" + einfo "http://www.vmware.com/download/downloadaddons.html" + einfo +} + +pkg_postrm() { + einfo + einfo "To remove all traces of vmware you will need to remove the files" + einfo "in /etc/vmware-console/." + einfo +} diff --git a/app-emulation/vmware-server-modules/files/vmware-server-modules-1.0.0.20925-makefile.patch b/app-emulation/vmware-server-modules/files/vmware-server-modules-1.0.0.20925-makefile.patch new file mode 100644 index 0000000..a2a981d --- /dev/null +++ b/app-emulation/vmware-server-modules/files/vmware-server-modules-1.0.0.20925-makefile.patch @@ -0,0 +1,12 @@ +diff -uNr Makefile Makefile +--- Makefile 2006-02-05 00:20:08.000000000 +0000 ++++ Makefile 2006-02-19 16:49:34.000000000 +0000 +@@ -14,7 +14,7 @@ + VM_UNAME = $(shell uname -r) + + # Header directory for the running kernel +-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include ++HEADER_DIR = /usr/src/linux/include + + BUILD_DIR = $(HEADER_DIR)/.. + diff --git a/app-emulation/vmware-server-modules/vmware-server-modules-1.0.0.20925.ebuild b/app-emulation/vmware-server-modules/vmware-server-modules-1.0.0.20925.ebuild new file mode 100644 index 0000000..186de4b --- /dev/null +++ b/app-emulation/vmware-server-modules/vmware-server-modules-1.0.0.20925.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-wireless/madwifi-driver/madwifi-driver-0.1443.20060207.ebuild,v 1.1 2006/02/07 10:27:05 brix Exp $ + +inherit linux-mod eutils versionator + +PARENT_PN=${PN/-modules/} +MY_PV="e.x.p-$(get_version_component_range 4)" + +DESCRIPTION="Modules for Vmware Server" +HOMEPAGE="http://www.vmware.com/" +SRC_URI="http://download3.vmware.com/software/vmserver/${PARENT_PN/vm/VM}-${MY_PV}.tar.gz" + +S=${WORKDIR} + +LICENSE="vmware" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +IUSE="" +DEPEND="" + +#CONFIG_CHECK="CRYPTO NET_RADIO SYSCTL" +#ERROR_CRYPTO="${P} requires Cryptographic API support (CONFIG_CRYPTO)." +#ERROR_NET_RADIO="${P} requires support for Wireless LAN drivers (non-hamradio) & Wireless Extensions (CONFIG_NET_RADIO)." +#ERROR_SYSCTL="${P} requires Sysctl support (CONFIG_SYSCTL)." +BUILD_TARGETS="auto-build" + +pkg_setup() { + linux-mod_pkg_setup + + MODULE_NAMES="vmmon(misc:${S}/vmmon-only) + vmnet(misc:${S}/vmnet-only)" + # vmppuser(misc:${S}/vmppuser-only)" + + # BUILD_PARAMS="KERNELPATH=${KV_OUT_DIR}" +} + +src_unpack() { + unpack ${A} + + for dir in vmmon vmnet; do + cd ${S} + # tar -xf ${DISTDIR}/$dir.tar + unpack ./${PARENT_PN}-distrib/lib/modules/source/${dir}.tar + cd ${S}/${dir}-only + epatch ${FILESDIR}/${P}-makefile.patch + convert_to_m ${S}/${dir}-only/Makefile + done + + rm -fr ${S}/${PARENT_PN}-distrib +} diff --git a/app-emulation/vmware-server/files/90-vmware-server b/app-emulation/vmware-server/files/90-vmware-server new file mode 100644 index 0000000..dd0d596 --- /dev/null +++ b/app-emulation/vmware-server/files/90-vmware-server @@ -0,0 +1,3 @@ +PATH=/opt/vmware/server/bin +ROOTPATH=/opt/vmware/server/bin +MANPATH=/opt/vmware/server/man diff --git a/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-config.patch b/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-config.patch new file mode 100644 index 0000000..1d864f7 --- /dev/null +++ b/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-config.patch @@ -0,0 +1,31 @@ +--- vmware-distrib/bin/vmware-config.pl.ori 2005-11-09 01:45:08.000000000 +0000 ++++ vmware-distrib/bin/vmware-config.pl 2005-11-09 01:48:21.000000000 +0000 +@@ -8433,7 +8433,7 @@ + error('Please shut down any running VMs and run this script again.' . + "\n\n"); + } else { +- if (system(shell_string(db_get_answer('INITSCRIPTSDIR') . '/vmware') ++ if (system(shell_string('/etc/init.d' . '/vmware') + . ' stop')) { + error('Unable to stop services for ' . vmware_product_name() . + "\n\n"); +@@ -8463,8 +8463,8 @@ + } + if (vmware_product() ne 'server') { + configure_gtk2(); +- createMimePackageFile(); +- configureDesktopFiles(); ++# createMimePackageFile(); ++# configureDesktopFiles(); + configure_mon(); + configure_pp(); + configure_net(); +@@ -8532,7 +8532,7 @@ + db_save(); + # Then start VMware's services + if (!$gOption{'skipstopstart'}) { +- system(shell_string(db_get_answer('INITSCRIPTSDIR') . '/vmware') . ' start'); ++ system(shell_string('/etc/init.d' . '/vmware') . ' start'); + print "\n"; + } + diff --git a/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-config2.patch b/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-config2.patch new file mode 100644 index 0000000..e646b7b --- /dev/null +++ b/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-config2.patch @@ -0,0 +1,15 @@ +diff -urN vmware-distrib.orig/bin/vmware-config.pl vmware-distrib/bin/vmware-config.pl +--- vmware-distrib.orig/bin/vmware-config.pl 2005-12-16 00:51:03.000000000 -0500 ++++ vmware-distrib/bin/vmware-config.pl 2005-12-21 14:34:03.000000000 -0500 +@@ -7327,7 +7327,10 @@ + error('Unable to write configuration file "' . $name . '".' . "\n\n"); + } + db_add_file($name, 0x1); +- safe_chmod(0644, $name); ++ safe_chmod(0664, $name); ++ my $gid = (getgrnam('vmware'))[2]; ++ my $uid = (stat($name))[4]; ++ safe_chown($uid,$gid,$name); + + # Append the promotional configuration if it exists + $promoconfig = $libdir . '/configurator/PROMOCONFIG'; diff --git a/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-config3.patch b/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-config3.patch new file mode 100644 index 0000000..c3068de --- /dev/null +++ b/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-config3.patch @@ -0,0 +1,12 @@ +diff -urN vmware-distrib.orig/bin/vmware-config.pl vmware-distrib/bin/vmware-config.pl +--- vmware-distrib.orig/bin/vmware-config.pl 2005-12-16 00:51:03.000000000 -0500 ++++ vmware-distrib/bin/vmware-config.pl 2005-12-21 14:34:03.000000000 -0500 +@@ -1972,7 +1972,7 @@ + . ' -E - | ' . shell_string($gHelper{'grep'}) . ' ' + . shell_string($pattern)); + chomp($header_page_offset); +- $header_page_offset =~ s/^$pattern \(?0x([0-9a-fA-F]{8,}).*$/$1/; ++ $header_page_offset =~ s/^$pattern \(?(\(unsigned long\))?0x([0-9a-fA-F]{8,}).*$/$1/; + if ($header_page_offset =~ /[0-9a-fA-F]{8,}/) { + # We found a valid page offset + if (defined($gSystem{'page_offset'}) and diff --git a/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-config4.patch b/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-config4.patch new file mode 100644 index 0000000..cec3b3e --- /dev/null +++ b/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-config4.patch @@ -0,0 +1,17 @@ +diff -uNr vmware-server-distrib.orig/bin/vmware-config.pl vmware-server-distrib/bin/vmware-config.pl +--- vmware-server-distrib.orig/bin/vmware-config.pl 2006-02-18 18:12:26.000000000 +0000 ++++ vmware-server-distrib/bin/vmware-config.pl 2006-02-18 18:14:17.000000000 +0000 +@@ -8571,10 +8571,10 @@ + configure_gtk2(); + # createMimePackageFile(); + # configureDesktopFiles(); +- configure_mon(); +- configure_pp(); ++# configure_mon(); ++# configure_pp(); + configure_net(); +- build_vmnet(); ++# build_vmnet(); + } + + # Create the directory for the UNIX domain sockets diff --git a/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-services.patch b/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-services.patch new file mode 100644 index 0000000..c29a87e --- /dev/null +++ b/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-services.patch @@ -0,0 +1,12 @@ +diff -uNr vmware-server-distrib/installer/services.sh vmware-server-distrib.new/installer/services.sh +--- vmware-server-distrib/installer/services.sh 2006-02-05 00:21:25.000000000 +0000 ++++ vmware-server-distrib.new/installer/services.sh 2006-02-20 23:48:07.000000000 +0000 +@@ -538,7 +538,7 @@ + } + + vmware_load_module() { +- /sbin/insmod -s -f "/lib/modules/`uname -r`/misc/$1.o" || exit 1 ++ /sbin/modprobe -s -f "$1" || exit 1 + exit 0 + } + diff --git a/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-vmware-authd-amd64 b/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-vmware-authd-amd64 new file mode 100644 index 0000000..de076b4 --- /dev/null +++ b/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-vmware-authd-amd64 @@ -0,0 +1,6 @@ +#%PAM-1.0 +auth sufficient /emul/linux/x86/lib/security/pam_unix.so shadow nullok +auth required /emul/linux/x86/lib/security/pam_unix_auth.so shadow nullok +account required /emul/linux/x86/lib/security/pam_listfile.so item=group sense=allow file=/etc/vmware/vmwaregroup onerr=fail +account sufficient /emul/linux/x86/lib/security/pam_unix.so +account required /emul/linux/x86/lib/security/pam_unix_acct.so diff --git a/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-vmware-authd-x86 b/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-vmware-authd-x86 new file mode 100644 index 0000000..fce8f64 --- /dev/null +++ b/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-vmware-authd-x86 @@ -0,0 +1,6 @@ +#%PAM-1.0 +auth sufficient pam_unix.so shadow nullok +auth required pam_unix_auth.so shadow nullok +account required pam_listfile.so item=group sense=allow file=/etc/vmware/vmwaregroup onerr=fail +account sufficient pam_unix.so +account required pam_unix_acct.so diff --git a/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-vmwaregroup b/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-vmwaregroup new file mode 100644 index 0000000..0554874 --- /dev/null +++ b/app-emulation/vmware-server/files/vmware-server-1.0.0.20925-vmwaregroup @@ -0,0 +1 @@ +vmware diff --git a/app-emulation/vmware-server/files/vmware.rc b/app-emulation/vmware-server/files/vmware.rc new file mode 100644 index 0000000..74c39ab --- /dev/null +++ b/app-emulation/vmware-server/files/vmware.rc @@ -0,0 +1,74 @@ +#!/sbin/runscript +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-workstation/files/vmware.rc,v 1.5 2005/12/19 16:16:08 wolf31o2 Exp $ + +depend() { + need localmount + use logger net + after samba +} + +vmware-prettify() { + # Yea, the code is ugly but the output is pretty + state=$1 + waserror=0 + msgtype=0 + while read line + do + [ "$line" == "" ] && continue + if [ "$msgtype" -le "0" ] + then + if [ "$msgtype" == "-1" ] + then + ewarn $line + continue + fi + if [ "${line/*:*/}" == "" ] + then + einfon $line + echo + eend 0 + msgtype=1 + else + ewarn $line + msgtype=-1 + waserror=1 + fi + continue + fi + + # Strip out anything after the <esc> code + message=`echo $line | sed -e "s/^\(.*\).*$/\1/"` + einfon " $message" + echo + + echo $line | grep done > /dev/null + status=$? + eend $status + + if [ "$status" != "0" ] + then + logger -p local0.err -t vmware-${state} "$line" + waserror=$status + fi + done + if [ "$msgtype" == "-1" ] + then + eend 1 "VMware is not properly configured! See above." + fi + return $waserror +} + +start() { + test -x /etc/vmware/init.d/vmware || \ + eend 1 "vmware init script not found. Aborting" || return 1 + + /etc/vmware/init.d/vmware start | vmware-prettify start + return $? +} + +stop() { + /etc/vmware/init.d/vmware stop | vmware-prettify stop + return $? +} diff --git a/app-emulation/vmware-server/files/vmware.xml b/app-emulation/vmware-server/files/vmware.xml new file mode 100644 index 0000000..8d5e2ef --- /dev/null +++ b/app-emulation/vmware-server/files/vmware.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"> + <mime-type type="application/x-vmware-vm"> + <comment xml:lang="en">VMware virtual machine</comment> + <magic priority="50"> + <match type="string" value='config.version = "' offset="0:4096"/> + </magic> + <glob pattern="*.vmx"/> + </mime-type> + + <mime-type type="application/x-vmware-vmdisk"> + <comment xml:lang="en">VMware virtual disk</comment> + <magic priority="50"> + <match type="string" value="# Disk DescriptorFile" offset="0"/> + <match type="string" value="KDMV" offset="0"/> + </magic> + <glob pattern="*.vmdk"/> + </mime-type> + + <mime-type type="application/x-vmware-team"> + <comment xml:lang="en">VMware team</comment> + <magic priority="50"> + <match type="string" value='<Foundry version="1">' offset="0"> + <match type="string" value="<VMTeam>" offset="23:24"/> + </match> + </magic> + <glob pattern="*.vmtm"/> + </mime-type> + + <mime-type type="application/x-vmware-snapshot"> + <comment xml:lang="en">VMware virtual machine snapshot</comment> + <magic priority="50"> + <match type="string" value="\\0xD0\\0xBE\\0xD0\\0xBE" offset="0"/> + </magic> + <glob pattern="*.vmsn"/> + </mime-type> + + <mime-type type="application/x-vmware-vmfoundry"> + <comment xml:lang="en">VMware virtual machine foundry</comment> + <magic priority="50"> + <match type="string" value='<Foundry version="1">' offset="0"> + <match type="string" value="<VM>" offset="23:24"/> + </match> + </magic> + <glob pattern="*.vmxf"/> + </mime-type> +</mime-info> diff --git a/app-emulation/vmware-server/vmware-server-1.0.0.20925.ebuild b/app-emulation/vmware-server/vmware-server-1.0.0.20925.ebuild new file mode 100644 index 0000000..71697cb --- /dev/null +++ b/app-emulation/vmware-server/vmware-server-1.0.0.20925.ebuild @@ -0,0 +1,276 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-server/vmware-server-1.0.0.20925.ebuild,v 1.4 2006/01/04 21:59:43 wolf31o2 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. + +inherit eutils versionator + +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" + +LICENSE="vmware" +IUSE="" +SLOT="0" +KEYWORDS="-* ~amd64 ~x86" +RESTRICT="nostrip" + +DEPEND=">=sys-libs/glibc-2.3.5 + >=dev-lang/perl-5 + sys-apps/pciutils + >=app-admin/chrpath-0.13 + 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 + ) + || ( ( x11-libs/libXrandr + x11-libs/libXcursor + x11-libs/libXinerama + x11-libs/libXi + x11-libs/libXft + ) + ( 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 + ~app-emulation/${PN}-modules-${PV}" + +dir=/opt/vmware/server +Ddir=${D}/${dir} +VMWARE_GROUP=${VMWARE_GROUP:-vmware} + +pkg_setup() { + # This is due to both bugs #104480 and #106170 + enewgroup "${VMWARE_GROUP}" +} + +src_unpack() { + unpack ${NP}.tar.gz + cd ${S} + # patch the config to not install desktop/icon files + epatch ${FILESDIR}/${P}-config.patch + # patch the config to make /etc/vmware/config writable + epatch ${FILESDIR}/${P}-config2.patch + # patch the config to work with kernels above 2.6.12ish + epatch ${FILESDIR}/${P}-config3.patch + # patch the configure script not to build the modules + epatch ${FILESDIR}/${P}-config4.patch + # patch the services file to modprobe the modules rather than insmod + epatch ${FILESDIR}/${P}-services.patch + + # patch the vmware /etc/pam.d file to ensure that only + # vmware group members can log in + cp ${FILESDIR}/${P}-vmware-authd-x86 ${S}/etc/pam.d/vmware-authd + use amd64 && cp ${FILESDIR}/${P}-vmware-authd-amd64 ${S}/etc/pam.d/vmware-authd + + # Fix up all the broken rpaths + einfo "Removing empty RPATH variables from perl libraries..." + + for sobj in `find ${S}/lib/perl5/site_perl/5.005/ -name *.so -and ! -name PAM.so -and ! -name POSIX.so`; + do + # echo $sobj + chrpath -d $sobj + done +} + +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" + + dodir /etc/vmware/ + cp -pPR etc/* ${D}/etc/vmware/ + cp ${FILESDIR}/${P}-vmwaregroup ${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 + dosed 's/mknod -m 600/mknod -m 660/' /etc/vmware/init.d/vmware || die + dosed '/c 119 "$vHubNr"/ a\ + chown root:vmware /dev/vmnet*\ + ' /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 ${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" 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 ${dir}/bin/vmware-config.pl" + ${dir}/bin/vmware-config.pl +} + +pkg_postinst() { + update-mime-database /usr/share/mime + [ -d /etc/vmware ] && chown -R root:vmware /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 /etc/vmware/._cfg????_locations ; do + if [ -f $x ] ; then + cat $x >> /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." + #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 +} |