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 15474 - (show annotations) (download)
Mon Sep 7 09:17:46 2020 UTC (3 years, 7 months ago) by niro
File size: 9657 byte(s)
auto added: ver bump to 20.06.0.15-r1
1 # $Id$
2
3 PNAME="ica-client"
4 PVER="20.06.0.15"
5 PBUILD="r1"
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 USBDAEMON=0
14 # install no x11 components from platform SDK
15 NOX11COMPONENTS=1
16
17 SPECIAL_VARS="USBDAEMON NOX11COMPONENTS"
18
19 # these deps are essential to run storebrowse:
20 # >= net-libs/ica-client-libcurl3-7
21 # >= x11-misc/shared-mime-info-1.8
22 DEPEND=">= sys-libs/libstdc++-5.1
23 >= sys-libs/zlib-1.2
24 >= dev-libs/glib2-2.56
25 >= dev-libs/atk-2.28
26 >= dev-libs/libxml2-2.9
27 >= net-dns/libidn-1.35
28 >= net-libs/libcurl-7
29 >= x11-libs/libX11-1.6
30 >= x11-libs/libXext-1.3
31 >= x11-libs/libXfixes-5
32 >= x11-libs/libXinerama-1.1
33 >= x11-libs/libXrender-0.9
34 >= x11-libs/cairo-1.14
35 >= x11-libs/gdk-pixbuf-2.36
36 >= x11-libs/pango-1.42
37 >= x11-libs/gtk2+-2.24
38 >= media-fonts/font-adobe-75dpi-1
39 >= net-libs/ica-client-libcurl3-7
40 >= x11-misc/shared-mime-info-1.8"
41
42 # >= media-libs/alsa-lib-1.0.29
43 # >= media-libs/libogg-1.3
44 # >= media-libs/libvorbis-1.3
45
46 if [[ ${USBDAEMON} = 1 ]]
47 then
48 DEPEND="${DEPEND}
49 >= sys-fs/udev-230"
50 fi
51
52 SDEPEND=">= virtual/sed"
53
54 SRCFILE="linuxx86-${PVER}.tar.gz"
55 SRCDIR="${BUILDDIR}/${PNAME}-${PVER}"
56
57 # no X storebrowse etc
58 PLATFORM_SDK_SRCFILE="PlatformOptimizationSDK.linux-${PVER}.tgz"
59
60 # only keep the essential files to run wfica, pnabrowse or storebrowse
61 ALX_PKG_KEEP="etc/env.d/10ica-client
62 opt/Citrix/ICAClient/AuthManagerDaemon
63 opt/Citrix/ICAClient/CHARICONV.DLL
64 opt/Citrix/ICAClient/PDCRYPT1.DLL
65 opt/Citrix/ICAClient/PrimaryAuthManager
66 opt/Citrix/ICAClient/ServiceRecord
67 opt/Citrix/ICAClient/libctxssl.so
68 opt/Citrix/ICAClient/libproxy.so
69 opt/Citrix/ICAClient/wfica
70 opt/Citrix/ICAClient/wfica.X
71 opt/Citrix/ICAClient/wfica.no_X
72 opt/Citrix/ICAClient/config
73 opt/Citrix/ICAClient/gtk
74 opt/Citrix/ICAClient/icons/receiver.png
75 opt/Citrix/ICAClient/keyboard/keyboard.ini
76 opt/Citrix/ICAClient/keyboard/automatic.kbd
77 opt/Citrix/ICAClient/keyboard/linux.kbd
78 opt/Citrix/ICAClient/keystore/cacerts
79 opt/Citrix/ICAClient/lib/UIDialogLib.so
80 opt/Citrix/ICAClient/lib/libAMSDK.so
81 opt/Citrix/ICAClient/nls/C
82 opt/Citrix/ICAClient/nls/en/appsrv.ini
83 opt/Citrix/ICAClient/nls/en/appsrv.template
84 opt/Citrix/ICAClient/nls/en/eula.txt
85 opt/Citrix/ICAClient/nls/en/module.ini
86 opt/Citrix/ICAClient/nls/en/pna.nls
87 opt/Citrix/ICAClient/nls/en/wfclient.ini
88 opt/Citrix/ICAClient/nls/en/wfclient.template
89 opt/Citrix/ICAClient/nls/en.UTF-8/eula.txt
90 opt/Citrix/ICAClient/nls/en.UTF8
91 opt/Citrix/ICAClient/nls/en.utf8
92 opt/Citrix/ICAClient/util/ctx_rehash
93 opt/Citrix/ICAClient/util/new_store
94 opt/Citrix/ICAClient/util/pnabrowse
95 opt/Citrix/ICAClient/util/pnabrowse_launch
96 opt/Citrix/ICAClient/util/storebrowse
97 opt/Citrix/ICAClient/eula.txt
98 usr/bin/wfica
99 usr/bin/pnabrowse
100 usr/bin/storebrowse"
101
102 if [[ ${USBDAEMON} = 1 ]]
103 then
104 ALX_PKG_KEEP+=" usr/lib/systemd/system/ctxusb.service
105 usr/lib/udev/rules.d/85-ctxusbd.rules
106 opt/Citrix/ICAClient/ctx_usb_isactive
107 opt/Citrix/ICAClient/usb.conf
108 opt/Citrix/ICAClient/VDGUSB.DLL
109 opt/Citrix/ICAClient/ctxusbd
110 opt/Citrix/ICAClient/ctxusb
111 usr/bin/ctx_usb_isactive
112 usr/bin/ctxusb
113 usr/sbin/ctxusbd
114 etc/tmpfiles.d/ctxusb.conf"
115 fi
116
117 sminclude mtools udev systemd alx-split
118
119 # += to add injection files (alx.sminc)
120 SRC_URI+=(
121 http://download2.citrix.com/FILES/en/products/Linux${PVER:0:2}/${SRCFILE}
122 mirror://ica-client/${SRCFILE}
123 )
124
125 if [[ ${USBDAEMON} = 1 ]]
126 then
127 SRC_URI+=( mirror://ica-client/ctxusbd.service
128 mirror://ica-client/ctxusbd.rules
129 mirror://ica-client/ctxusbd.tmpfilesd )
130 fi
131
132 if [[ ${NOX11COMPONENTS} = 1 ]]
133 then
134 SRC_URI+=( mirror://ica-client/${PLATFORM_SDK_SRCFILE} )
135 fi
136
137 install_from_psf()
138 {
139 local psf line type file symlink pkg attr user group
140 psf="$1"
141
142 minstalldir /opt/Citrix/ICAClient || die
143
144 cat ${psf} | while read line
145 do
146 set $line
147 type="$1"
148 file="$2"
149 case $type in
150 s|h)
151 symlink="$3"
152 shift
153 ;;
154 d|f)
155 symlink=""
156 ;;
157 esac
158
159 pkg="$3"
160 attr="$4"
161 user="$5"
162 group="$6"
163
164 case ${file} in
165 .) continue ;;
166 esac
167
168 case ${type} in
169 d)
170 minstalldir /opt/Citrix/ICAClient/${file} || die
171 ;;
172 f)
173 case ${attr} in
174 555) minstallexec ${file} /opt/Citrix/ICAClient/${file} || die ;;
175 444) minstallfile ${file} /opt/Citrix/ICAClient/${file} || die ;;
176 esac
177 ;;
178 s)
179 mlink ${symlink} /opt/Citrix/ICAClient/${file} || die
180 ;;
181 h)
182 mlink ${symlink} /opt/Citrix/ICAClient/${file} || die
183 ;;
184 esac
185 done
186 }
187
188 src_prepare()
189 {
190 munpack ${SRCFILE} ${SRCDIR} || die
191 if [[ ${NOX11COMPONENTS} = 1 ]]
192 then
193 munpack ${PLATFORM_SDK_SRCFILE} ${SRCDIR} || die
194 fi
195 cd ${SRCDIR}/linuxx86/linuxx86.cor
196
197 sed 's:###ICAROOT###:/opt/Citrix/ICAClient:g' usb/ctxusbd.rc usb/ica-usb.rules || die
198 }
199
200 alx_generic_src_install()
201 {
202 cd ${SRCDIR}/linuxx86/linuxx86.cor
203
204 minstalldir /opt/Citrix/ICAClient || die
205 # read psf file and install files and symlinks
206 install_from_psf ${SRCDIR}/linuxx86/linuxx86.psf || die
207
208 # eula symlink is a must or wfica and co will not find UIDialog.so
209 mlink ./nls/en.UTF-8/eula.txt /opt/Citrix/ICAClient/eula.txt || die
210 mlink ../en.UTF-8/eula.txt /opt/Citrix/ICAClient/nls/en/eula.txt || die
211
212 # symlink some inis to config dir from nls dir
213 minstalldir /opt/Citrix/ICAClient/config || die
214 mlink ../nls/en/appsrv.template /opt/Citrix/ICAClient/config/appsrv.template || die
215 mlink ../nls/en/module.ini /opt/Citrix/ICAClient/config/module.ini || die
216 mlink ../nls/en/wfclient.template /opt/Citrix/ICAClient/config/wfclient.template || die
217
218 # make this installation a server installation to seperate config files for every user
219 memptyfile /opt/Citrix/ICAClient/config/.server || die
220
221 # create wfica.sh
222 MCONFIG="/opt/Citrix/ICAClient/wfica.sh"
223 mclearconfig || die
224 maddconfig '#!/bin/sh' || die
225 maddconfig 'ICAROOT=/opt/Citrix/ICAClient' || die
226 maddconfig 'export ICAROOT' || die
227 maddconfig 'LD_LIBRARY_PATH=${ICAROOT}/lib' || die
228 maddconfig 'export LD_LIBRARY_PATH' || die
229 maddconfig '$ICAROOT/wfica -file $1' || die
230 mchmod 0755 /opt/Citrix/ICAClient/wfica.sh || die
231
232 # create wfica_assoc.sh
233 MCONFIG="/opt/Citrix/ICAClient/wfica_assoc.sh"
234 mclearconfig || die
235 maddconfig '#!/bin/sh' || die
236 maddconfig 'ICAROOT=/opt/Citrix/ICAClient' || die
237 maddconfig 'export ICAROOT' || die
238 maddconfig '$ICAROOT/wfica -associate -fileparam $1' || die
239 mchmod 0755 /opt/Citrix/ICAClient/wfica_assoc.sh || die
240
241 # install wrappers to prevent slowdowns with other locales than 'C'
242 minstalldir /usr/bin || die
243 MCONFIG="/usr/bin/wfica"
244 mclearconfig || die
245 maddconfig 'env LC_ALL="" LANG="" LD_LIBRARY_PATH="/opt/Citrix/ICAClient/lib" /opt/Citrix/ICAClient/wfica $*' || die
246 mchmod 0755 /usr/bin/wfica || die
247 MCONFIG="/usr/bin/pnabrowse"
248 mclearconfig || die
249 maddconfig 'env LC_ALL="" LANG="" LD_LIBRARY_PATH="/opt/Citrix/ICAClient/lib" /opt/Citrix/ICAClient/util/pnabrowse $*' || die
250 mchmod 0755 /usr/bin/pnabrowse || die
251 MCONFIG="/usr/bin/storebrowse"
252 mclearconfig || die
253 maddconfig 'env LC_ALL="" LANG="" LD_LIBRARY_PATH="/opt/Citrix/ICAClient/lib" /opt/Citrix/ICAClient/util/storebrowse $*' || die
254 mchmod 0755 /usr/bin/storebrowse || die
255
256 # fixes some hardcoded pathes
257 minstalldir /etc/env.d || die
258 MCONFIG="/etc/env.d/10ica-client"
259 mclearconfig || die
260 maddconfig 'ICAROOT=/opt/Citrix/ICAClient' || die
261
262 # # set default browserprotocol to tcp/ip
263 # # ( citrix named this in their config as UDP)
264 # sed -i "s:^\(BrowserProtocol=\).*:\1UDP:" ${BINDIR}/opt/Citrix/ICAClient/config/wfclient.template || die
265 #
266 # newer XenApp use https
267 sed -i "s:^\(BrowserProtocol=\).*:\1HTTPonTCP:" ${BINDIR}/opt/Citrix/ICAClient/config/wfclient.template || die
268
269 # auto enable com port mapping for com1 and com2
270 sed -i 's:^\(\[WFClient\]\):\1\nComPort1=/dev/ttyS1\nComPort2=/dev/ttyS2\nLastComPortNum=2\n:' \
271 ${BINDIR}/opt/Citrix/ICAClient/config/wfclient.template || die
272
273 if [[ ${USBDAEMON} = 1 ]]
274 then
275 cd ${SRCDIR}/linuxx86/linuxx86.cor/usb
276 mcopy -a \* /opt/Citrix/ICAClient || die
277 mdelete /opt/Citrix/ICAClient/ctxusbd.rc || die
278 minstallunit ctxusbd.service || die
279 minstalludevrule ctxusbd.rules 85-ctxusbd.rules || die
280 minstalldir /usr/bin || die
281 mlink /opt/Citrix/ICAClient/ctx_usb_isactive /usr/bin/ctx_usb_isactive || die
282 mlink /opt/Citrix/ICAClient/ctxusb /usr/bin/ctxusb || die
283 minstalldir /usr/sbin || die
284 mlink /opt/Citrix/ICAClient/ctxusbd /usr/sbin/ctxusbd || die
285 minstalltmp ctxusbd.tmpfilesd ctxusbd.conf || die
286 fi
287
288 # replace binaries but default wfica to X implementation
289 if [[ ${NOX11COMPONENTS} = 1 ]]
290 then
291 cd ${SRCDIR}/CitrixPluginSDK
292 minstallexec bin/pnabrowse.no_X /opt/Citrix/ICAClient/util/pnabrowse || die
293 minstallexec bin/storebrowse.no_X /opt/Citrix/ICAClient/util/storebrowse || die
294
295 mmove ${BINDIR}/opt/Citrix/ICAClient/wfica /opt/Citrix/ICAClient/wfica.X || die
296 minstallexec bin/wfica_for_plugins /opt/Citrix/ICAClient/wfica.no_X || die
297 mlink wfica.X /opt/Citrix/ICAClient/wfica || die
298 fi
299
300 # insert our company cert
301 mcinjectfile ESA-CA.pem /opt/Citrix/ICAClient/keystore/cacerts/ || die
302 # rehash all certificates
303 ICAROOT=${BINDIR}/opt/Citrix/ICAClient/keystore/cacerts ${BINDIR}/opt/Citrix/ICAClient/util/ctx_rehash || die
304 }
305
306 preinstall()
307 {
308 add_conf_prot_mask /etc/env.d
309 }
310
311 postinstall()
312 {
313 if [[ ${NOX11COMPONENTS} = 1 ]]
314 then
315 # replace wfica on serversystem with no_X version
316 if [[ -n $(magequery -n serversystem) ]]
317 then
318 ln -snf wfica.no_X ${MROOT}/opt/Citrix/ICAClient/wfica
319 fi
320 fi
321
322 if [[ ${USBDAEMON} = 1 ]]
323 then
324 [ -d ${MROOT}/run/ctxusbd ] || install -d ${MROOT}/run/ctxusbd
325 mstartunit ctxusbd.service
326 fi
327 }
328
329 postremove()
330 {
331 # always try to stop this service
332 mstopunit ctxusbd.service
333 }