diff options
Diffstat (limited to 'app-emulation')
13 files changed, 500 insertions, 4 deletions
diff --git a/app-emulation/vmware-server/ChangeLog b/app-emulation/vmware-server/ChangeLog new file mode 100644 index 0000000..53dd4a1 --- /dev/null +++ b/app-emulation/vmware-server/ChangeLog @@ -0,0 +1,19 @@ +# ChangeLog for app-emulation/vmware-server +# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 +# $Header: $ + +*vmware-server-2.0.2.203138-r4 (24 Mar 2011) + + 24 Mar 2011; Vadim Kuznetsov <vadimk@gentoo.org> files/vmware-server-2.rc, + +files/2.0.2.203138/000_all_initd-location.patch, + +files/2.0.2.203138/001_all_fix-permissions.patch, + +files/2.0.2.203138/002_all_pagebreak-detection-fix.patch, + +files/2.0.2.203138/004_all_do-not-build-modules.patch, + +files/2.0.2.203138/007_all_use-modprobe-over-insmod.patch, + +files/2.0.2.203138/009_all_init.d-modules-warning.patch, + +files/2.0.2.203138/011_all_legit-modules-only.patch, + +vmware-server-2.0.2.203138-r4.ebuild, + +files/2.0.2.203138/012_all_rc-config.patch, + +files/2.0.2.203138/014_all_uninstall.patch: + removed hald dependency + diff --git a/app-emulation/vmware-server/Manifest b/app-emulation/vmware-server/Manifest index fdec3f8..caa02f7 100644 --- a/app-emulation/vmware-server/Manifest +++ b/app-emulation/vmware-server/Manifest @@ -1,3 +1,12 @@ +AUX 2.0.2.203138/000_all_initd-location.patch 1259 RMD160 edced247443fc535e5a6b98404153e970721e5aa SHA1 9a36424152bc38aba53c66cea983a41f0b23baff SHA256 5e163e7232a260ea6bff570180756807f9587ab5cf836c9c293d7162d788c062 +AUX 2.0.2.203138/001_all_fix-permissions.patch 702 RMD160 9d77ba6ff6cba0b9ee529777870470028c687f22 SHA1 863278b6cfadca04ae539bc858731658074ed01e SHA256 8f5fac381a2eda0f1da8a521fcb0ef17b139bf5b8b926425946534e802ce8307 +AUX 2.0.2.203138/002_all_pagebreak-detection-fix.patch 800 RMD160 f21a51e552d025a5120519d6dcd41efc3835a432 SHA1 06133c332b6b1f57476b1154de108a9dfc35435d SHA256 d327d7cb2166b9ef4c8c286568c3a7eb64542212164d58b8a7a3c5e51e19ed6d +AUX 2.0.2.203138/004_all_do-not-build-modules.patch 553 RMD160 6dd19e4a7626f97354f4cb1725aeba306d72e113 SHA1 7b949213c10681026eb22fe6a6e96af482931e2c SHA256 39884f9af3d85883b06beb6678ad12e5fed32bded8a039b49c680336011425ec +AUX 2.0.2.203138/007_all_use-modprobe-over-insmod.patch 343 RMD160 ef4007c98c8342e00fe8e04c76f08f0901a6539a SHA1 62d4a5ee744c36fa59b44e4382338760e67e88e1 SHA256 68cb51ad4ea3a24faa1101c3a72cd17f61fcdb901af5fa93a9eeaad5b6c9383d +AUX 2.0.2.203138/009_all_init.d-modules-warning.patch 965 RMD160 3a98d59bb591aa6498a7dca9751f441b430c6288 SHA1 5b6b1c1330d1108bb769107c73fdc43c1fe46be5 SHA256 dbeb12905d75f06be519cc99e6e0c070b6e08e34cdb813c518b09a04b55876fb +AUX 2.0.2.203138/011_all_legit-modules-only.patch 535 RMD160 de7fa6a29bf9f7e6670de53fd2dfdc842ec7a097 SHA1 9bd34078eeb012cec94eaac4ab9d899ad4244ca1 SHA256 ed15e9e237bf69dc5ef7803db53011d06b84525d5df6754afa54290d1677f794 +AUX 2.0.2.203138/012_all_rc-config.patch 867 RMD160 b88448d21d361468c2e30863abf2dfac3b71c10e SHA1 5cd66235af794a57e5d982ffb93122999666dbc0 SHA256 a1ef415a5d036efb5846d80a1b0475d56c2bc2f608a4099bd04a1445ace22761 +AUX 2.0.2.203138/014_all_uninstall.patch 516 RMD160 d81d46b67edb0f769538cacfdd4a9cd6d022ec1a SHA1 f342874cd8fc53f6bc944835c5d6b16da974a626 SHA256 8df93ec7724a3509b5d71758dfb2804816a2b89e418b75f7c51fa4cc68ffcc67 AUX 90vmware-server 91 RMD160 2a9e2e9d428a06ceac7faec500e6b1423da34b25 SHA1 e090847500dd99d161a46cd361ed2297b3d3ecae SHA256 3175cd9665850cf0d25a96849135c93ab129127370d55572f0137ba3d210e423 AUX authorization.xml 332 RMD160 f31f4300342a9290634e20187351910d72e7c28d SHA1 28e2b07ed7225c83bef3172d23d4702fe92a3f75 SHA256 a6ce67bb812ca67d26e518da4903cf27338865c0f06beb58d4a8ece6021e1630 AUX general/001_all_no-desktop-icon.patch 1131 RMD160 3ab69d825994cc3bb177143d27091fc292cec46a SHA1 14264460c8500f1ead267059e2b9b9a5dc8c057f SHA256 b4055370b0092e71a2b2b0f27edeb7bc063ad265f95ab4530e52c3ab3167ad62 @@ -9,10 +18,14 @@ AUX general/007_all_use-modprobe-over-insmod.patch 445 RMD160 186ab443a733276a70 AUX general/008_all_dhcpd-conf-location.patch 382 RMD160 6b0c1a3571fb0d7bc537930d9a77fb4d960aa104 SHA1 344da932ea8652d85028d4f17a3a66afd90c01b7 SHA256 577454af27bc9107220055f9d8b93b40e31650c205d31d5a351c5a1ecc16d658 AUX general/009_all_init.d-modules-warning.patch 991 RMD160 6205e976db47cd3361b5eca8593414d411a2ab8d SHA1 3742749baa606a57d447931f0af791696a49e660 SHA256 5fbc9f101abb3816a732f64a75e90ce7fcb6783c3cd7bae521d8785e88634498 AUX vmware-authd 211 RMD160 1bd60030f6f7bb78c0fd3b6d156498121d4be5d4 SHA1 514538222dc4e665e1d450e1bf9bf1d8e03a2b61 SHA256 3eafe9ac10aeac852faa1fbbccb5c525560e358f69964995c5cfb86c53af6b54 -AUX vmware-server-2.rc 1561 RMD160 ea122e81095807e635626a9a8ff1e445137da2b0 SHA1 50262ff622afe0a8d8eab3ad2599193cd56ad211 SHA256 e4cc1591c0cd8ab6e699d4e346ea69e0a0f4d564bc34ae216027338f74517afd +AUX vmware-server-2.rc 1444 RMD160 d3e6ee3ddbe9d51691862a186acc3ce0789c4af1 SHA1 df33441cf8caf03adfa2c5cd23c31044dca3d439 SHA256 9096785bec623ea1e905e4c4284f1dfe292eb9a60690c5cbcc437a5b5198055d AUX vmware-server.rc 1529 RMD160 d6840024f8c7be0a673e5e29660cc75fea9520d8 SHA1 049cf33eb5bac09415f8e2a85f7ecfd0bbc5ab4a SHA256 ef551e4240eea88184c96e286354a53a4983ce80c3332a127767301b42586cb2 AUX vmware-server.xml 1592 RMD160 0d7e9ed13ebb3c73dd847e95fa95499296609e8c SHA1 02db2ee7ca0abb8b8793c9f56d858bb08c1c715f SHA256 56aafee80ad705e8d832f8853c36d763d37b87d1cb132a41c50eb63085ae854d DIST VMware-server-1.0.10-203137.tar.gz 107183610 RMD160 0ddaa6a6f5b3c08804eb1b97f13ffd0fc0b87876 SHA1 f21ed65a500b2176166d90ed2821892ce1cb1fd5 SHA256 744d6057daeea5f9a950d164a3d9c5ca6273feed645699cfcf16d8acbcfa504c +DIST VMware-server-2.0.2-203138.i386.tar.gz 506047036 RMD160 3119bf56e1ef9c63dfcb969d951cd78bd9c667e1 SHA1 2917c8d4e521cb9af186be8fcaf2043b1a516a6c SHA256 b4779515e2a8ecc4d768c07f9264aeb94e45986262626a3a557466e77f371662 +DIST VMware-server-2.0.2-203138.x86_64.tar.gz 474415801 RMD160 0778f78122ee6b701543df5885ad1e8d3325fb82 SHA1 b65d3d46dc947fc7995bda354c4947afabd23474 SHA256 a1230f43f6b668a751e9ce2c9d2f6a2c75e4d4cea88f583901f67dbd67412e25 DIST vmware-server-perl-fixed-rpath-libs.tar.bz2 73834 RMD160 7f64627b5b945e8d7dabe39c165a4b66b71fb4d3 SHA1 9d696750ca3ec92b31ca8112fd80dcd832494044 SHA256 c42299dd033187c67b45b739da66583fbd94cdcba745200b89a25ac96cd9364b EBUILD vmware-server-1.0.10.203137-r1.ebuild 2894 RMD160 c0dd0133c2b2c296b40299092fca94282e4a5d32 SHA1 47abd4891c48e49824526ac2ee167be4a7ba84af SHA256 c38b3680f4d8fe32dba60cda40ae736db9c56988a927066d673c0f3e11fae1d9 +EBUILD vmware-server-2.0.2.203138-r4.ebuild 8745 RMD160 7745e567492aacf4df59b2881f15230dff83ad37 SHA1 686bb31bd9ef5d00dcb6840b8e079eab0f76061f SHA256 db1449936f09d08582e84c8fcebec8793e7fbfdf58ffe3c1950fedda944a26f6 +MISC ChangeLog 815 RMD160 393225a479c0ea208c3d6f63c28a68a670ed0432 SHA1 ef761a5935dc9bae2a656f4818bd849e2be131de SHA256 c7199722e7b68996b8dd0376e7e0bf70b1bdb5e85aa8bb4e6f048156e9c37221 MISC metadata.xml 159 RMD160 fc7f68a382390e5916b0fb43f37a893fad4f9798 SHA1 f46b02a39bcd0165558de67ff4256cfc812418a3 SHA256 8581ae1c90a48f50fa0542c7fb28cb8984baaf12f50fa18f33e467081effb215 diff --git a/app-emulation/vmware-server/files/2.0.2.203138/000_all_initd-location.patch b/app-emulation/vmware-server/files/2.0.2.203138/000_all_initd-location.patch new file mode 100644 index 0000000..77146c3 --- /dev/null +++ b/app-emulation/vmware-server/files/2.0.2.203138/000_all_initd-location.patch @@ -0,0 +1,32 @@ +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 2007-12-02 11:40:41.000000000 +0000 ++++ vmware-server-distrib/bin/vmware-config.pl 2007-12-02 11:43:29.000000000 +0000 +@@ -10162,7 +10162,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"); + } +@@ -10212,8 +10212,8 @@ + + if (isDesktopProduct()) { + build_vmblock(); +- createMimePackageFile(); +- configureDesktopFiles(); ++ # createMimePackageFile(); ++ # configureDesktopFiles(); + if (vmware_binary() ne "vmplayer") { + configure_eclipse_plugin(); + } +@@ -10283,7 +10283,7 @@ + db_save(); + # Then start VMware's services + if (!$gOption{'skip-stop-start'}) { +- 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/2.0.2.203138/001_all_fix-permissions.patch b/app-emulation/vmware-server/files/2.0.2.203138/001_all_fix-permissions.patch new file mode 100644 index 0000000..605e358 --- /dev/null +++ b/app-emulation/vmware-server/files/2.0.2.203138/001_all_fix-permissions.patch @@ -0,0 +1,15 @@ +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 2007-12-02 11:16:42.000000000 +0000 ++++ vmware-server-distrib/bin/vmware-config.pl 2007-12-02 11:25:36.000000000 +0000 +@@ -9097,7 +9097,10 @@ + error('Unable to write configuration file "' . $name . '".' . "\n\n"); + } + db_add_file($name, $cFlagTimestamp | $cFlagConfig); +- 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/2.0.2.203138/002_all_pagebreak-detection-fix.patch b/app-emulation/vmware-server/files/2.0.2.203138/002_all_pagebreak-detection-fix.patch new file mode 100644 index 0000000..fd3fc76 --- /dev/null +++ b/app-emulation/vmware-server/files/2.0.2.203138/002_all_pagebreak-detection-fix.patch @@ -0,0 +1,15 @@ +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 +@@ -2015,9 +2015,9 @@ + . shell_string($pattern)); + chomp($header_page_offset); + # Ignore PAGE_OFFSET if we cannot parse it. +- if ($header_page_offset =~ /^$pattern \(?0x([0-9a-fA-F]{8,})/) { ++ if ($header_page_offset =~ /^$pattern \(?(\([^)]*\))?\)?0x([0-9a-fA-F]{8,}).*$/) { + # We found a valid page offset +- $header_page_offset = $1; ++ $header_page_offset = $2; + if (defined($gSystem{'page_offset'}) and + not (lc($header_page_offset) eq lc($gSystem{'page_offset'}))) { + if ($source eq 'user') { diff --git a/app-emulation/vmware-server/files/2.0.2.203138/004_all_do-not-build-modules.patch b/app-emulation/vmware-server/files/2.0.2.203138/004_all_do-not-build-modules.patch new file mode 100644 index 0000000..35fe16b --- /dev/null +++ b/app-emulation/vmware-server/files/2.0.2.203138/004_all_do-not-build-modules.patch @@ -0,0 +1,26 @@ +diff --git a/bin/vmware-config.pl b/bin/vmware-config.pl +index 363f9cb..7ffc212 100755 +--- a/bin/vmware-config.pl ++++ b/bin/vmware-config.pl +@@ -10404,16 +10404,16 @@ sub main { + } + + if (vmware_product() ne 'server') { +- configure_mon(); +- configure_vmci(); +- configure_vsock(); +- configure_pp(); ++ #configure_mon(); ++ #configure_vmci(); ++ #configure_vsock(); ++ #configure_pp(); + + if (vmware_product() eq 'wgs') { + configure_net(); + } + +- build_vmnet(); ++ #build_vmnet(); + } + + if (isDesktopProduct()) { diff --git a/app-emulation/vmware-server/files/2.0.2.203138/007_all_use-modprobe-over-insmod.patch b/app-emulation/vmware-server/files/2.0.2.203138/007_all_use-modprobe-over-insmod.patch new file mode 100644 index 0000000..42fc20a --- /dev/null +++ b/app-emulation/vmware-server/files/2.0.2.203138/007_all_use-modprobe-over-insmod.patch @@ -0,0 +1,13 @@ +diff --git a/installer/services.sh b/installer/services.sh +index 402ad79..2fb53ab 100755 +--- a/installer/services.sh ++++ b/installer/services.sh +@@ -755,7 +755,7 @@ vmware_run_vimsh_cmd() { + } + + vmware_load_module() { +- /sbin/insmod -s -f "/lib/modules/`uname -r`/misc/$1.o" || exit 1 ++ /sbin/modprobe -s "$1" || exit 1 + return 0 + } + diff --git a/app-emulation/vmware-server/files/2.0.2.203138/009_all_init.d-modules-warning.patch b/app-emulation/vmware-server/files/2.0.2.203138/009_all_init.d-modules-warning.patch new file mode 100644 index 0000000..dc57efb --- /dev/null +++ b/app-emulation/vmware-server/files/2.0.2.203138/009_all_init.d-modules-warning.patch @@ -0,0 +1,19 @@ +diff -uNr vmware-server-distrib.orig/installer/services.sh vmware-server-distrib/installer/services.sh +--- vmware-server-distrib.orig/installer/services.sh 2007-12-02 12:08:09.000000000 +0000 ++++ vmware-server-distrib/installer/services.sh 2007-12-02 12:12:08.000000000 +0000 +@@ -823,8 +823,13 @@ + check_configured() { + if [ -e "$vmware_etc_dir"/not_configured ]; then + echo "`vmware_product_name`"' is installed, but it has not been (correctly) configured' +- echo 'for the running kernel. To (re-)configure it, invoke the' +- echo 'following command: '"$vmdb_answer_BINDIR"'/vmware-config.pl.' ++ echo 'for the running kernel.' ++ echo ++ echo 'Please ensure that the modules have been compiled for this kernel:' ++ echo ' emerge --oneshot vmware-modules' ++ echo ++ echo 'Also ensure '"`vmware_product_name`"' has been configured:' ++ echo ' '"$vmdb_answer_BINDIR"'/vmware-config.pl.' + echo + + exit 1 diff --git a/app-emulation/vmware-server/files/2.0.2.203138/011_all_legit-modules-only.patch b/app-emulation/vmware-server/files/2.0.2.203138/011_all_legit-modules-only.patch new file mode 100644 index 0000000..cbfa05b --- /dev/null +++ b/app-emulation/vmware-server/files/2.0.2.203138/011_all_legit-modules-only.patch @@ -0,0 +1,13 @@ +diff --git a/bin/vmware-config.pl b/bin/vmware-config.pl +index bb9d04f..458a14b 100755 +--- a/bin/vmware-config.pl ++++ b/bin/vmware-config.pl +@@ -10315,7 +10315,7 @@ sub main { + + if ($gOption{'tools-switch'} == 0) { + my @modules = non_vmware_modules_installed(); +- if (scalar(@modules) > 0) { ++ if (scalar(@modules) < 0) { + my $osVersion = direct_command(shell_string($gHelper{'uname'}) . ' -r'); + chomp($osVersion); + error("The following VMware kernel modules have been found on your " . diff --git a/app-emulation/vmware-server/files/2.0.2.203138/012_all_rc-config.patch b/app-emulation/vmware-server/files/2.0.2.203138/012_all_rc-config.patch new file mode 100644 index 0000000..f3bc2b3 --- /dev/null +++ b/app-emulation/vmware-server/files/2.0.2.203138/012_all_rc-config.patch @@ -0,0 +1,25 @@ +--- bin.old/vmware-config.pl 2009-07-02 17:56:08.873568674 -0400 ++++ bin/vmware-config.pl 2009-07-02 17:56:59.000000000 -0400 +@@ -1341,6 +1341,14 @@ + } + } + ++ # Try using Genoot's rc-config ++ if ($gHelper{'rc-config'} ne '') { ++ if(0 == system(shell_string($gHelper{'rc-config'}) . ' add ' ++ . $service . ' default')) { ++ return; ++ } ++ } ++ + # Set up vmware to start/stop at run levels 2, 3 and 5 + link_runlevel(2, $service, $S_level, $K_level); + link_runlevel(3, $service, $S_level, $K_level); +@@ -2552,6 +2560,7 @@ + } + $gHelper{'insserv'} = internal_which('insserv'); + $gHelper{'chkconfig'} = internal_which('/sbin/chkconfig'); ++ $gHelper{'rc-config'} = internal_which('/usr/bin/rc-config'); + if (vmware_product() eq 'server' && + $gHelper{'chkconfig'} eq '') { + error('No initscript installer found.' . "\n\n"); diff --git a/app-emulation/vmware-server/files/2.0.2.203138/014_all_uninstall.patch b/app-emulation/vmware-server/files/2.0.2.203138/014_all_uninstall.patch new file mode 100644 index 0000000..ea01016 --- /dev/null +++ b/app-emulation/vmware-server/files/2.0.2.203138/014_all_uninstall.patch @@ -0,0 +1,19 @@ +diff --git a/bin/vmware-config.pl b/bin/vmware-config.pl +index def4df8..9f6d6b7 100755 +--- a/bin/vmware-config.pl ++++ b/bin/vmware-config.pl +@@ -2280,10 +2280,10 @@ sub db_get_files_to_restore { + sub uninstall_file { + my $file = shift; + +- if (not db_file_in($file)) { +- # Not installed by this program +- return; +- } ++ #if (not db_file_in($file)) { ++ # # Not installed by this program ++ # return; ++ #} + + if (file_name_exist($file)) { + if (file_changed_db_ts($file) || db_userfile_in($file)) { diff --git a/app-emulation/vmware-server/files/vmware-server-2.rc b/app-emulation/vmware-server/files/vmware-server-2.rc index b8e09f1..3b9fc86 100755 --- a/app-emulation/vmware-server/files/vmware-server-2.rc +++ b/app-emulation/vmware-server/files/vmware-server-2.rc @@ -1,10 +1,10 @@ #!/sbin/runscript -# Copyright 1999-2004 Gentoo Foundation +# Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-server/files/vmware-server.rc,v 1.6 2007/09/20 17:13:13 ikelos Exp $ +# $Header: $ depend() { - need localmount hald + need localmount use logger net after samba } diff --git a/app-emulation/vmware-server/vmware-server-2.0.2.203138-r4.ebuild b/app-emulation/vmware-server/vmware-server-2.0.2.203138-r4.ebuild new file mode 100644 index 0000000..685ec47 --- /dev/null +++ b/app-emulation/vmware-server/vmware-server-2.0.2.203138-r4.ebuild @@ -0,0 +1,287 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-server/vmware-server-2.0.2.203138-r1.ebuild,v 1.4 2010/05/13 22:33:47 vadimk 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. + +EAPI="2" + +inherit eutils pam pax-utils versionator + +MY_PV=$(replace_version_separator 3 '-' ) +MY_PN="VMware-server-${MY_PV}" + +DESCRIPTION="VMware Server for Linux" +HOMEPAGE="http://www.vmware.com/" +DOWNLOAD_URL="http://downloads.vmware.com/d/info/datacenter_downloads/vmware_server/2_0" +SRC_URI=" x86? ( mirror://vmware/software/vmserver/${MY_PN}.i386.tar.gz ) + amd64? ( mirror://vmware/software/vmserver/${MY_PN}.x86_64.tar.gz ) " + +LICENSE="vmware" +IUSE="" +SLOT="0" +KEYWORDS="-* ~x86 ~amd64" +RESTRICT="fetch strip" + +CDEPEND=" + >=dev-lang/perl-5 + >=sys-libs/glibc-2.3.5 + sys-apps/pciutils" +DEPEND="${CDEPEND} + sys-apps/findutils + x11-misc/shared-mime-info + virtual/os-headers" +# vmware-server should not use virtual/libc as this is a +# precompiled binary package thats linked to glibc. +RDEPEND="${CDEPEND} + dev-libs/expat + dev-libs/glib + dev-libs/libxml2 + =media-libs/libpng-1.2* + sys-fs/fuse + sys-libs/zlib + virtual/pam + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + x11-libs/libXau + x11-libs/libXdmcp + x11-libs/libXext + x11-libs/libXft + x11-libs/libXt + x11-libs/libXtst + x11-misc/xdg-utils + !<sys-apps/dbus-0.62 + !app-emulation/vmware-player + !app-emulation/vmware-workstation + " + +PDEPEND="~app-emulation/vmware-modules-208.2 + app-emulation/vmware-vix" + +S=${WORKDIR}/vmware-server-distrib + +pkg_setup() { + if use x86; then + MY_P="${MY_PN}.i386" + elif use amd64; then + MY_P="${MY_PN}.x86_64" + fi +} + +pkg_nofetch() { + if use x86; then + MY_P="${MY_PN}.i386" + elif use amd64; then + MY_P="${MY_PN}.x86_64" + fi + + einfo "Please download the ${MY_P}.bundle from" + einfo "${DOWNLOAD_URL}" + einfo "and place it in ${DISTDIR}" +} + +src_prepare() { + VMWARE_GROUP=${VMWARE_GROUP:-vmware} + VMWARE_INSTALL_DIR=/opt/${PN//-//} + + shortname="wgs" + product="vmware" + config_program="vmware-config.pl" + config_dir="/etc/vmware" + product_name="VMware Server 2" + + enewgroup ${VMWARE_GROUP} + + # 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). + pax-mark -m $(list-paxables "${S}"/{bin{,-debug},sbin}/{vmware-serverd,vmware-vmx}) + + EPATCH_SOURCE="${FILESDIR}"/${PV} EPATCH_SUFFIX="patch" epatch + + # Proper lsmod + sed -i -e "s:/sbin/lsmod:/bin/lsmod:" "${S}"/installer/services.sh || die "sed" + sed -i -e "s:/sbin/lsmod:/bin/lsmod:" "${S}"/lib/net-services.sh || die "sed" + + # Set the name + sed -i -e "s:%LONGNAME%:${product_name}:" "${S}"/installer/services.sh || die "sed" + sed -i -e "s:%SHORTNAME%:${shortname}:" "${S}"/installer/services.sh || die "sed" + + # 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 *.pl bin/*.pl + rm -f vmware-install.pl bin/vmware-uninstall.pl + rm -f *.pl + rm -f etc/installer.sh + + # 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 "${S}"/lib/modules/binary + # We also don't need to keep the icons around, or do we? + #rm -rf ${S}/lib/share/icons + + rm -rf "${S}"/etc/pam.d/ + sed -i -e "s:configure_wgs_pam_d():#&:" "${S}"/bin/vmware-config.pl || die "sed pam_d" +} + +src_install() { + # We loop through our directories and copy everything to our system. + for x in bin lib sbin + do + if [[ -e "${S}/${x}" ]] + then + dodir "${VMWARE_INSTALL_DIR}"/${x} + cp -pPR "${S}"/${x}/* "${D}""${VMWARE_INSTALL_DIR}"/${x} \ + || die "copying ${x}" + fi + done + + # Bug 282213 + mv "${D}"/"${VMWARE_INSTALL_DIR}"/lib/lib/libpng12.so.0/libpng12.so.0 \ + "${D}"/"${VMWARE_INSTALL_DIR}"/lib/lib/libpng12.so.0/libpng12.so.0.old + dosym /usr/lib/libpng12.so.0 "${VMWARE_INSTALL_DIR}"/lib/lib/libpng12.so.0/libpng12.so.0 + + # Bug 292771 + mv "${D}"/"${VMWARE_INSTALL_DIR}"/lib/lib/libexpat.so.0/libexpat.so.0 \ + "${D}"/"${VMWARE_INSTALL_DIR}"/lib/lib/libexpat.so.0/libexpat.so.0.old + dosym /usr/lib/libexpat.so.1 "${VMWARE_INSTALL_DIR}"/lib/lib/libexpat.so.0/libexpat.so.0 + mv "${D}"/"${VMWARE_INSTALL_DIR}"/lib/lib/libxml2.so.2/libxml2.so.2 \ + "${D}"/"${VMWARE_INSTALL_DIR}"/lib/lib/libxml2.so.2/libxml2.so.2.old + dosym /usr/lib/libxml2.so.2 "${VMWARE_INSTALL_DIR}"/lib/lib/libxml2.so.2/libxml2.so.2 + + # If we have an /etc directory, we copy it. + if [[ -e "${S}/etc" ]] + then + dodir "${config_dir}" + cp -pPR "${S}"/etc/* "${D}""${config_dir}" + fowners root:${VMWARE_GROUP} "${config_dir}" + fperms 770 "${config_dir}" + fi + + # If we have any helper files, we install them. First, we check for an + # init script. + if [[ -e "${FILESDIR}/${PN}-2.rc" ]] + then + newinitd "${FILESDIR}"/${PN}-2.rc ${product} || die "newinitd" + fi + # Then we check for an environment file. + if [[ -e "${FILESDIR}/90${PN}" ]] + then + doenvd "${FILESDIR}"/90${PN} || die "doenvd" + fi + # Last, we check for any mime files. + if [[ -e "${FILESDIR}/${PN}.xml" ]] + then + insinto /usr/share/mime/packages + doins "${FILESDIR}"/${PN}.xml || die "mimetypes" + fi + + # Blame bug #91191 for this one. + if [[ -e doc/EULA ]] + then + insinto "${VMWARE_INSTALL_DIR}"/doc + doins doc/EULA || die "copying EULA" + fi + + # Do we have vmware-ping/vmware-vmx? If so, make them setuid. + for p in /bin/vmware-ping /lib/bin/vmware-vmx /lib/bin-debug/vmware-vmx /lib/bin/vmware-vmx-debug /sbin/vmware-authd; + do + if [ -x "${D}${VMWARE_INSTALL_DIR}${p}" ] + then + fowners root:${VMWARE_GROUP} "${VMWARE_INSTALL_DIR}"${p} + fperms 4750 "${VMWARE_INSTALL_DIR}"${p} + fi + done + + # This removed the user/group warnings + # But also broke vmware-server with FEATURES="userpriv" since it removes + # the set-UID bit + #chown -R root:${VMWARE_GROUP} ${D} || die + + # We like desktop icons. + # TODO: Fix up the icon creation, across the board. + #make_desktop_entry ${PN} "${product_name}" ${PN}.png + + # Now, we copy in our services.sh file + exeinto "${config_dir}"/init.d + newexe installer/services.sh ${product} || die "services.sh" + + # startup symlinks + dosym ${config_dir}/init.d/${product} ${config_dir}/init.d/vmware-autostart + dosym ${config_dir}/init.d/${product} ${config_dir}/init.d/vmware-core + dosym ${config_dir}/init.d/${product} ${config_dir}/init.d/vmware-mgmt + + # pam + pamd_mimic_system vmware-authd auth account + + # Man pages and docs + dodoc doc/* + doman man/man1/* + + # VMware authorization service + insinto ${config_dir}/hostd + doins "${FILESDIR}/authorization.xml" + + # Finally, we run the "Questions" + einfo "Adding answers to ${config_dir}/locations" + locations="${D}${config_dir}/locations" + cat >> "${D}${config_dir}"/locations <<-EOF + answer BINDIR ${VMWARE_INSTALL_DIR}/bin + answer LIBDIR ${VMWARE_INSTALL_DIR}/lib + answer MANDIR ${VMWARE_INSTALL_DIR}/man + answer DOCDIR ${VMWARE_INSTALL_DIR}/doc + answer SBINDIR ${VMWARE_INSTALL_DIR}/sbin + answer RUN_CONFIGURATOR no + answer INITDIR ${config_dir}/init.d + answer INITSCRIPTSDIR ${config_dir}/init.d + answer VMCI_CONFED yes + answer VSOCK_CONFED yes + EOF +} + +pkg_config() { + einfo "Running ${VMWARE_INSTALL_DIR}/bin/vmware-config.pl" + "${VMWARE_INSTALL_DIR}/bin/vmware-config.pl" +} + +pkg_postinst() { + update-mime-database /usr/share/mime + [[ -d "${config_dir}" ]] && chown -R root:${VMWARE_GROUP} ${config_dir} + + # 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 ${config_dir}/locations" + #for x in "${config_dir}"/._cfg????_locations ; do + # if [ -f $x ] ; then + # cat $x >> "${config_dir}"/locations + # rm $x + # fi + #done + + ewarn "Use " + ewarn " emerge vmware-server --config" + ewarn "to configure your installation of ${product_name}." + + ewarn "In order to run ${product_name}, you have to" + ewarn "be in the '${VMWARE_GROUP}' group." + + ewarn "VMWare Server also has issues when running on a JFS filesystem. For more" + ewarn "information see http://bugs.gentoo.org/show_bug.cgi?id=122500#c94" +} + +pkg_prerm() { + einfo "Stopping ${product_name} for safe unmerge" + /etc/init.d/vmware stop +} + +pkg_postrm() { + if ! has_version app-emulation/${PN}; then + elog "To remove all traces of ${product} you will need to remove the files" + elog "in ${config_dir} and /etc/init.d/${product}." + elog "If the vmware-modules package is installed, you may no longer need it." + fi +} |