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