Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 17547 - (hide annotations) (download)
Fri Dec 8 10:26:16 2023 UTC (5 months, 1 week ago) by niro
File size: 15048 byte(s)
-added missing gtk3+ dep
1 niro 17547 # $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     }