net-misc/icaclient: bump to 22.12.0.12

Here we do not just bump the version but also change the way we deal
with the shared config file between this ebuild and its plugin
media-plugins/hdx-realtime-media-engine.
Also we move the rdep to sys-libs/llvm-libunwind to the plugin. And if
the user wants hdx support on icaclient they have to set a USE flag. The
plugin will not work if icaclient is not built with support for it and
the plugin itself contains the tool to enable itself so we turn the dep
chain around, the plugin is even a bdep of the application.

Closes: https://bugs.gentoo.org/883775
Closes: https://bugs.gentoo.org/881637
Signed-off-by: Henning Schild <henning@hennsch.de>
Closes: https://github.com/gentoo/gentoo/pull/28493
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Henning Schild
2022-12-01 15:40:48 +01:00
committed by Sam James
parent 4d897a8541
commit c9fc0e563e
4 changed files with 369 additions and 0 deletions

View File

@@ -0,0 +1,88 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit unpacker
MY_PV="$(ver_cut 1-3)"
DESCRIPTION="HDX RealTime Media Engine plugin for Citrix Workspace App"
HOMEPAGE="https://www.citrix.com/"
SRC_URI="amd64? ( HDX_RealTime_Media_Engine_${MY_PV}_for_Linux_x64.zip )
x86? ( HDX_RealTime_Media_Engine_${MY_PV}_for_Linux.zip )"
LICENSE="icaclient"
SLOT="0"
KEYWORDS="~amd64 ~x86"
RESTRICT="fetch mirror strip"
BDEPEND="app-arch/unzip"
RDEPEND="
sys-libs/llvm-libunwind
|| (
media-video/pipewire
media-sound/pulseaudio
media-sound/apulse
)
!<net-misc/icaclient-22.12.0.12
"
ICAROOT="/opt/Citrix/ICAClient"
QA_PREBUILT="${ICAROOT#/}/*"
S="${WORKDIR}/usr/local/bin"
pkg_nofetch() {
elog "Download the client file ${A} from"
elog "https://www.citrix.com/de-de/downloads/citrix-receiver/additional-client-software/hdx-realtime-media-engine-ltsrcu-latest.html"
elog "and place it into your DISTDIR directory."
}
pkg_setup() {
case ${ARCH} in
amd64)
zip_dir="x86_64"
zip_arch="amd64"
;;
x86)
zip_dir="i386"
zip_arch="i386"
;;
esac
}
src_unpack() {
default
local MY_T="${WORKDIR}/HDX_RealTime_Media_Engine_${MY_PV}_for_Linux$(usex amd64 '_x64' '')"
local deb_base_name="citrix-hdx-realtime-media-engine"
unpack_deb ${MY_T}/${zip_dir}/${deb_base_name}_$(ver_rs 3 -)_${zip_arch}.deb
}
src_install() {
insinto "${ICAROOT}/rtme"
# No, we do NOT install such a generic udev rule into the system
local destfiles=(
DialTone_US.wav
EULA.rtf
InboundCallRing.wav
)
local el
for el in "${destfiles[@]}" ; do
doins "${el}"
done
exeinto "${ICAROOT}"/rtme
doexe RTMEconfig RTMediaEngineSRV
for el in /var/{lib,log}/RTMediaEngineSRV /var/lib/Citrix/HDXRMEP ; do
keepdir ${el}
fperms a+rw ${el}
done
insinto "${ICAROOT}"
doins HDXRTME.so
}

View File

