Magellan Linux

Annotation of /smage/trunk/core/ica-client/ica-client-19.3.0.5-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 14403 - (hide annotations) (download)
Mon Jul 13 08:11:33 2020 UTC (3 years, 10 months ago) by niro
File size: 9485 byte(s)
-marked disabled
1 niro 13100 # $Id$
2    
3     PNAME="ica-client"
4     PVER="19.3.0.5"
5     PBUILD="r1"
6    
7 niro 14403 STATE="disabled"
8 niro 13100 PCAT="net-misc"
9    
10     DESCRIPTION="Citrix ICA client."
11     HOMEPAGE="http://www.citrix.com/"
12    
13     # install usb daemon, 1=true/ 0=false
14     USBDAEMON=0
15     # install no x11 components from platform SDK
16     NOX11COMPONENTS=1
17    
18     SPECIAL_VARS="USBDAEMON NOX11COMPONENTS"
19    
20     DEPEND=">= sys-libs/libstdc++-5.1
21     >= sys-libs/zlib-1.2
22     >= dev-libs/glib2-2.56
23     >= dev-libs/atk-2.28
24     >= dev-libs/libxml2-2.9
25     >= net-dns/libidn-1.35
26     >= net-libs/libcurl-7
27     >= x11-libs/libX11-1.6
28     >= x11-libs/libXext-1.3
29     >= x11-libs/libXfixes-5
30     >= x11-libs/libXinerama-1.1
31     >= x11-libs/libXrender-0.9
32     >= x11-libs/cairo-1.14
33     >= x11-libs/gdk-pixbuf-2.36
34     >= x11-libs/pango-1.42
35     >= x11-libs/gtk2+-2.24
36     >= media-fonts/font-adobe-75dpi-1"
37    
38     # >= media-libs/alsa-lib-1.0.29
39     # >= media-libs/libogg-1.3
40     # >= media-libs/libvorbis-1.3
41    
42     if [[ ${USBDAEMON} = 1 ]]
43     then
44     DEPEND="${DEPEND}
45     >= sys-fs/udev-230"
46     fi
47    
48     SDEPEND=">= virtual/sed"
49    
50     SRCFILE="linuxx86-${PVER}.tar.gz"
51     SRCDIR="${BUILDDIR}/${PNAME}-${PVER}"
52    
53     # no X storebrowse etc
54     PLATFORM_SDK_SRCFILE="PlatformOptimizationSDK.linux-${PVER}.tgz"
55    
56     # only keep the essential files to run wfica, pnabrowse or storebrowse
57     ALX_PKG_KEEP="etc/env.d/10ica-client
58     opt/Citrix/ICAClient/AuthManagerDaemon
59     opt/Citrix/ICAClient/CHARICONV.DLL
60     opt/Citrix/ICAClient/PDCRYPT1.DLL
61     opt/Citrix/ICAClient/PrimaryAuthManager
62     opt/Citrix/ICAClient/ServiceRecord
63     opt/Citrix/ICAClient/libctxssl.so
64     opt/Citrix/ICAClient/libproxy.so
65     opt/Citrix/ICAClient/wfica
66     opt/Citrix/ICAClient/wfica.X
67     opt/Citrix/ICAClient/wfica.no_X
68     opt/Citrix/ICAClient/config
69     opt/Citrix/ICAClient/gtk
70     opt/Citrix/ICAClient/icons/receiver.png
71     opt/Citrix/ICAClient/keyboard/keyboard.ini
72     opt/Citrix/ICAClient/keyboard/automatic.kbd
73     opt/Citrix/ICAClient/keyboard/linux.kbd
74     opt/Citrix/ICAClient/keystore/cacerts
75     opt/Citrix/ICAClient/lib/UIDialogLib.so
76     opt/Citrix/ICAClient/lib/libAMSDK.so
77     opt/Citrix/ICAClient/nls/C
78     opt/Citrix/ICAClient/nls/en/appsrv.ini
79     opt/Citrix/ICAClient/nls/en/appsrv.template
80     opt/Citrix/ICAClient/nls/en/eula.txt
81     opt/Citrix/ICAClient/nls/en/module.ini
82     opt/Citrix/ICAClient/nls/en/pna.nls
83     opt/Citrix/ICAClient/nls/en/wfclient.ini
84     opt/Citrix/ICAClient/nls/en/wfclient.template
85     opt/Citrix/ICAClient/nls/en.UTF-8/eula.txt
86     opt/Citrix/ICAClient/nls/en.UTF8
87     opt/Citrix/ICAClient/nls/en.utf8
88     opt/Citrix/ICAClient/util/ctx_rehash
89     opt/Citrix/ICAClient/util/new_store
90     opt/Citrix/ICAClient/util/pnabrowse
91     opt/Citrix/ICAClient/util/pnabrowse_launch
92     opt/Citrix/ICAClient/util/storebrowse
93     opt/Citrix/ICAClient/eula.txt
94     usr/bin/wfica
95     usr/bin/pnabrowse
96     usr/bin/storebrowse"
97    
98     if [[ ${USBDAEMON} = 1 ]]
99     then
100     ALX_PKG_KEEP+=" usr/lib/systemd/system/ctxusb.service
101     usr/lib/udev/rules.d/85-ctxusbd.rules
102     opt/Citrix/ICAClient/ctx_usb_isactive
103     opt/Citrix/ICAClient/usb.conf
104     opt/Citrix/ICAClient/VDGUSB.DLL
105     opt/Citrix/ICAClient/ctxusbd
106     opt/Citrix/ICAClient/ctxusb
107     usr/bin/ctx_usb_isactive
108     usr/bin/ctxusb
109     usr/sbin/ctxusbd
110     etc/tmpfiles.d/ctxusb.conf"
111     fi
112    
113     sminclude mtools udev systemd alx-split
114    
115     # += to add injection files (alx.sminc)
116     SRC_URI+=(
117     http://download2.citrix.com/FILES/en/products/Linux${PVER:0:2}/${SRCFILE}
118     mirror://ica-client/${SRCFILE}
119     )
120    
121     if [[ ${USBDAEMON} = 1 ]]
122     then
123     SRC_URI+=( mirror://ica-client/ctxusbd.service
124     mirror://ica-client/ctxusbd.rules
125     mirror://ica-client/ctxusbd.tmpfilesd )
126     fi
127    
128     if [[ ${NOX11COMPONENTS} = 1 ]]
129     then
130     SRC_URI+=( mirror://ica-client/${PLATFORM_SDK_SRCFILE} )
131     fi
132    
133     install_from_psf()
134     {
135     local psf line type file symlink pkg attr user group
136     psf="$1"
137    
138     minstalldir /opt/Citrix/ICAClient || die
139    
140     cat ${psf} | while read line
141     do
142     set $line
143     type="$1"
144     file="$2"
145     case $type in
146     s|h)
147     symlink="$3"
148     shift
149     ;;
150     d|f)
151     symlink=""
152     ;;
153     esac
154    
155     pkg="$3"
156     attr="$4"
157     user="$5"
158     group="$6"
159    
160     case ${file} in
161     .) continue ;;
162     esac
163    
164     case ${type} in
165     d)
166     minstalldir /opt/Citrix/ICAClient/${file} || die
167     ;;
168     f)
169     case ${attr} in
170     555) minstallexec ${file} /opt/Citrix/ICAClient/${file} || die ;;
171     444) minstallfile ${file} /opt/Citrix/ICAClient/${file} || die ;;
172     esac
173     ;;
174     s)
175     mlink ${symlink} /opt/Citrix/ICAClient/${file} || die
176     ;;
177     h)
178     mlink ${symlink} /opt/Citrix/ICAClient/${file} || die
179     ;;
180     esac
181     done
182     }
183    
184     src_prepare()
185     {
186     munpack ${SRCFILE} ${SRCDIR} || die
187     if [[ ${NOX11COMPONENTS} = 1 ]]
188     then
189     munpack ${PLATFORM_SDK_SRCFILE} ${SRCDIR} || die
190     fi
191     cd ${SRCDIR}/linuxx86/linuxx86.cor
192    
193     sed 's:###ICAROOT###:/opt/Citrix/ICAClient:g' usb/ctxusbd.rc usb/ica-usb.rules || die
194     }
195    
196     alx_generic_src_install()
197     {
198     cd ${SRCDIR}/linuxx86/linuxx86.cor
199    
200     minstalldir /opt/Citrix/ICAClient || die
201     # read psf file and install files and symlinks
202     install_from_psf ${SRCDIR}/linuxx86/linuxx86.psf || die
203    
204     # eula symlink is a must or wfica and co will not find UIDialog.so
205     mlink ./nls/en.UTF-8/eula.txt /opt/Citrix/ICAClient/eula.txt || die
206     mlink ../en.UTF-8/eula.txt /opt/Citrix/ICAClient/nls/en/eula.txt || die
207    
208     # symlink some inis to config dir from nls dir
209     minstalldir /opt/Citrix/ICAClient/config || die
210     mlink ../nls/en/appsrv.template /opt/Citrix/ICAClient/config/appsrv.template || die
211     mlink ../nls/en/module.ini /opt/Citrix/ICAClient/config/module.ini || die
212     mlink ../nls/en/wfclient.template /opt/Citrix/ICAClient/config/wfclient.template || die
213    
214     # make this installation a server installation to seperate config files for every user
215     memptyfile /opt/Citrix/ICAClient/config/.server || die
216    
217     # create wfica.sh
218     MCONFIG="/opt/Citrix/ICAClient/wfica.sh"
219     mclearconfig || die
220     maddconfig '#!/bin/sh' || die
221     maddconfig 'ICAROOT=/opt/Citrix/ICAClient' || die
222     maddconfig 'export ICAROOT' || die
223     maddconfig 'LD_LIBRARY_PATH=${ICAROOT}/lib' || die
224     maddconfig 'export LD_LIBRARY_PATH' || die
225     maddconfig '$ICAROOT/wfica -file $1' || die
226     mchmod 0755 /opt/Citrix/ICAClient/wfica.sh || die
227    
228     # create wfica_assoc.sh
229     MCONFIG="/opt/Citrix/ICAClient/wfica_assoc.sh"
230     mclearconfig || die
231     maddconfig '#!/bin/sh' || die
232     maddconfig 'ICAROOT=/opt/Citrix/ICAClient' || die
233     maddconfig 'export ICAROOT' || die
234     maddconfig '$ICAROOT/wfica -associate -fileparam $1' || die
235     mchmod 0755 /opt/Citrix/ICAClient/wfica_assoc.sh || die
236    
237     # install wrappers to prevent slowdowns with other locales than 'C'
238     minstalldir /usr/bin || die
239     MCONFIG="/usr/bin/wfica"
240     mclearconfig || die
241     maddconfig 'env LC_ALL="" LANG="" LD_LIBRARY_PATH="/opt/Citrix/ICAClient/lib" /opt/Citrix/ICAClient/wfica $*' || die
242     mchmod 0755 /usr/bin/wfica || die
243     MCONFIG="/usr/bin/pnabrowse"
244     mclearconfig || die
245     maddconfig 'env LC_ALL="" LANG="" LD_LIBRARY_PATH="/opt/Citrix/ICAClient/lib" /opt/Citrix/ICAClient/util/pnabrowse $*' || die
246     mchmod 0755 /usr/bin/pnabrowse || die
247     MCONFIG="/usr/bin/storebrowse"
248     mclearconfig || die
249     maddconfig 'env LC_ALL="" LANG="" LD_LIBRARY_PATH="/opt/Citrix/ICAClient/lib" /opt/Citrix/ICAClient/util/storebrowse $*' || die
250     mchmod 0755 /usr/bin/storebrowse || die
251    
252     # fixes some hardcoded pathes
253     minstalldir /etc/env.d || die
254     MCONFIG="/etc/env.d/10ica-client"
255     mclearconfig || die
256     maddconfig 'ICAROOT=/opt/Citrix/ICAClient' || die
257    
258     # # set default browserprotocol to tcp/ip
259     # # ( citrix named this in their config as UDP)
260     # sed -i "s:^\(BrowserProtocol=\).*:\1UDP:" ${BINDIR}/opt/Citrix/ICAClient/config/wfclient.template || die
261     #
262     # newer XenApp use https
263     sed -i "s:^\(BrowserProtocol=\).*:\1HTTPonTCP:" ${BINDIR}/opt/Citrix/ICAClient/config/wfclient.template || die
264    
265     # auto enable com port mapping for com1 and com2
266     sed -i 's:^\(\[WFClient\]\):\1\nComPort1=/dev/ttyS1\nComPort2=/dev/ttyS2\nLastComPortNum=2\n:' \
267     ${BINDIR}/opt/Citrix/ICAClient/config/wfclient.template || die
268    
269     if [[ ${USBDAEMON} = 1 ]]
270     then
271     cd ${SRCDIR}/linuxx86/linuxx86.cor/usb
272     mcopy -a \* /opt/Citrix/ICAClient || die
273     mdelete /opt/Citrix/ICAClient/ctxusbd.rc || die
274     minstallunit ctxusbd.service || die
275     minstalludevrule ctxusbd.rules 85-ctxusbd.rules || die
276     minstalldir /usr/bin || die
277     mlink /opt/Citrix/ICAClient/ctx_usb_isactive /usr/bin/ctx_usb_isactive || die
278     mlink /opt/Citrix/ICAClient/ctxusb /usr/bin/ctxusb || die
279     minstalldir /usr/sbin || die
280     mlink /opt/Citrix/ICAClient/ctxusbd /usr/sbin/ctxusbd || die
281     minstalltmp ctxusbd.tmpfilesd ctxusbd.conf || die
282     fi
283    
284     # replace binaries but default wfica to X implementation
285     if [[ ${NOX11COMPONENTS} = 1 ]]
286     then
287     cd ${SRCDIR}/CitrixPluginSDK
288     minstallexec bin/pnabrowse.no_X /opt/Citrix/ICAClient/util/pnabrowse || die
289     minstallexec bin/storebrowse.no_X /opt/Citrix/ICAClient/util/storebrowse || die
290    
291     mmove ${BINDIR}/opt/Citrix/ICAClient/wfica /opt/Citrix/ICAClient/wfica.X || die
292     minstallexec bin/wfica_for_plugins /opt/Citrix/ICAClient/wfica.no_X || die
293     mlink wfica.X /opt/Citrix/ICAClient/wfica || die
294     fi
295    
296     # insert our company cert
297     mcinjectfile ESA-CA.pem /opt/Citrix/ICAClient/keystore/cacerts/ || die
298     # rehash all certificates
299     ICAROOT=${BINDIR}/opt/Citrix/ICAClient/keystore/cacerts ${BINDIR}/opt/Citrix/ICAClient/util/ctx_rehash || die
300     }
301    
302     preinstall()
303     {
304     add_conf_prot_mask /etc/env.d
305     }
306    
307     postinstall()
308     {
309     if [[ ${NOX11COMPONENTS} = 1 ]]
310     then
311     # replace wfica on serversystem with no_X version
312     if [[ -n $(magequery -n serversystem) ]]
313     then
314     ln -snf wfica.no_X ${MROOT}/opt/Citrix/ICAClient/wfica
315     fi
316     fi
317    
318     if [[ ${USBDAEMON} = 1 ]]
319     then
320     [ -d ${MROOT}/run/ctxusbd ] || install -d ${MROOT}/run/ctxusbd
321     mstartunit ctxusbd.service
322     fi
323     }
324    
325     postremove()
326     {
327     # always try to stop this service
328     mstopunit ctxusbd.service
329     }