Magellan Linux

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