Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 1649

Summary: VMware Workstation 3.1.1-1790
Product: Gentoo Linux Reporter: Preston A. Elder <prez>
Component: New packagesAssignee: Daniel Robbins (RETIRED) <drobbins>
Status: RESOLVED FIXED    
Severity: enhancement    
Priority: High    
Version: 1.0 RC6 r14   
Hardware: x86   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Preston A. Elder 2002-04-10 10:19:19 UTC
# Copyright 1999-2001 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License, v2 or later
# Maintainer: William McArthur <leknor@leknor.com>
# $Header $

DESCRIPTION="Emulate a complete PC on your PC without the usual performance
overhead of most emulators."
S=${WORKDIR}/vmware-distrib
NP="VMware-workstation-3.1.1-1790"

# Unlike many other binary packages the user doesn't need to agree to a licence
# to download VM Ware. The agreeing to a licence is part of the configure step
# which the user must run manually.
SRC_PATH0="http://vmware-svca.www.conxion.com/software"
SRC_PATH1="http://www.vmware.com/download1/software"
SRC_PATH2="ftp://download1.vmware.com/pub/software"
SRC_PATH3="http://vmware-chil.www.conxion.com/software"
SRC_PATH4="http://vmware-heva.www.conxion.com/software"
SRC_PATH5="http://vmware.wespe.de/software"
SRC_PATH6="ftp://vmware.wespe.de/pub/software"

SRC_URI="$SRC_PATH0/${NP}.tar.gz
	 $SRC_PATH1/${NP}.tar.gz
	 $SRC_PATH2/${NP}.tar.gz
	 $SRC_PATH3/${NP}.tar.gz
	 $SRC_PATH4/${NP}.tar.gz
	 $SRC_PATH5/${NP}.tar.gz
	 $SRC_PATH6/${NP}.tar.gz"

HOMEPAGE="http://www.vmware.com/products/desktop/ws_features.html"
DEPEND="virtual/glibc virtual/x11 sys-kernel/linux-headers >=sys-devel/perl-5"
#debug is needed to prevent a segfault from stripping vmware executables
export DEBUG="yes"

src_install () {
	# Copy:
	dodir /opt/vmware/bin
	cp -a bin/* ${D}/opt/vmware/bin/
	# vmware and vmware-ping needs to be suid root.
	chmod u+s ${D}/opt/vmware/bin/vmware
	chmod u+s ${D}/opt/vmware/bin/vmware-ping

	dodir /opt/vmware/lib
	cp -a lib/* ${D}/opt/vmware/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 -r ${D}/opt/vmware/lib/modules/binary

	dodir /opt/vmware/doc
	cp -a doc/* ${D}/opt/vmware/doc/

	dodir /opt/vmware/man/
	cp -a man/* ${D}/opt/vmware/man/

	# vmware service loader
	exeinto /etc/init.d
	newexe ${FILESDIR}/${PVR}/vmware vmware

	# vmware enviroment
	insinto /etc/env.d
	doins ${FILESDIR}/${PVR}/90vmware

	dodir /etc/vmware/
	cp -a etc/* ${D}/etc/vmware/

	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
	cp -a installer/services.sh ${D}/etc/vmware/init.d/vmware

	# 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.
	touch  ${D}/etc/vmware/init.d/rc{0,1,2,3,4,5,6}.d/.keep


	# Questions: 
	einfo "Adding answers to /etc/vmware/locations"
	locations="${D}/etc/vmware/locations"
	echo "answer BINDIR /opt/vmware/bin" >> ${locations}
	echo "answer LIBDIR /opt/vmware/lib" >> ${locations}
	echo "answer MANDIR /opt/vmware/man" >> ${locations}
	echo "answer DOCDIR /opt/vmware/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]"

	#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 ${D}/opt/vmware ${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
				echo "" >> ${D}/etc/vmware/locations
			fi
		fi
	done
}

pkg_postinst () {
	# 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 "Activating vmware init scripts..."
	rc-update add vmware default
	einfo
	einfo "You need to run /opt/vmware/bin/vmware-config.pl to complete the install."
	einfo
}

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*.o,"
	einfo "and .vmware/ in each users home directory."
	einfo 
}
Comment 1 Sandy McArthur 2002-04-10 17:27:41 UTC
Excllent! I'll test this when I get home. Maybe it will support the unpached
2.4.19 kernel. We should probably also add:
RESTRICT="nostrip"
as it's the more correct way to prevent stripping.
This is also the first oppurtunity to test upgrades via the portage ebuilds.
Comment 2 Sandy McArthur 2002-04-11 00:41:39 UTC
I've created a tar ball with the files needed for a new vmware release at
http://leknor.com/gentoo/vmware-workstation-3.1.1.1790.tar.gz (I would attach to
this bug if upload was working)

# tar tzf vmware-workstation-3.1.1.1790.tar.gz
vmware-workstation/vmware-workstation-3.1.1.1790.ebuild
vmware-workstation/files/digest-vmware-workstation-3.1.1.1790
vmware-workstation/files/3.1.1.1790/90vmware
vmware-workstation/files/3.1.1.1790/VMware Workstation.desktop
vmware-workstation/files/3.1.1.1790/vmware
vmware-workstation/files/3.1.1.1790/vmware.png
vmware-workstation/ChangeLog

This version does work with an unpatched 2.4.19 kernel (the linux/malloc.h issue).
I have added the stuff to add menu items to the KDE{2,3} Panels but it isn't
enabled. You can enable it by finding the line with "kde-not-yet" in the ebuild
and changing it to "kde". I'm waiting for feedback from danarmak@gentoo.org on
Gentoo's policy on if non-kde apps can add themselves to the kde menus.
I updated /etc/init.d/vmware to "prettify" the output from the init script that
comes with the vmware package so that it looks more like the normal Gentoo init
messages. Oh yea, and errors during init are sent to syslog for a more perminate
record. I think that's all I changed.

If it is decided that we don't let non-kde apps add themselves then then this
should be ready to make offical. If we do allow non-kde apps to add themselves
then I need to make an edit and test it.
Comment 3 Daniel Robbins (RETIRED) gentoo-dev 2002-04-12 23:33:32 UTC
obsoleted by another submisssion....