Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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