Magellan Linux

Contents of /smage/branches/alx07x-unstable/core/ica-client/ica-client-13.8.0.10299729-r4.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 15518 - (show annotations) (download)
Wed Sep 9 13:53:34 2020 UTC (3 years, 7 months ago) by niro
File size: 13499 byte(s)
-release branches/alx07x-unstable
1 # $Id$
2
3 PNAME="ica-client"
4 PVER="13.8.0.10299729"
5 PBUILD="r4"
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 ENABLE_USBDAEMON=0
14 # install no x11 components from platform SDK
15 ENABLE_NOX11COMPONENTS=1
16 # create a split dev-package, 1=true/ 0=false
17 ENABLE_DEV_PACKAGE=1
18
19 SPECIAL_VARS="ENABLE_USBDAEMON ENABLE_NOX11COMPONENTS"
20
21 SPLIT_PACKAGES="ica-client-common ica-client-libs ica-client-wfica ica-client-pnabrowse ica-client-storebrowse ica-client"
22
23 if [[ ${ENABLE_USBDAEMON} = 1 ]]
24 then
25 SPLIT_PACKAGES+=" ica-client-usbdaemon"
26 fi
27
28 if [[ ${ENABLE_DEV_PACKAGE} = 1 ]]
29 then
30 SPLIT_PACKAGES+=" ica-client-dev"
31 fi
32
33 LIBS_DEPEND=">= sys-libs/libstdc++-5.1"
34 COMMON_DEPEND=">= sys-libs/zlib-1.2
35 >= net-dns/libidn-1.31"
36 STOREBROWSE_DEPEND=">= dev-libs/libxml2-2.9"
37 CLIENT_DEPEND=">= dev-libs/glib2-2.44
38 >= dev-libs/atk-2.16
39 >= net-libs/libcurl-7
40 >= x11-libs/libX11-1.6
41 >= x11-libs/libXext-1.3
42 >= x11-libs/libXfixes-5
43 >= x11-libs/libXinerama-1.1
44 >= x11-libs/libXrender-0.9
45 >= x11-libs/cairo-1.14
46 >= x11-libs/gdk-pixbuf-2.30
47 >= x11-libs/pango-1.36
48 >= x11-libs/gtk2+-2.24
49 >= media-fonts/font-adobe-75dpi-1"
50 # >= media-libs/alsa-lib-1.0.29
51 # >= media-libs/libogg-1.3
52 # >= media-libs/libvorbis-1.3
53
54 if [[ ${ENABLE_USBDAEMON} = 1 ]]
55 then
56 USB_DEPEND="${LIBS_DEPEND}
57 >= sys-fs/udev-218"
58 fi
59
60 SDEPEND=">= virtual/sed
61 ${LIBS_DEPEND}
62 ${COMMON_DEPEND}
63 ${STOREBROWSE_DEPEND}
64 ${CLIENT_DEPEND}"
65
66 if [[ ${ENABLE_USBDAEMON} = 1 ]]
67 then
68 SDEPEND="${SDEPEND}
69 ${USB_DEPEND}"
70 fi
71
72 SRCFILE="linuxx86-${PVER}.tar.gz"
73 SRCDIR="${BUILDDIR}/${PNAME}-${PVER}"
74
75 # no X storebrowse etc
76 PLATFORM_SDK_SRCFILE="PlatformOptimizationSDK.linux-${PVER}.tgz"
77
78 sminclude mtools udev systemd alx
79
80 # += to add injection files (alx.sminc)
81 SRC_URI+=(
82 http://download2.citrix.com/FILES/en/products/Linux${PVER:0:2}/${SRCFILE}
83 mirror://ica-client/${SRCFILE}
84 )
85
86 if [[ ${ENABLE_USBDAEMON} = 1 ]]
87 then
88 SRC_URI+=( mirror://ica-client/ctxusbd.service
89 mirror://ica-client/ctxusbd.rules
90 mirror://ica-client/ctxusbd.tmpfilesd )
91 fi
92
93 if [[ ${ENABLE_NOX11COMPONENTS} = 1 ]]
94 then
95 SRC_URI+=( mirror://ica-client/${PLATFORM_SDK_SRCFILE} )
96 fi
97
98 split_info_ica-client-common()
99 {
100 DESCRIPTION="Citrix ICA client - common files."
101 DEPEND=""
102 }
103
104 split_info_ica-client-libs()
105 {
106 DESCRIPTION="Citrix ICA client - minimal libs for pnabrowse/storebrowse/wfica.no_X"
107 DEPEND="${LIBS_DEPEND}"
108 }
109
110 split_info_ica-client-wfica()
111 {
112 DESCRIPTION="Citrix ICA client - wfica utility."
113 DEPEND="== net-misc/ica-client-common-${PVER}
114 == net-misc/ica-client-libs-${PVER}
115 ${COMMON_DEPEND}"
116 }
117
118 split_info_ica-client-pnabrowse()
119 {
120 DESCRIPTION="Citrix ICA client - pnabrowse utility."
121 DEPEND="== net-misc/ica-client-common-${PVER}
122 == net-misc/ica-client-libs-${PVER}
123 == net-misc/ica-client-wfica-${PVER}"
124 }
125
126 split_info_ica-client-storebrowse()
127 {
128 DESCRIPTION="Citrix ICA client - storebrowse utility."
129 DEPEND="== net-misc/ica-client-common-${PVER}
130 == net-misc/ica-client-libs-${PVER}
131 == net-misc/ica-client-wfica-${PVER}
132 ${STOREBROWSE_DEPEND}"
133
134 }
135
136 split_info_ica-client()
137 {
138 DESCRIPTION="Citrix ICA client."
139 DEPEND="== net-misc/ica-client-common-${PVER}
140 == net-misc/ica-client-libs-${PVER}
141 == net-misc/ica-client-wfica-${PVER}
142 == net-misc/ica-client-pnabrowse-${PVER}
143 == net-misc/ica-client-storebrowse-${PVER}
144 ${CLIENT_DEPEND}"
145 }
146
147 split_info_ica-client-usbdaemon()
148 {
149 DESCRIPTION="Citrix ICA client - usb daemon."
150 DEPEND="${USB_DEPEND}"
151 }
152
153 split_info_ica-client-dev()
154 {
155 DESCRIPTION="Citrix ICA client dev files."
156 DEPEND="== net-misc/ica-client-${PVER}"
157 }
158
159 install_from_psf()
160 {
161 local psf line type file symlink pkg attr user group
162 psf="$1"
163
164 minstalldir /opt/Citrix/ICAClient || die
165
166 cat ${psf} | while read line
167 do
168 set $line
169 type="$1"
170 file="$2"
171 case $type in
172 s|h)
173 symlink="$3"
174 shift
175 ;;
176 d|f)
177 symlink=""
178 ;;
179 esac
180
181 pkg="$3"
182 attr="$4"
183 user="$5"
184 group="$6"
185
186 case ${file} in
187 .) continue ;;
188 esac
189
190 case ${type} in
191 d)
192 minstalldir /opt/Citrix/ICAClient/${file} || die
193 ;;
194 f)
195 case ${attr} in
196 555) minstallexec ${file} /opt/Citrix/ICAClient/${file} || die ;;
197 444) minstallfile ${file} /opt/Citrix/ICAClient/${file} || die ;;
198 esac
199 ;;
200 s)
201 mlink ${symlink} /opt/Citrix/ICAClient/${file} || die
202 ;;
203 h)
204 mlink ${symlink} /opt/Citrix/ICAClient/${file} || die
205 ;;
206 esac
207 done
208 }
209
210 src_prepare()
211 {
212 munpack ${SRCFILE} ${SRCDIR} || die
213 if [[ ${ENABLE_NOX11COMPONENTS} = 1 ]]
214 then
215 munpack ${PLATFORM_SDK_SRCFILE} ${SRCDIR} || die
216 fi
217 cd ${SRCDIR}/linuxx86/linuxx86.cor
218
219 sed 's:###ICAROOT###:/opt/Citrix/ICAClient:g' usb/ctxusbd.rc usb/ica-usb.rules || die
220 }
221
222 src_compile()
223 {
224 cd ${SRCDIR}/linuxx86/linuxx86.cor
225
226 # install to a fake installdir to move them later in packaging phase
227 local old_bindir="${BINDIR}"
228 export BINDIR="${BUILDDIR}/fakeinstall"
229
230 # read psf file and install files and symlinks
231 minstalldir /opt/Citrix/ICAClient || die
232 install_from_psf ${SRCDIR}/linuxx86/linuxx86.psf || die
233
234 # eula symlink is a must or wfica and co will not find UIDialog.so
235 mlink ./nls/en.UTF-8/eula.txt /opt/Citrix/ICAClient/eula.txt || die
236 mlink ../en.UTF-8/eula.txt /opt/Citrix/ICAClient/nls/en/eula.txt || die
237
238 # symlink some inis to config dir from nls dir
239 minstalldir /opt/Citrix/ICAClient/config || die
240 mlink ../nls/en/appsrv.template /opt/Citrix/ICAClient/config/appsrv.template || die
241 mlink ../nls/en/module.ini /opt/Citrix/ICAClient/config/module.ini || die
242 mlink ../nls/en/wfclient.template /opt/Citrix/ICAClient/config/wfclient.template || die
243
244 # make this installation a server installation to seperate config files for every user
245 memptyfile /opt/Citrix/ICAClient/config/.server || die
246
247 # # set default browserprotocol to tcp/ip
248 # # ( citrix named this in their config as UDP)
249 # sed -i "s:^\(BrowserProtocol=\).*:\1UDP:" ${BINDIR}/opt/Citrix/ICAClient/config/wfclient.template || die
250 #
251 # newer XenApp use https
252 sed -i "s:^\(BrowserProtocol=\).*:\1HTTPonTCP:" ${BINDIR}/opt/Citrix/ICAClient/config/wfclient.template || die
253
254 # auto enable com port mapping for com1 and com2
255 sed -i 's:^\(\[WFClient\]\):\1\nComPort1=/dev/ttyS1\nComPort2=/dev/ttyS2\nLastComPortNum=2\n:' \
256 ${BINDIR}/opt/Citrix/ICAClient/config/wfclient.template || die
257
258 # fixes some hardcoded pathes
259 minstalldir /etc/env.d || die
260 MCONFIG="/etc/env.d/10ica-client"
261 mclearconfig || die
262 maddconfig 'ICAROOT=/opt/Citrix/ICAClient' || die
263
264 # create wfica.sh
265 MCONFIG="/opt/Citrix/ICAClient/wfica.sh"
266 mclearconfig || die
267 maddconfig '#!/bin/sh' || die
268 maddconfig 'ICAROOT=/opt/Citrix/ICAClient' || die
269 maddconfig 'export ICAROOT' || die
270 maddconfig 'LD_LIBRARY_PATH=${ICAROOT}/lib' || die
271 maddconfig 'export LD_LIBRARY_PATH' || die
272 maddconfig '$ICAROOT/wfica -file $1' || die
273 mchmod 0755 /opt/Citrix/ICAClient/wfica.sh || die
274
275 # create wfica_assoc.sh
276 MCONFIG="/opt/Citrix/ICAClient/wfica_assoc.sh"
277 mclearconfig || die
278 maddconfig '#!/bin/sh' || die
279 maddconfig 'ICAROOT=/opt/Citrix/ICAClient' || die
280 maddconfig 'export ICAROOT' || die
281 maddconfig '$ICAROOT/wfica -associate -fileparam $1' || die
282 mchmod 0755 /opt/Citrix/ICAClient/wfica_assoc.sh || die
283
284 # install wrappers to prevent slowdowns with other locales than 'C'
285 minstalldir /usr/bin || die
286 MCONFIG="/usr/bin/wfica"
287 mclearconfig || die
288 maddconfig 'env LC_ALL="" LANG="" LD_LIBRARY_PATH="/opt/Citrix/ICAClient/lib" /opt/Citrix/ICAClient/wfica $*' || die
289 mchmod 0755 /usr/bin/wfica || die
290 MCONFIG="/usr/bin/pnabrowse"
291 mclearconfig || die
292 maddconfig 'env LC_ALL="" LANG="" LD_LIBRARY_PATH="/opt/Citrix/ICAClient/lib" /opt/Citrix/ICAClient/util/pnabrowse $*' || die
293 mchmod 0755 /usr/bin/pnabrowse || die
294 MCONFIG="/usr/bin/storebrowse"
295 mclearconfig || die
296 maddconfig 'env LC_ALL="" LANG="" LD_LIBRARY_PATH="/opt/Citrix/ICAClient/lib" /opt/Citrix/ICAClient/util/storebrowse $*' || die
297 mchmod 0755 /usr/bin/storebrowse || die
298
299 # replace binaries but default wfica to X implementation
300 if [[ ${ENABLE_NOX11COMPONENTS} = 1 ]]
301 then
302 cd ${SRCDIR}/CitrixPluginSDK
303 minstallexec bin/pnabrowse.no_X /opt/Citrix/ICAClient/util/pnabrowse || die
304 minstallexec bin/storebrowse.no_X /opt/Citrix/ICAClient/util/storebrowse || die
305
306 mmove ${BINDIR}/opt/Citrix/ICAClient/wfica /opt/Citrix/ICAClient/wfica.X || die
307 minstallexec bin/wfica_for_plugins /opt/Citrix/ICAClient/wfica.no_X || die
308 mlink wfica.X /opt/Citrix/ICAClient/wfica || die
309 fi
310
311 # insert our company cert
312 mcinjectfile ESA-CA.pem /opt/Citrix/ICAClient/keystore/cacerts/ || die
313 # rehash all certificates
314 ICAROOT=${BINDIR}/opt/Citrix/ICAClient/keystore/cacerts ${BINDIR}/opt/Citrix/ICAClient/util/ctx_rehash || die
315
316 # reset bindir
317 export BINDIR="${old_bindir}"
318 }
319
320 src_install_ica-client-common()
321 {
322 cd ${BUILDDIR}/fakeinstall
323
324 # etc
325 minstalldir /etc || die
326 mmove etc/env.d /etc || die
327
328 # keystore + config + gtk
329 minstalldir /opt/Citrix/ICAClient || die
330 mmove opt/Citrix/ICAClient/config /opt/Citrix/ICAClient/ || die
331 mmove opt/Citrix/ICAClient/keystore /opt/Citrix/ICAClient/ || die
332 mmove opt/Citrix/ICAClient/gtk /opt/Citrix/ICAClient/ || die
333
334 # minimal nls
335 minstalldir /opt/Citrix/ICAClient/nls || die
336 mmove opt/Citrix/ICAClient/nls/en /opt/Citrix/ICAClient/nls/ || die
337 mmove opt/Citrix/ICAClient/nls/en.UTF-8 /opt/Citrix/ICAClient/nls/ || die
338 # nls symlinks
339 mmove opt/Citrix/ICAClient/nls/C /opt/Citrix/ICAClient/nls/ || die
340 mmove opt/Citrix/ICAClient/nls/en.UTF8 /opt/Citrix/ICAClient/nls/ || die
341 mmove opt/Citrix/ICAClient/nls/en.utf8 /opt/Citrix/ICAClient/nls/ || die
342
343 # eula
344 mmove opt/Citrix/ICAClient/eula.txt /opt/Citrix/ICAClient/ || die
345 }
346
347 src_install_ica-client-libs()
348 {
349 cd ${BUILDDIR}/fakeinstall
350
351 minstalldir /opt/Citrix/ICAClient/lib || die
352 mmove opt/Citrix/ICAClient/libproxy.so /opt/Citrix/ICAClient/ || die
353 mmove opt/Citrix/ICAClient/lib/libAMSDK.so /opt/Citrix/ICAClient/lib/ || die
354 }
355
356 src_install_ica-client-wfica()
357 {
358 cd ${BUILDDIR}/fakeinstall
359
360 minstalldir /opt/Citrix/ICAClient || die
361 mmove opt/Citrix/ICAClient/wfica /opt/Citrix/ICAClient/ || die
362 if [[ ${ENABLE_NOX11COMPONENTS} = 1 ]]
363 then
364 mmove opt/Citrix/ICAClient/wfica.X /opt/Citrix/ICAClient/ || die
365 mmove opt/Citrix/ICAClient/wfica.no_X /opt/Citrix/ICAClient/ || die
366 fi
367 minstalldir /usr/bin || die
368 mmove usr/bin/wfica /usr/bin/ || die
369 }
370
371 src_install_ica-client-pnabrowse()
372 {
373 cd ${BUILDDIR}/fakeinstall
374
375 minstalldir /opt/Citrix/ICAClient/util || die
376 mmove opt/Citrix/ICAClient/util/pnabrowse /opt/Citrix/ICAClient/util/ || die
377 mmove opt/Citrix/ICAClient/util/pnabrowse_launch /opt/Citrix/ICAClient/util/ || die
378 mmove opt/Citrix/ICAClient/CHARICONV.DLL /opt/Citrix/ICAClient/ || die
379 minstalldir /usr/bin || die
380 mmove usr/bin/pnabrowse /usr/bin/ || die
381 }
382
383 src_install_ica-client-storebrowse()
384 {
385 cd ${BUILDDIR}/fakeinstall
386
387 minstalldir /opt/Citrix/ICAClient/util || die
388 mmove opt/Citrix/ICAClient/util/storebrowse /opt/Citrix/ICAClient/util/ || die
389 mmove opt/Citrix/ICAClient/AuthManagerDaemon /opt/Citrix/ICAClient/ || die
390 mmove opt/Citrix/ICAClient/PrimaryAuthManager /opt/Citrix/ICAClient/ || die
391 mmove opt/Citrix/ICAClient/ServiceRecord /opt/Citrix/ICAClient/ || die
392 minstalldir /usr/bin || die
393 mmove usr/bin/storebrowse /usr/bin/ || die
394 }
395
396 src_install_ica-client()
397 {
398 cd ${BUILDDIR}/fakeinstall
399 minstalldir /opt/Citrix/ICAClient/ || die
400
401 # only keep the essential files to run wfica, pnabrowse or storebrowse
402 mmove opt/Citrix/ICAClient/PDCRYPT1.DLL /opt/Citrix/ICAClient/ || die
403 minstalldir /opt/Citrix/ICAClient/icons || die
404 mmove opt/Citrix/ICAClient/icons/receiver.png /opt/Citrix/ICAClient/icons/ || die
405 minstalldir /opt/Citrix/ICAClient/keyboard || die
406 mmove opt/Citrix/ICAClient/keyboard/keyboard.ini /opt/Citrix/ICAClient/keyboard/ || die
407 mmove opt/Citrix/ICAClient/keyboard/automatic.kbd /opt/Citrix/ICAClient/keyboard/ || die
408 mmove opt/Citrix/ICAClient/keyboard/linux.kbd /opt/Citrix/ICAClient/keyboard/ || die
409 minstalldir /opt/Citrix/ICAClient/lib || die
410 mmove opt/Citrix/ICAClient/lib/UIDialogLib.so /opt/Citrix/ICAClient/lib/ || die
411 minstalldir /opt/Citrix/ICAClient/util || die
412 mmove opt/Citrix/ICAClient/util/new_store /opt/Citrix/ICAClient/util/ || die
413 }
414
415 src_install_ica-client-usbdaemon()
416 {
417 cd ${SRCDIR}/linuxx86/linuxx86.cor/usb
418 mcopy -a \* /opt/Citrix/ICAClient || die
419 mdelete /opt/Citrix/ICAClient/ctxusbd.rc || die
420 minstallunit ctxusbd.service || die
421 minstalludevrule ctxusbd.rules 85-ctxusbd.rules || die
422 minstalldir /usr/bin || die
423 mlink /opt/Citrix/ICAClient/ctx_usb_isactive /usr/bin/ctx_usb_isactive || die
424 mlink /opt/Citrix/ICAClient/ctxusb /usr/bin/ctxusb || die
425 minstalldir /usr/sbin || die
426 mlink /opt/Citrix/ICAClient/ctxusbd /usr/sbin/ctxusbd || die
427 minstalltmp ctxusbd.tmpfilesd ctxusbd.conf || die
428 }
429
430 src_install_ica-client-dev()
431 {
432 cd ${BUILDDIR}/fakeinstall
433
434 # move the rest to -dev
435 mmove etc / || die
436 mmove opt / || die
437 mmove usr / || die
438 }
439
440 preinstall_ica-client-common()
441 {
442 add_conf_prot_mask /etc/env.d
443 }
444
445 postinstall_ica-client-wfica()
446 {
447 if [[ ${ENABLE_NOX11COMPONENTS} = 1 ]]
448 then
449 # replace wfica on serversystem with no_X version
450 if [[ -n $(magequery -n serversystem) ]]
451 then
452 ln -snf wfica.no_X ${MROOT}/opt/Citrix/ICAClient/wfica
453 fi
454 fi
455 }
456
457 postinstall_ica-client-usbdaemon()
458 {
459 if [[ ${ENABLE_USBDAEMON} = 1 ]]
460 then
461 [ -d ${MROOT}/run/ctxusbd ] || install -d ${MROOT}/run/ctxusbd
462 mstartunit ctxusbd.service
463 fi
464 }
465
466 postremove_ica-client-usbdaemon()
467 {
468 # always try to stop this service
469 mstopunit ctxusbd.service
470 }