tkurbad-overlay/app-emulation/vmware-vmrc/vmware-vmrc-12.0.5.22744838.ebuild
2023-11-28 17:16:48 +01:00

180 lines
6.1 KiB
Bash

# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop pax-utils systemd xdg
MY_PV="$(ver_rs 3 -)"
MY_PN="VMware-Remote-Console"
MY_P="${MY_PN}-${MY_PV}.x86_64.bundle"
DESCRIPTION="VMware Remote Console"
HOMEPAGE="https://docs.vmware.com/en/VMware-Remote-Console/index.html"
SRC_URI="${MY_P}"
LICENSE="vmware"
SLOT="0"
KEYWORDS="-* ~amd64"
IUSE=""
RESTRICT="bindist fetch mirror"
RDEPEND=""
S="${WORKDIR}/src"
pkg_nofetch() {
einfo "Please the client file ${A} from"
einfo "${HOMEPAGE}"
einfo "and place it into your DISTDIR directory"
}
src_unpack() {
# Bundle doesn't allow extraction via symlinks or relative paths
cp "${DISTDIR}"/"${MY_P}" "${WORKDIR}"/ || die "cp failed"
sh "${WORKDIR}"/"${MY_P}" --console --required --eulas-agreed -x "${S}" \
|| die "bundle extract failed"
}
src_prepare() {
default
# Replace placeholder path
sed -i -e "s:@@BINARY@@:${EPREFIX}/opt/vmware/bin/vmrc:g" \
-e "/^Encoding/d" \
vmware-vmrc-app/share/applications/vmware-vmrc.desktop \
|| die "sed for vmware-vmrc.desktop failed"
local vmware_installer_version
vmware_installer_version="$(grep -oPm1 '(?<=<version>)[^<]+' vmware-installer/manifest.xml)"
sed -i -e "s/@@VERSION@@/${vmware_installer_version}/" \
-e "s,@@VMWARE_INSTALLER@@,/opt/vmware-vmrc/lib/vmware-installer/${vmware_installer_version}," \
vmware-installer/bootstrap || die "sed for vmware-installer/bootstrap failed"
}
src_install() {
einstalldocs
into /opt/vmware
dobin vmware-vmrc-app/bin/vmrc
# libvmplayer.so/libvmplayer.so from app-emulation/vmware-workstation
dodir opt/vmware/lib/vmware/lib/libvmrc.so
dosym ../libvmplayer.so/libvmplayer.so \
opt/vmware/lib/vmware/lib//libvmrc.so/libvmrc.so
# appLoader from app-emulation/vmware-workstation
dosym appLoader opt/vmware/lib/vmware/bin/vmrc
domenu vmware-vmrc-app/share/applications/vmware-vmrc.desktop
doicon vmware-vmrc/lib/share/pixmaps/{vmware-vmrc,vmrc_sidebar}.png
for size in 16 24 32 48 ; do
doicon -s "${size}" vmware-vmrc/share/icons/hicolor/"${size}x${size}"/apps/vmware-vmrc.png
done
insinto /usr/share/metainfo
doins vmware-vmrc-app/share/appdata/vmware-vmrc.appdata.xml
pax-mark -m "${ED}"/opt/vmware/lib/vmware/bin/vmrc
local vmware_installer_version
vmware_installer_version="$(grep -oPm1 '(?<=<version>)[^<]+' vmware-installer/manifest.xml)"
# Install revdep-rebuild entry
insinto /etc/revdep-rebuild
echo 'SEARCH_DIRS_MASK="/opt/vmware"' > "${T}"/10vmware-vmrc
doins "${T}"/10vmware-vmrc
# Install the binaries
into /opt/vmware
dobin vmware-usbarbitrator/bin/vmware-usbarbitrator \
vmware-vmrc-app/bin/vmware-gksu
# Install the libraries
insinto /opt/vmware/lib/vmware
doins -r vmware-installer/lib/. \
vmware-vmrc-app/lib/.
insinto /opt/vmware/lib/vmware/share
doins -r vmware-vmrc/lib/share/. \
vmware-player-core/lib/share/.
insinto /opt/vmware/lib/vmware/lib/libvmware-zenity.so
doins vmware-player-core/lib/lib/libvmware-zenity.so/libvmware-zenity.so
# Install the installer
insinto /opt/vmware/lib/vmware-installer/"${vmware_installer_version}"
doins -r vmware-installer/{vmis,vmis-launcher,vmware-installer,vmware-installer.py}
fperms 0755 /opt/vmware/lib/vmware-installer/"${vmware_installer_version}"/{vmis-launcher,vmware-installer}
dosym ../lib/vmware-installer/"${vmware_installer_version}"/vmware-installer /opt/vmware/bin/vmware-installer
insinto /etc/vmware-installer
doins vmware-installer/bootstrap
# Install vmware-vmrc ancillaries
for size in 16 22 24 32 48 ; do
if [ "${size}" == "16" ] || [ "$size" == "32" ] ; then
doicon -s "${size}" -c mimetypes \
vmware-vmrc/share/icons/hicolor/"${size}x${size}"/mimetypes/application-certificate.png
doicon -s "${size}" -c mimetypes \
vmware-vmrc/share/icons/hicolor/"${size}x${size}"/mimetypes/application-x-vmware-{easter-egg,team}.png
doicon -s "${size}" -c mimetypes \
vmware-vmrc/share/icons/hicolor/"${size}x${size}"/mimetypes/application-x-vmware-{vm-clone,vm-legacy,vm}.png
fi
if [ "${size}" == "22" ] || [ "$size" == "24" ] ; then
doicon -s "${size}" -c mimetypes \
vmware-vmrc/share/icons/hicolor/"${size}x${size}"/mimetypes/application-certificate.png
doicon -s "${size}" -c mimetypes \
vmware-vmrc/share/icons/hicolor/"${size}x${size}"/mimetypes/application-x-vmware-{vm-clone,vm}.png
fi
if [ "${size}" == "48" ] ; then
doicon -s "${size}" -c mimetypes \
vmware-vmrc/share/icons/hicolor/"${size}x${size}"/mimetypes/application-x-vmware-{easter-egg,snapshot,team}.png
doicon -s "${size}" -c mimetypes \
vmware-vmrc/share/icons/hicolor/"${size}x${size}"/mimetypes/application-x-vmware-{vm-clone,vmdisk,vmfoundry,vm-legacy,vm}.png
fi
done
doicon -s scalable -c mimetypes \
vmware-vmrc/share/icons/hicolor/scalable/mimetypes/application-certificate.svg
doicon -s scalable -c mimetypes \
vmware-vmrc/share/icons/hicolor/scalable/mimetypes/application-x-vmware-{easter-egg,snapshot,team}.svg
doicon -s scalable -c mimetypes \
vmware-vmrc/share/icons/hicolor/scalable/mimetypes/application-x-vmware-{vm-clone,vmfoundry,vm-legacy,vm}.svg
exeinto /opt/vmware/lib/vmware/setup
doexe vmware-vmrc-setup/vmware-config
# Create symlinks for the various tools
dosym appLoader /opt/vmware/lib/vmware/bin/vmware-gksu
dosym appLoader /opt/vmware/lib/vmware/bin/vmware-setup-helper
# Fix permissions
fperms 0755 /opt/vmware/lib/vmware/bin/appLoader
fperms 0755 /opt/vmware/lib/vmware/bin/vmware-remotemks
fperms 0755 /opt/vmware/lib/vmware/setup/vmware-config
fperms 0755 /opt/vmware/lib/vmware/lib/libvmware-gksu.so/gksu-run-helper
# Create environment
local envd
envd="${T}"/90vmware-vmrc
cat > "${envd}" <<-EOF
PATH="/opt/vmware/bin"
ROOTPATH="/opt/vmware/bin"
CONFIG_PROTECT_MASK="/etc/vmware-installer"
VMWARE_USE_SHIPPED_LIBS=1
EOF
doenvd "${envd}"
# Create the configuration directory
dodir /etc/vmware
# Set bootstrap configuration
cat > "${ED}"/etc/vmware/bootstrap <<-EOF
BINDIR='/opt/vmware/bin'
LIBDIR='/opt/vmware/lib'
EOF
# Install initscript for vmware-usb
newinitd "${FILESDIR}"/vmware-usb.initd vmware-usb
systemd_dounit "${FILESDIR}"/vmware-usb.service
}