Magellan Linux

Contents of /smage/trunk/core/ica-client/ica-client-19.3.0.5-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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