Magellan Linux

Contents of /smage/trunk/core/ica-client/ica-client-13.2.0.322243-r5.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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