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