Annotation of /smage/trunk/core/ica-client/ica-client-19.3.0.5-r1.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: 9485 byte(s)
Mon Jul 13 08:11:33 2020 UTC (3 years, 10 months ago) by niro
File size: 9485 byte(s)
-marked disabled
1 | niro | 13100 | # $Id$ |
2 | |||
3 | PNAME="ica-client" | ||
4 | PVER="19.3.0.5" | ||
5 | PBUILD="r1" | ||
6 | |||
7 | niro | 14403 | STATE="disabled" |
8 | niro | 13100 | 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 | } |