Magellan Linux

Contents of /smage/trunk/core/ica-client/ica-client-20.06.0.15-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 15478 - (show annotations) (download)
Mon Sep 7 10:07:15 2020 UTC (3 years, 7 months ago) by niro
File size: 9674 byte(s)
-disabled
1 # $Id$
2
3 PNAME="ica-client"
4 PVER="20.06.0.15"
5 PBUILD="r1"
6
7 STATE="disabled"
8 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 }