Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 15505 - (hide annotations) (download)
Tue Sep 8 13:29:39 2020 UTC (3 years, 8 months ago) by niro
File size: 13499 byte(s)
-split into server friendly packages
1 niro 15505 # $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     }