@@ -1,6 +1,8 @@
DIST linuxx64-22.11.0.19.tar.gz 160489578 BLAKE2B ea6c5aab678746da64b0fa8329f5ffad871e5f42b4c6aa59f87daf6f8ca9a8901b690871376a79724fe835f9a9c026eb6bdf1ff55419ade62ebf472d25164dfa SHA512 5dab1616303f384d06ff6b2cc5c0ed0d9026745729ae503d03c7bddc6cebc536236c679d20886a94a2a241d1cfd96fd7fd766368ca779dacf0ff1785b36f5040
DIST linuxx64-22.12.0.12.tar.gz 165269811 BLAKE2B 7735357f38d9438137792fc1d1febfdda6ca464fc43f573dffb4a33fffca052a78b8b61277cffd9287efcbc3823529e707140e7c9c1f9502c768528d2018b71d SHA512 bbe002d32e6d3819ab76ecef7fe7b62fff14da409d1b13c6edfc947cd46b0919d0f1972e7c1581d871bbe341ea50d3cf0da797f53f97b8e370610b37048f9a31
DIST linuxx64-22.5.0.16.tar.gz 162733197 BLAKE2B 32b4fd64d6bccf8a3be92e8f8ee59059839f31f4f771a6344fea320d2b635174c31c9e8d572a700568bab6032352fe72657dce1ee752327ed856370fa86acf9a SHA512 796ecbccc60995baae2082b5b275d7bf1482b19aed198de6d9f4083b2a3a68ff2fe73dfd1d3d33f0f885a157a77f20de008635eade36d5f9adff6b662aaefc1b
DIST linuxx64-22.9.0.21.tar.gz 160511942 BLAKE2B 43b671bc5c5eac968d2d6fd55615dce0d19206e9d64124b7e3dabf4311837c5cfe9ac25867b01795b9dc019f993a4507e852f84faba5116d58bdc4c85b784d85 SHA512 ebfd3fd51a61e0d419833fa0393a311b7c22331b6d950d985437ad992af96a96a9b1ea7d6c085e23593c6fcd46a8f946ca6c7b942d6919226bfc847a831fb95c
DIST linuxx86-22.11.0.19.tar.gz 146472406 BLAKE2B b685de8438087a67011d78cb6b56cdeae18185477b179bd2419e240709cf8333410f774facddc17cf23042a99deca5c9f77c24034e2d0b0b4decc57c38f326fb SHA512 6a0160a6e88eda43dcdfccdfb29fbb6f73f335b6a0f41dc2715a741be8c1019d49b5f6de68e67b5af0a03fd27cca748d0b9db25ef7a1e66e54770bf9716af3fa
DIST linuxx86-22.12.0.12.tar.gz 147837116 BLAKE2B d5f1c53d1f2d2ecb95e67df256a667df733251a99dd4a5e9584554521c4f1b1fbd065dfd8b1c4ba344a543c5cd7dde4a939e3d4d82f658e7dae42c07527b645e SHA512 8e9c4262dcd7731b88ae43a663d5901a21a9ede2feed163b538f5fb475f0eba8768a08715db5e9c8fa809442140d1ef03d4d4e509cb83142bea806855615a6b3
DIST linuxx86-22.5.0.16.tar.gz 144032901 BLAKE2B 0f58adf7645eaba6ad75e126381ecfecf7434130b0e69bed75a0499386c5301475a48e414ce57aebdfeaea0cb6615ae93b48ecfdd0149851a56459d687d75bb7 SHA512 b94a3de41118d08f3ff549de33e80a85198a3db1349177cc5c921cdd45f1d5bb7e1ee338067602725a9bed16619216f552f98314d539915a251f020094ae3121
DIST linuxx86-22.9.0.21.tar.gz 146501445 BLAKE2B 823a9f063448351ada3a0c552c0175b540f9403c8ee844232ae23cccfd9199acd46e0a2c21e9c051c4a84f2700261e0a4d9b6fcbfc133c6cdbeca29fa256ba68 SHA512 7f2d39ef279c704004a371a4b95b48f2be4ed32de7406dd877ce585e22fb523a39b90a7e1cd968205d55c708ebe80fa1a85d9677cc1feb819b1843f445908f2b

View File

@@ -0,0 +1,276 @@
# Copyright 1999-2022 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"
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
"
BEPEND="
hdx? ( >=media-plugins/hdx-realtime-media-engine-2.9.500.2802-r1 )
"
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-misc-misc
media-fonts/font-cursor-misc
media-fonts/font-xfree86-type1
media-fonts/font-misc-ethiopic
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/libpulse
media-libs/libvorbis
media-libs/mesa
media-libs/speex
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-2.9.500.2802-r1 )
"
DEPENDS=""
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 .
if use hdx; then
"${BROOT}${ICAROOT}"/rtme/RTMEconfig -install -ignoremm
mv new_module.ini module.ini
fi
mv module.ini config/
}
src_install() {
local bin tmpl dest
dodir "${ICAROOT}"
exeinto "${ICAROOT}"
doexe *.DLL libproxy.so wfica AuthManagerDaemon PrimaryAuthManager selfservice ServiceRecord
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}"
doins -r usb
insinto "${ICAROOT}"/config
doins config/*
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
rm -r "${S}"/keystore/cacerts || die
dosym ../../../../etc/ssl/certs "${ICAROOT}"/keystore/cacerts
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
}
pkg_postrm() {
xdg_desktop_database_update
xdg_mimeinfo_database_update
}

View File

@@ -9,4 +9,7 @@
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
<use>
<flag name="hdx">Install and enable hdx-realtime-media-engine plugin</flag>
</use>
</pkgmetadata>