network/vmware-horizon-client: Added (VMWare Horizon Client).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Navigium 2015-08-10 23:19:20 +07:00 committed by Willy Sudiarto Raharjo
parent e77361580f
commit dd7a3f315b
5 changed files with 301 additions and 0 deletions

View file

@ -0,0 +1,28 @@
The VMware Horizon Client for Linux, allowing you to use your Slackware box as a
thin client and lets you connect to your company's Virtual Desktop
Infrastructure using the proprietary VMware View 6 PCoIP protocol.
*ATTENTION*: This build script installs binary, proprietary software. Only use
it if you need the proprietary parts and you are ok with installing and using
proprietary software. By installing this SlackBuild you agree to the EULA you'll
find installed in /usr/doc/vmware-horizon-client-4.3.0/. If you do not agree,
uninstall the package.
This SlackBuild installs multiple components. At the moment only the PCoIP and
the Smart Card component seem to work. USB redirection and Virtual Printing
won't work.
To deactivate one of the working components, use the installation options
PCOIP="NO"
and
SMARTCRD="NO"
You could try to activate USB support by setting USB="YES". But there will be a
problem with libcrypto. If you find a fix, please email me.
This application is a 32bit application. It won't work on a Slackware64 system
without multilib capability. But it has been tested and works with a multilib
setup.

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
vmware-view-client: vmware-horizon-client (VMWare Horizon Client with PCoIP support)
vmware-view-client:
vmware-view-client: The VMware Horizon Client for Linux, optimised for VMware View 6,
vmware-view-client: allowing you to use your Slackware box as a thin client and connects
vmware-view-client: you to your company's Virtual Desktop Infrastructure, even if they
vmware-view-client: use the proprietary VMware Horizon 6 PCoIP protocol.
vmware-view-client: Only use this package if you need the proprietary parts.
vmware-view-client:
vmware-view-client:
vmware-view-client:
vmware-view-client:

View file

@ -0,0 +1,84 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/vmware-bundle.eclass,v 1.2 2011/08/22 04:46:32 vapier Exp $
# @ECLASS: vmware-bundle.eclass
# @MAINTAINER:
# vmware@gentoo.org
# @AUTHOR:
# Matt Whitlock <matt@whitlock.name>
# @BLURB: Provides extract functionality for vmware products bundles
# This version of the file has been modified to work as part of the vmware SlackBuild. Since the
# modifications are limited to renaming functions, we'll keep the original header
extract_bundle_component() {
local bundle=${1:?} component=${2:?} dest=${3:-${2}}
cat > "${CWD}"/list-bundle-components.xsl <<-EOF
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="text()"/>
<xsl:template match="/bundle/components/component">
<xsl:value-of select="@offset"/>
<xsl:text> </xsl:text>
<xsl:value-of select="@size"/>
<xsl:text> </xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>&#10;</xsl:text>
</xsl:template>
</xsl:stylesheet>
EOF
local -i bundle_size=$(stat -L -c'%s' "${bundle}")
local -i bundle_manifestOffset=$(od -An -j$((bundle_size-36)) -N4 -tu4 "${bundle}")
local -i bundle_manifestSize=$(od -An -j$((bundle_size-40)) -N4 -tu4 "${bundle}")
local -i bundle_dataOffset=$(od -An -j$((bundle_size-44)) -N4 -tu4 "${bundle}")
local -i bundle_dataSize=$(od -An -j$((bundle_size-52)) -N8 -tu8 "${bundle}")
tail -c+$((bundle_manifestOffset+1)) "${bundle}" 2> /dev/null | head -c$((bundle_manifestSize)) |
xsltproc "${CWD}"/list-bundle-components.xsl - |
while read -r component_offset component_size component_name ; do
if [[ ${component_name} == ${component} ]] ; then
echo "Extracting '${component_name}' component from '$(basename "${bundle}")'"
extract_component "${bundle}" "${dest}" $((bundle_dataOffset+component_offset))
echo "Done."
fi
done
}
extract_component() {
local component=${1:?} dest=${2:-.}
local -i offset=${3}
cat > "${CWD}"/list-component-files.xsl <<-EOF
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="text()"/>
<xsl:template match="/component/fileset/file">
<xsl:value-of select="@offset"/>
<xsl:text> </xsl:text>
<xsl:value-of select="@compressedSize"/>
<xsl:text> </xsl:text>
<xsl:value-of select="@uncompressedSize"/>
<xsl:text> </xsl:text>
<xsl:value-of select="@path"/>
<xsl:text>&#10;</xsl:text>
</xsl:template>
</xsl:stylesheet>
EOF
local -i component_manifestOffset=$(od -An -j$((offset+9)) -N4 -tu4 "${component}")
local -i component_manifestSize=$(od -An -j$((offset+13)) -N4 -tu4 "${component}")
local -i component_dataOffset=$(od -An -j$((offset+17)) -N4 -tu4 "${component}")
local -i component_dataSize=$(od -An -j$((offset+21)) -N8 -tu8 "${component}")
tail -c+$((offset+component_manifestOffset+1)) "${component}" 2> /dev/null |
head -c$((component_manifestSize)) | xsltproc "${CWD}"/list-component-files.xsl - |
while read -r file_offset file_compressedSize file_uncompressedSize file_path ; do
if [[ ${file_path} ]] ; then
echo -n '.'
file_path="${dest}/${file_path}"
mkdir -p "$(dirname "${file_path}")" || die
tail -c+$((offset+component_dataOffset+file_offset+1)) "${component}" 2> /dev/null |
head -c$((file_compressedSize)) | gzip -cd > "${file_path}" || die
fi
done
echo
}

