Magellan Linux

Contents of /smage/trunk/core/ica-client/ica-client-23.9.0.24-r4.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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