diff options
13 files changed, 753 insertions, 73 deletions
@@ -2,6 +2,20 @@ # Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2 # $ Id: $ + 01 Jun 2006; Chris Gianelloni <wolf31o2@gentoo.org> ChangeLog: + Restored older (working) vmware-workstation and vmware-player ebuilds. I also + masked the newer revisions of the ebuilds for both until I can get everything + into the eclass like I want. They ebuilds *shold* work, but I make no + guarantees. + + Some other changes: + + * Removed erroneous DEPEND from vmware-workstation-tools + * Updated eclass to work with either a patch directory or the PATCHES variable + * Started on src_install for the eclass + * fixed a few typos here and there + * Added lots more comments to the eclass + 28 May 2006; Mike Auty <ikelos@gentoo.org> : Ok, a lot of changes this time round: diff --git a/app-emulation/vmware-player/files/vmware-player-1.0.1.19317-config.patch b/app-emulation/vmware-player/files/vmware-player-1.0.1.19317-config.patch new file mode 100644 index 0000000..1d864f7 --- /dev/null +++ b/app-emulation/vmware-player/files/vmware-player-1.0.1.19317-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-player/files/vmware-player-1.0.1.19317-config2.patch b/app-emulation/vmware-player/files/vmware-player-1.0.1.19317-config2.patch new file mode 100644 index 0000000..e646b7b --- /dev/null +++ b/app-emulation/vmware-player/files/vmware-player-1.0.1.19317-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-player/files/vmware-player-1.0.1.19317-config3.patch b/app-emulation/vmware-player/files/vmware-player-1.0.1.19317-config3.patch new file mode 100644 index 0000000..f700f5d --- /dev/null +++ b/app-emulation/vmware-player/files/vmware-player-1.0.1.19317-config3.patch @@ -0,0 +1,12 @@ +diff -ur vmware-distrib.orig/bin/vmware-config.pl vmware-distrib/bin/vmware-config.pl +--- vmware-distrib.orig/bin/vmware-config.pl 2006-03-24 23:13:05.000000000 +0100 ++++ vmware-distrib/bin/vmware-config.pl 2006-03-24 23:26:40.000000000 +0100 +@@ -1969,7 +1969,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 \(?(\([^)]*\))?\)?0x([0-9a-fA-F]{8,}).*$/$2/; + 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-player/vmware-player-1.0.1.19317-r3.ebuild b/app-emulation/vmware-player/vmware-player-1.0.1.19317-r3.ebuild new file mode 100644 index 0000000..ff00f79 --- /dev/null +++ b/app-emulation/vmware-player/vmware-player-1.0.1.19317-r3.ebuild @@ -0,0 +1,247 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-player/vmware-player-1.0.1.19317-r3.ebuild,v 1.2 2006/05/23 20:59:29 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 + +S=${WORKDIR}/vmware-player-distrib +ANY_ANY="vmware-any-any-update101" +NP="VMware-player-1.0.1-19317" +DESCRIPTION="Emulate a complete PC on your PC without the usual performance overhead of most emulators" +HOMEPAGE="http://www.vmware.com/products/player/" +SRC_URI="http://download3.vmware.com/software/vmplayer/${NP}.tar.gz + http://ftp.cvut.cz/vmware/${ANY_ANY}.tar.gz + http://ftp.cvut.cz/vmware/obselete/${ANY_ANY}.tar.gz + http://knihovny.cvut.cz/ftp/pub/vmware/${ANY_ANY}.tar.gz + http://knihovny.cvut.cz/ftp/pub/vmware/obselete/${ANY_ANY}.tar.gz + mirror://gentoo/vmware.png" + +LICENSE="vmware" +IUSE="" +SLOT="0" +KEYWORDS="-* amd64 x86" +RESTRICT="nostrip" # fetch" + +DEPEND="${RDEPEND} virtual/os-headers + !app-emulation/vmware-workstation" +# vmware-player should not use virtual/libc as this is a +# precompiled binary package thats linked to glibc. +RDEPEND="sys-libs/glibc + amd64? ( + app-emulation/emul-linux-x86-gtklibs ) + x86? ( + || ( + ( + x11-libs/libXrandr + x11-libs/libXcursor + x11-libs/libXinerama + x11-libs/libXi ) + virtual/x11 ) + virtual/xft ) + >=dev-lang/perl-5 + !app-emulation/vmware-workstation + sys-apps/pciutils" + +dir=/opt/vmware/player +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 and proper gentoo init + epatch ${FILESDIR}/${P}-config.patch + epatch ${FILESDIR}/${P}-config2.patch + epatch ${FILESDIR}/${P}-config3.patch + unpack ${ANY_ANY}.tar.gz + mv -f ${ANY_ANY}/*.tar ${S}/lib/modules/source/ + cd ${S}/${ANY_ANY} + chmod 755 ../lib/bin/vmplayer ../bin/vmnet-bridge ../lib/bin/vmware-vmx \ + ../lib/bin-debug/vmware-vmx + # vmware any98 still doesn't patch the vmware binary +# ./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 + +} + +src_install() { + dodir ${dir}/bin + cp -pPR bin/* ${Ddir}/bin + + dodir ${dir}/lib + cp -dr 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 + + dodoc doc/* || die "dodoc" + # Fix for bug #91191 + dodir ${dir}/doc + insinto ${dir}/doc + doins doc/EULA || die "copying EULA" + + # vmware service loader + newinitd ${FILESDIR}/vmware.rc vmware || die "newinitd" + + # vmware enviroment + doenvd ${FILESDIR}/90vmware-player || die "doenvd" + + dodir /etc/vmware/ + cp -pPR 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 -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 vmplayer "VMWare Player" ${PN}.png + + dodir /usr/bin + dosym ${dir}/bin/vmplayer /usr/bin/vmplayer + + # 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}/lib/bin{,-debug}/vmware-vmx /etc/vmware \ + || die "Changing permissions" + fperms 4750 ${dir}/lib/bin{,-debug}/vmware-vmx || 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 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/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 + + # 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 "After configuring, type 'vmplayer' to launch" + einfo + einfo "Also note that when you reboot you should run:" + einfo "/etc/init.d/vmware start" + einfo "before trying to run vmplayer. Or you could just add" + einfo "it to the default run level:" + einfo "rc-update add vmware default" + echo + ewarn "Remember, in order to run vmplayer, 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*.o," + einfo "and .vmware/ in each users home directory. Don't forget to rmmod the" + einfo "vm* modules, either." + einfo +} diff --git a/app-emulation/vmware-player/vmware-player-1.0.1.19317-r4.ebuild b/app-emulation/vmware-player/vmware-player-1.0.1.19317-r4.ebuild index 158d87d..6c69b97 100644 --- a/app-emulation/vmware-player/vmware-player-1.0.1.19317-r4.ebuild +++ b/app-emulation/vmware-player/vmware-player-1.0.1.19317-r4.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-player/vmware-player-1.0.1.19317-r3.ebuild,v 1.1 2006/04/17 14:04:03 wolf31o2 Exp $ +# $Header: $ # 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 @@ -18,10 +18,9 @@ SRC_URI="http://download3.vmware.com/software/vmplayer/${MY_P}.tar.gz LICENSE="vmware" IUSE="" SLOT="0" -KEYWORDS="-* ~amd64 ~x86" -RESTRICT="nostrip" # fetch" +KEYWORDS="-*" +RESTRICT="strip" # fetch" -ANY_ANY="" VMWARE_VME="VME_V55" DEPEND="${RDEPEND} virtual/os-headers diff --git a/app-emulation/vmware-workstation-tools/vmware-workstation-tools-4.5.3.ebuild b/app-emulation/vmware-workstation-tools/vmware-workstation-tools-4.5.3.ebuild index 9663e2b..7c83962 100644 --- a/app-emulation/vmware-workstation-tools/vmware-workstation-tools-4.5.3.ebuild +++ b/app-emulation/vmware-workstation-tools/vmware-workstation-tools-4.5.3.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-workstation-tools/vmware-workstation-tools-4.5.2.ebuild,v 1.3 2006/05/08 13:56:33 wolf31o2 Exp $ +# $Header: $ inherit vmware eutils @@ -17,11 +17,10 @@ SRC_URI="http://ftp.cvut.cz/vmware/${ANY_ANY}.tar.gz LICENSE="vmware" SLOT="0" -KEYWORDS="~x86" +KEYWORDS="-* ~x86" IUSE="X" RESTRICT="strip" -DEPEND="" RDEPEND="sys-apps/pciutils" dir=/opt/vmware/tools diff --git a/app-emulation/vmware-workstation/files/vmware-workstation-5.5.1.19175-config.patch b/app-emulation/vmware-workstation/files/vmware-workstation-5.5.1.19175-config.patch new file mode 100644 index 0000000..1d864f7 --- /dev/null +++ b/app-emulation/vmware-workstation/files/vmware-workstation-5.5.1.19175-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-workstation/files/vmware-workstation-5.5.1.19175-config2.patch b/app-emulation/vmware-workstation/files/vmware-workstation-5.5.1.19175-config2.patch new file mode 100644 index 0000000..e646b7b --- /dev/null +++ b/app-emulation/vmware-workstation/files/vmware-workstation-5.5.1.19175-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-workstation/files/vmware-workstation-5.5.1.19175-config3.patch b/app-emulation/vmware-workstation/files/vmware-workstation-5.5.1.19175-config3.patch new file mode 100644 index 0000000..f700f5d --- /dev/null +++ b/app-emulation/vmware-workstation/files/vmware-workstation-5.5.1.19175-config3.patch @@ -0,0 +1,12 @@ +diff -ur vmware-distrib.orig/bin/vmware-config.pl vmware-distrib/bin/vmware-config.pl +--- vmware-distrib.orig/bin/vmware-config.pl 2006-03-24 23:13:05.000000000 +0100 ++++ vmware-distrib/bin/vmware-config.pl 2006-03-24 23:26:40.000000000 +0100 +@@ -1969,7 +1969,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 \(?(\([^)]*\))?\)?0x([0-9a-fA-F]{8,}).*$/$2/; + 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-workstation/vmware-workstation-5.5.1.19175-r3.ebuild b/app-emulation/vmware-workstation/vmware-workstation-5.5.1.19175-r3.ebuild new file mode 100644 index 0000000..4af04a7 --- /dev/null +++ b/app-emulation/vmware-workstation/vmware-workstation-5.5.1.19175-r3.ebuild @@ -0,0 +1,256 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-workstation/vmware-workstation-5.5.1.19175-r3.ebuild,v 1.2 2006/04/17 18:31:49 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 + +S=${WORKDIR}/vmware-distrib +ANY_ANY="vmware-any-any-update101" +NP="VMware-workstation-5.5.1-19175" +DESCRIPTION="Emulate a complete PC on your PC without the usual performance overhead of most emulators" +HOMEPAGE="http://www.vmware.com/products/desktop/ws_features.html" +SRC_URI="http://vmware-svca.www.conxion.com/software/wkst/${NP}.tar.gz + http://download3.vmware.com/software/wkst/${NP}.tar.gz + http://download.vmware.com/htdocs/software/wkst/${NP}.tar.gz + http://www.vmware.com/download1/software/wkst/${NP}.tar.gz + ftp://download1.vmware.com/pub/software/wkst/${NP}.tar.gz + http://vmware-chil.www.conxion.com/software/wkst/${NP}.tar.gz + http://vmware-heva.www.conxion.com/software/wkst/${NP}.tar.gz + http://vmware.wespe.de/software/wkst/${NP}.tar.gz + ftp://vmware.wespe.de/pub/software/wkst/${NP}.tar.gz + http://ftp.cvut.cz/vmware/${ANY_ANY}.tar.gz + http://ftp.cvut.cz/vmware/obselete/${ANY_ANY}.tar.gz + http://knihovny.cvut.cz/ftp/pub/vmware/${ANY_ANY}.tar.gz + http://knihovny.cvut.cz/ftp/pub/vmware/obselete/${ANY_ANY}.tar.gz" + +LICENSE="vmware" +IUSE="" +SLOT="0" +KEYWORDS="-* amd64 x86" +RESTRICT="nostrip" + +DEPEND="${RDEPEND} virtual/os-headers" +# vmware-workstation should not use virtual/libc as this is a +# precompiled binary package thats linked to glibc. +RDEPEND="sys-libs/glibc + amd64? ( + app-emulation/emul-linux-x86-gtklibs ) + x86? ( + || ( + ( + x11-libs/libXrandr + x11-libs/libXcursor + x11-libs/libXinerama + x11-libs/libXi ) + virtual/x11 ) + virtual/xft ) + >=dev-lang/perl-5 + !app-emulation/vmware-player + sys-apps/pciutils" +# >=sys-apps/baselayout-1.11.14" + +dir=/opt/vmware/workstation +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 + epatch ${FILESDIR}/${P}-config3.patch + unpack ${ANY_ANY}.tar.gz + mv -f ${ANY_ANY}/*.tar ${S}/lib/modules/source/ + cd ${S}/${ANY_ANY} + chmod 755 ../lib/bin/vmware ../bin/vmnet-bridge ../lib/bin/vmware-vmx ../lib/bin-debug/vmware-vmx + # vmware any98 still doesn't patch the vmware binary + #./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 +} + +src_install() { + dodir ${dir}/bin + cp -pPR bin/* ${Ddir}/bin + + dodir ${dir}/lib + cp -dr 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 + + 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-workstation || die "doenvd" + + dodir /etc/vmware/ + cp -pPR 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 -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 Workstation" ${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}/lib/bin{,-debug}/vmware-vmx /etc/vmware \ + || die "Changing permissions" + fperms 4750 ${dir}/lib/bin{,-debug}/vmware-vmx || 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 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 "After configuring, type 'vmware' to launch" + 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 run vmware, 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*.o," + einfo "and .vmware/ in each users home directory. Don't forget to rmmod the" + einfo "vm* modules, either." + einfo +} diff --git a/app-emulation/vmware-workstation/vmware-workstation-5.5.1.19175-r4.ebuild b/app-emulation/vmware-workstation/vmware-workstation-5.5.1.19175-r4.ebuild index 150f50f..a2966f3 100644 --- a/app-emulation/vmware-workstation/vmware-workstation-5.5.1.19175-r4.ebuild +++ b/app-emulation/vmware-workstation/vmware-workstation-5.5.1.19175-r4.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $ Id: $ +# $Header: $ # 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 @@ -25,13 +25,12 @@ SRC_URI="http://vmware-svca.www.conxion.com/software/wkst/${MY_P}.tar.gz LICENSE="vmware" IUSE="" SLOT="0" -KEYWORDS="-* amd64 x86" -RESTRICT="nostrip" +KEYWORDS="-*" +RESTRICT="strip" -ANY_ANY="" VMWARE_VME="VME_V55" -DEPEND="${RDEPEND} virtual/os-headers" +DEPEND="virtual/os-headers" # vmware-workstation should not use virtual/libc as this is a # precompiled binary package thats linked to glibc. RDEPEND="sys-libs/glibc @@ -50,16 +49,12 @@ RDEPEND="sys-libs/glibc !app-emulation/vmware-player !app-emulation/vmware-server sys-apps/pciutils" -# >=sys-apps/baselayout-1.11.14" PDEPEND="app-emulation/vmware-modules" S=${WORKDIR}/vmware-distrib -dir=/opt/vmware/workstation -Ddir=${D}/${dir} - -PATCHES="config.patch config2.patch config3.patch" RUN_UPDATE="no" +dir=/opt/vmware/workstation pkg_setup() { vmware_test_module_build @@ -67,52 +62,17 @@ pkg_setup() { } src_install() { - dodir ${dir}/bin - cp -pPR bin/* ${Ddir}/bin - - dodir ${dir}/lib - cp -dr lib/* ${Ddir}/lib + not-vmware_src_install - # 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 - 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-workstation || die "doenvd" - - dodir /etc/vmware/ - cp -pPR etc/* ${D}/etc/vmware/ - - vmware_create_initd - - 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 - 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 Workstation" ${PN}.png dodir /usr/bin @@ -127,13 +87,6 @@ src_install() { || die "Changing permissions" fperms 4750 ${dir}/lib/bin{,-debug}/vmware-vmx || die fperms 770 /etc/vmware || die - - vmware_run_questions -} - -pkg_config() { - einfo "Running ${dir}/bin/vmware-config.pl" - ${dir}/bin/vmware-config.pl } pkg_postinst() { diff --git a/eclass/vmware.eclass b/eclass/vmware.eclass index 035bceb..42280e9 100644 --- a/eclass/vmware.eclass +++ b/eclass/vmware.eclass @@ -5,6 +5,8 @@ # 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 eutils EXPORT_FUNCTIONS pkg_preinst pkg_postinst pkg_setup src_unpack @@ -12,29 +14,22 @@ EXPORT_FUNCTIONS pkg_preinst pkg_postinst pkg_setup src_unpack export ANY_ANY="vmware-any-any-update101" #export TOOLS_ANY="vmware-tools-any-update1" export VMWARE_GROUP=${VMWARE_GROUP:-vmware} +export Ddir=${D}/${dir} vmware_test_module_failed() { - eerror - eerror "Please run:" - eerror - eerror " emerge -C app-emulation/vmware-modules" - eerror - eerror "before attemping to install this package" - die "Please run 'emerge -C app-emulation/vmware-modules' before continuing" + eerror "You have an incompatible version of app-emulation/vmware-modules installed!" + echo + die "Please run 'emerge -C app-emulation/vmware-modules' before continuing" } vmware_test_module_build() { if has_version "app-emulation/vmware-modules"; then if test ! -e /opt/vmware/module-build; then - eerror - eerror "Unable to determine which package" - eerror "the vmware-modules were compiled for" + eerror "Unable to determine which package the vmware-modules were compiled for" vmware_test_module_failed else if test "`cat /opt/vmware/module-build`" != $VMWARE_VME; then - eerror - eerror "The vmware-modules on this system were" - eerror "built for a different version of vmware" + eerror "The vmware-modules on this system were built for a different version of vmware" vmware_test_module_failed fi fi @@ -97,9 +92,14 @@ vmware_pkg_setup() { cdrom_get_cds ${TARBALL} ;; esac + # Here we should be doing a test_module_build, as all vmware products need + # modules compiled. This is commented until we can get both the products + # and the tools using the same build system. + #vmware_test_module_build } vmware_src_unpack() { + # If there is anything to unpack, at all, then we should be using MY_P. if [[ -n "${MY_P}" ]] then unpack "${MY_P}".tar.gz @@ -109,6 +109,14 @@ vmware_src_unpack() { EPATCH_SUFFIX="patch" epatch ${FILESDIR}/${PV} fi + if [[ -n "${PATCHES}" ]] + then + for patch in ${PATCHES} + do + epatch ${FILESDIR}/${patch} + done + fi + if [[ -n "${ANY_ANY}" ]] then unpack ${ANY_ANY}.tar.gz @@ -134,6 +142,94 @@ vmware_src_unpack() { fi } +# This will need to be renamed once it is fully functional. +not-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 ${dir}/lib/modules/binary + # We also don't need to keep the icons around, or do we? + #rm -rf ${dir}/lib/share/icons + + # Just like any good monkey, we install the documentation and man pages. + [[ -d doc ]] && dodoc doc/* + for x in man/* + do + doman man/${x}/* || die "doman" + done + + # We loop through our directories and copy everything to our system. + for x in bin lib sbin + do + if [[ -e ${S}/${x} ]] + then + dodir ${dir}/${x} + cp -pPR ${x}/* ${Ddir}/${x} || die "copying ${x}" + fi + done + + # If we have an /etc directory, we copy it. + if [[ -e ${S}/etc ]] + then + dodir /etc/${product} + cp -pPR etc/* ${D}/etc/${product} + fi + + # If we have any helper files, we install them. First, we check for an + # init script. + if [[ ${FILESDIR}/${PN}.rc ]] + then + newinitd ${FILESDIR}/${PN}.rc ${product} || die "newinitd" + fi + # Then we check for an environment file. + if [[ ${FILESDIR}/90${product} ]] + then + doenvd ${FILESDIR}/90${product} || die "doenvd" + fi + # Last, we check for any mime files. + if [[ ${FILESDIR}/${product}.xml ]] + then + insinto /usr/share/mime/packages + doins ${FILESDIR}/${product}.xml || die "mimetypes" + fi + + # Blame bug #91191 for this one. + if [[ -e doc/EULA ]] + then + insinto ${dir}/doc + doins doc/EULA || die "copying EULA" + fi + + # TODO: Replace this junk + # Everything after this point will hopefully go away once we can rid + # ourselves of the evil perl configuration scripts. + + # 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 /etc/${product}/init.d + newexe ${ANY_ANY}/services.sh ${product} || die "services.sh" + + # Finally, we run the "questions" + vmware_run_questions || die "running questions" +} + vmware_pkg_preinst() { # This must be done after the install to get the mtimes on each file # right. |