View file

@ -0,0 +1,160 @@
#!/bin/sh
# Slackware build script for vmware-horizon-client
# Copyright 2015 Beni Keller, Schwyz, Switzerland
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=vmware-horizon-client
VERSION=${VERSION:-3.4.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
ARCH=i486
_BUILD=2769709
# Install PCOIP component
PCOIP=${PCOIP:-YES}
# Install USB-redirection component
# This is deactivated by default because
# It's not working with the current version of libcrypto.
USB=${USB:-NO}
# Install Smartcard component
SMARTCRD=${SMARTCRD:-YES}
# Install Real Time Audio and Video component
RTAV=${RTAV:-YES}
echo $PCOIP
break
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
BUNDLE=$CWD/VMware-Horizon-Client-$VERSION-$_BUILD.x86.bundle
# All the components we support with this SlackBuild. The
# 'virtual-printing' support is excluded because I have no
# way to test whether it's working.
COMPONENTS="client pcoip usb smartcard rtav"
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
# We use the Gentoo eclass to extract components from the bundle.
# These are the settings needed for these functions.
export T="$CWD"
ebegin() {
echo -n "Begin ${1}: "
}
eend() {
echo 'done'
}
source "$CWD/vmware-bundle.eclass"
# Extracting the components from the bundle
for COMPONENT in $COMPONENTS; do
extract_bundle_component $BUNDLE "vmware-horizon-$COMPONENT" "$CWD/extract/vmware-horizon-$COMPONENT"
done
cd $CWD/extract
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
# Dirty hack copied from Arch PKGBUILD
# https://aur.archlinux.org/packages/vm/vmware-horizon-client
# Helps linking to the correct version of the OpenSSL libs
for FILE in $(find "$CWD/extract/" -type f); do
# executables and libraries only
file --mime "${FILE}" | egrep -q "(application/x-(executable|sharedlib)|text/x-shellscript)" || continue
# make executable
chmod +x "${FILE}"
# link against libudev.so.1
#sed -i -e 's/libudev.so.0/libudev.so.1/' "${FILE}"
# even openssl 1.0.1.x has library file names ending in .so.1.0.0
sed -i -e 's/libssl.so.1.0.1/libssl.so.1.0.0/' \
-e 's/libcrypto.so.1.0.1/libcrypto.so.1.0.0/' \
"${FILE}"
done
# Delete these libraries. We'll recreate these files later as links
rm "$CWD"/extract/vmware-horizon-pcoip/pcoip/lib/vmware/lib{crypto,ssl}.so.1.0.1
# We install the client without the other components
# Since it's a binary distribution we just copy the files
cd $CWD/extract/vmware-horizon-client
mkdir -p "$PKG/usr/"
mkdir -p "$PKG/usr/doc/"
cp -a bin/ "$PKG/usr/"
cp -a lib/ "$PKG/usr/"
cp -a share/ "$PKG/usr/"
cp -a doc/ "$PKG/usr/doc/$PRGNAM-$VERSION/"
cp -a debug/ "$PKG/usr/doc/$PRGNAM-$VERSION/"
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
# We install the components
if [ "$PCOIP" == "YES" ]; then
cd ../vmware-horizon-pcoip
cp -a pcoip/lib/* "$PKG/usr/lib/"
cp -a pcoip/bin/* "$PKG/usr/bin/"
# We create the symbolic links for the libraries
ln -sf ../../lib/libcrypto.so.1.0.0 "$PKG/usr/lib/vmware/libcrypto.so.1.0.0"
ln -sf ../../lib/libssl.so.1.0.0 "$PKG/usr/lib/vmware/libssl.so.1.0.0"
fi
if [ "$USB" == "YES" ]; then
cd ../vmware-horizon-usb
cp -a bin/* "$PKG/usr/bin/"
fi
if [ "$SMARTCRD" == "YES" ]; then
cd ../vmware-horizon-smartcard
cp -a lib/* "$PKG/usr/lib/"
fi
if [ "$RTAV" == "YES" ]; then
cd ../vmware-horizon-rtav
cp -a lib/* "$PKG/usr/lib/"
fi
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View file

@ -0,0 +1,10 @@
PRGNAM="vmware-horizon-client"
VERSION="3.4.0"
HOMEPAGE="https://my.vmware.com/web/vmware/info/slug/desktop_end_user_computing/vmware_horizon_clients/3_0"
DOWNLOAD="https://download3.vmware.com/software/view/viewclients/CART15Q1/VMware-Horizon-Client-3.4.0-2769709.x86.bundle"
MD5SUM="8f963a6b4eea7b2625e1e9aecd130234"
DOWNLOAD_x86_64="UNTESTED"
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="Navigium"
EMAIL="beni.nospam@sdf.org"