Magellan Linux

Annotation of /smage/trunk/core/ica-client/ica-client-13.8.0.10299729-r3.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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