You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/net-misc/icaclient/icaclient-23.5.0.58.ebuild

311 lines
7.1 KiB

# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop wrapper xdg-utils
DESCRIPTION="ICA Client for Citrix Presentation servers"
HOMEPAGE="https://www.citrix.com/"
SRC_URI="amd64? ( linuxx64-${PV}.tar.gz )
x86? ( linuxx86-${PV}.tar.gz )"
LICENSE="icaclient"
SLOT="0"
KEYWORDS="-* ~amd64 ~x86"
IUSE="l10n_de l10n_es l10n_fr l10n_ja l10n_zh-CN hdx usb"
RESTRICT="mirror strip fetch"
ICAROOT="/opt/Citrix/ICAClient"
QA_PREBUILT="${ICAROOT#/}/*"
# we have binaries for two conflicting kerberos implementations
# https://bugs.gentoo.org/792090
# https://bugs.gentoo.org/775995
REQUIRES_EXCLUDE="
libgssapi.so.3
libgssapi_krb5.so.2 libkrb5.so.3
"
# when using media-plugins/hdx-realtime-media-engine we better not ignore that
REQUIRES_EXCLUDE="${REQUIRES_EXCLUDE}
!hdx? ( libunwind.so.1 )
"
# we have binaries which wouls still support gstreamer:0.10
REQUIRES_EXCLUDE="${REQUIRES_EXCLUDE}
libgstapp-0.10.so.0
libgstbase-0.10.so.0
libgstinterfaces-0.10.so.0
libgstpbutils-0.10.so.0
libgstreamer-0.10.so.0
"
# video background blurring, optional
REQUIRES_EXCLUDE="${REQUIRES_EXCLUDE}
libopencv_core.so.407
libopencv_imgcodecs.so.407
libopencv_imgproc.so.407
"
BDEPEND="
hdx? ( media-plugins/hdx-realtime-media-engine )
"
RDEPEND="
>=app-accessibility/at-spi2-core-2.46.0:2
app-crypt/libsecret
dev-libs/glib:2
dev-libs/libxml2
media-fonts/font-adobe-100dpi
media-fonts/font-cursor-misc
media-fonts/font-misc-ethiopic
media-fonts/font-misc-misc
media-fonts/font-xfree86-type1
media-libs/alsa-lib
media-libs/fontconfig
media-libs/freetype
media-libs/gst-plugins-base:1.0
media-libs/gstreamer:1.0
media-libs/libogg
media-libs/libpng
media-libs/libpulse
media-libs/libvorbis
media-libs/mesa
media-libs/speex
media-libs/speexdsp
net-libs/libsoup:2.4
net-libs/webkit-gtk:4
sys-apps/util-linux
sys-libs/libcxx
sys-libs/libcxxabi
sys-libs/zlib
virtual/krb5
virtual/libudev
x11-libs/cairo
x11-libs/gdk-pixbuf:2
x11-libs/gtk+:2
x11-libs/gtk+:3
x11-libs/libX11
x11-libs/libXaw
x11-libs/libXcomposite
x11-libs/libXdamage
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXinerama
x11-libs/libXmu
x11-libs/libXrender
x11-libs/libXt
x11-libs/pango
${BDEPEND}
!hdx? ( !media-plugins/hdx-realtime-media-engine )
usb? ( virtual/libudev )
"
pkg_nofetch() {
elog "Download the client file ${A} from
https://www.citrix.com/downloads/workspace-app/"
elog "and place it into your DISTDIR directory."
}
pkg_setup() {
case ${ARCH} in
amd64)
ICAARCH=linuxx64
;;
x86)
ICAARCH=linuxx86
;;
*)
eerror "Given architecture is not supported by Citrix."
;;
esac
}
src_unpack() {
default
mv "${WORKDIR}/${ICAARCH}/${ICAARCH}.cor" "${S}" || die
}
src_prepare() {
default
rm lib/UIDialogLibWebKit.so || die
cp nls/en/module.ini . || die
if use usb; then
# inspired by debian usb support package postinst
sed -i -e 's/^[ \t]*VirtualDriver[ \t]*=.*$/&, GenericUSB/' module.ini || die
sed -i -e '/\[ICA 3.0\]/a\GenericUSB=on' module.ini || true
echo "[GenericUSB]" >> module.ini || true
echo "DriverName=VDGUSB.DLL" >> module.ini
fi
if use hdx; then
"${BROOT}${ICAROOT}"/rtme/RTMEconfig -install -ignoremm || die
mv new_module.ini module.ini || die
fi
mv module.ini config/ || die
}
src_install() {
local bin tmpl dest
dodir "${ICAROOT}"
keepdir /etc/icaclient
insinto "${ICAROOT}"
exeinto "${ICAROOT}"
doexe *.DLL libproxy.so wfica AuthManagerDaemon PrimaryAuthManager selfservice ServiceRecord
if use usb; then
doexe usb/ctxusb usb/ctxusbd usb/ctx_usb_isactive
doins usb/*.DLL
insinto /etc/icaclient
doins usb/usb.conf
dosym ../../../etc/icaclient/usb.conf "${ICAROOT}"/usb.conf
insinto "${ICAROOT}"
fi
exeinto "${ICAROOT}"/lib
doexe lib/*.so
for dest in "${ICAROOT}"{,/nls/en{,.UTF-8}} ; do
insinto "${dest}"
doins nls/en.UTF-8/eula.txt
done
insinto "${ICAROOT}"/config
doins config/*
mv "${ED}/${ICAROOT}"/config/module.ini "${ED}"/etc/icaclient/ || die
dosym ../../../../etc/icaclient/module.ini "${ICAROOT}"/config/module.ini
for tmpl in {appsrv,wfclient}.template ; do
newins nls/en/${tmpl} ${tmpl/template/ini}
done
touch "${ED}/${ICAROOT}"/config/.server || die
insinto "${ICAROOT}"/gtk
doins gtk/*
insinto "${ICAROOT}"/gtk/glade
doins gtk/glade/*
insinto "${ICAROOT}"/site
doins -r site/*
dodir "${ICAROOT}"/help
insinto "${ICAROOT}"/config/usertemplate
doins config/usertemplate/*
local lang LANGCODES=( en )
use l10n_de && LANGCODES+=( de )
use l10n_es && LANGCODES+=( es )
use l10n_fr && LANGCODES+=( fr )
use l10n_ja && LANGCODES+=( ja )
use l10n_zh-CN && LANGCODES+=( zh_CN )
for lang in ${LANGCODES[@]} ; do
insinto "${ICAROOT}"/nls/${lang}
doins nls/${lang}/*
insinto "${ICAROOT}"/nls/$lang/UTF-8
doins nls/${lang}.UTF-8/*
insinto "${ICAROOT}"/nls/${lang}/LC_MESSAGES
doins nls/${lang}/LC_MESSAGES/*
insinto "${ICAROOT}"/nls/${lang}
dosym UTF-8 "${ICAROOT}"/nls/${lang}/utf8
for tmpl in {appsrv,wfclient}.template ; do
cp "${ED}/${ICAROOT}"/nls/${lang}/${tmpl} \
"${ED}/${ICAROOT}"/nls/${lang}/${tmpl/template/ini} \
|| die
done
done
insinto "${ICAROOT}"/nls
dosym en /opt/Citrix/ICAClient/nls/C
insinto "${ICAROOT}"/icons
doins icons/*
insinto "${ICAROOT}"/keyboard
doins keyboard/*
cp -a util "${ED}/${ICAROOT}" || die
test -f util/HdxRtcEngine && fperms 0755 "${ICAROOT}"/util/HdxRtcEngine
dosym ../../../../etc/ssl/certs "${ICAROOT}"/keystore/cacerts
insinto "${ICAROOT}"/keystore/intcerts
doins keystore/intcerts/*
local other_files=(
icasessionmgr
NativeMessagingHost
UtilDaemon
)
exeinto "${ICAROOT}"
for bin in ${other_files[@]} ; do
doexe ${bin}
done
# https://bugs.gentoo.org/655922
dosym gst_play1.0 "${ICAROOT}"/util/gst_play
dosym gst_read1.0 "${ICAROOT}"/util/gst_read
dosym libgstflatstm1.0.so "${ICAROOT}"/util/libgstflatstm.so
doenvd "${FILESDIR}"/10ICAClient
for bin in configmgr conncenter new_store ; do
make_wrapper ${bin} "${ICAROOT}"/util/${bin} . "${ICAROOT}"/util
done
for bin in selfservice wfica ; do
make_wrapper ${bin} "${ICAROOT}"/${bin} . "${ICAROOT}"
done
dodir /etc/revdep-rebuild/
echo "SEARCH_DIRS_MASK=\"${ICAROOT}\"" \
> "${ED}"/etc/revdep-rebuild/70icaclient
insinto "${ICAROOT}"/pkginf
newins "${WORKDIR}"/PkgId Ver.core."${ICAARCH}"
# 651926
domenu "${FILESDIR}"/*.desktop
insinto /usr/share/mime/packages
doins desktop/Citrix-mime_types.xml
}
pkg_preinst() {
# previous versions of the ebuild created that and left it around
# we own it now and avoid conflict warnings with this
rm -f "${ROOT}${ICAROOT}/config/module.ini"
}
pkg_postinst() {
xdg_desktop_database_update
xdg_mimeinfo_database_update
if ! use hdx; then
if [ -x "${ROOT}${ICAROOT}"/rtme/RTMEconfig ]; then
ewarn "Starting from 22.12.0.12 you have to set USE=hdx if you want"
ewarn "to use media-plugins/hdx-realtime-media-engine. Which does"
ewarn "not need to be explicitly installed anymore."
fi
fi
if use usb; then
einfo
einfo "Add users of ${CATEGORY}/${PN} to group 'usb' for redirect to work"
einfo
fi
}
pkg_postrm() {
xdg_desktop_database_update
xdg_mimeinfo_database_update
}