-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathca.dcloud.ICAClient.yml
179 lines (160 loc) · 7.6 KB
/
ca.dcloud.ICAClient.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
app-id: ca.dcloud.ICAClient
runtime: org.gnome.Platform
runtime-version: '41'
sdk: org.gnome.Sdk
command: /app/bin/run.sh
build-options:
build-args:
- --share=network
finish-args:
- --device=all #For webcam/microphone access. Future work will be to remove this permission, and replace with a more restrictive one for those devices only
- --share=network
- --socket=pulseaudio
- --socket=x11
- --share=ipc #Required for X11 to work properly
- --env=ICAROOT=/app/ICAClient/linuxx64
- --socket=wayland
- --persist=. #Gives the app a persistent that is treated as the home directory, located at ~/.var/app/ca.dcloud.ICAClient
- --persist=.ICAClient #Log/config directory (relative to the Flatpak container home folder)
modules: #Requirements as per Citrix's site, that aren't included in the Flatpak runtime. https://docs.citrix.com/en-us/citrix-workspace-app-for-linux/system-requirements.html
- name: gtk2
buildsystem: autotools
sources:
- type: archive
url: http://archive.ubuntu.com/ubuntu/pool/main/g/gtk+2.0/gtk+2.0_2.24.33.orig.tar.xz
sha256: ac2ac757f5942d318a311a54b0c80b5ef295f299c2a73c632f6bfb1ff49cc6da
- name: libjson-c #Listed as a requirement "for instrumentation", not sure what that refers to
buildsystem: cmake
sources:
- type: archive
url: http://archive.ubuntu.com/ubuntu/pool/main/j/json-c/json-c_0.15.orig.tar.gz
sha256: 4ba9a090a42cf1e12b84c64e4464bb6fb893666841d5843cc5bef90774028882
- name: libxerces-c #Listed as a requirement for the self-service UI
buildsystem: autotools
sources:
- type: archive
url: http://archive.ubuntu.com/ubuntu/pool/universe/x/xerces-c/xerces-c_3.2.3+debian.orig.tar.xz
sha256: 25652e6ed8a55e9273d6514f7e2744678b6d51f5d88c03d4219fac0310393f8d
- name: gst-plugins-ugly #Listed as requirement for HDX RT video compression and MediaStream Windows media redirection
buildsystem: meson
sources:
- type: archive
url: https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.18.5.tar.xz
sha256: df32803e98f8a9979373fa2ca7e05e62f977b1097576d3a80619d9f5c69f66d9
- name: gnome-keyring #Listed as a requirement for Service Continuity
buildsystem: simple
build-commands:
- |
./configure --prefix=/app --with-pkcs11-config=/app/share/p11-kit/modules --with-pkcs11-modules=/app/share/p11-kit/modules
make
make install
sources:
- type: archive
url: http://archive.ubuntu.com/ubuntu/pool/main/g/gnome-keyring/gnome-keyring_40.0.orig.tar.xz
sha256: a3d24db08ee2fdf240fbbf0971a98c8ee295aa0e1a774537f4ea938038a3b931
#Copies the launch/initial setup script from this project to the app directory.
#Downloads the installer archives for Workspace and HDX-RTME. The download links are dynamic, so they can't be hardcoded into this manifest. They have to be obtained by scraping the Citrix downloads page every time
#Performs Citrix install as per the install.sh script
#Copies Citrix icons to the folders where flatpak expects them, to be used as app icons.
- name: bootstrap
buildsystem: simple
build-commands:
- |
cp ./install.sh /tmp
chmod +x /tmp/install.sh
wget $(wget -O - https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html | sed -ne '/linuxx64.*tar.gz/ s/<a .* rel="\(.*\)" id="downloadcomponent">/https:\1/p' | sed -e 's/\r//g') -O /tmp/linuxx64.tar.gz
tempURL=$(wget -O - https://www.citrix.com/downloads/workspace-app/additional-client-software/hdx-realtime-media-engine.html | grep -m 1 -e 'rel="https.*hdx-realtime-media-engine-.*html"' | sed -ne 's/<a .* rel="\(.*\)" id="downloadcomponent.*">/\1/p')
wget $(wget -O - $tempURL | sed -ne '/HDX.*zip/ s/<a .* rel="\(.*\)" id="downloadcomponent_3">/https:\1/p' | sed -e 's/\r//g') -O /tmp/hdx.zip
mkdir -p /tmp/icaclient
tar -zxf /tmp/linuxx64.tar.gz --directory=/tmp/icaclient
mkdir -p /app/share/icons/hicolor/64x64/apps
cp /tmp/icaclient/linuxx64/linuxx64.cor/icons/000_Receiver_64.png /app/share/icons/hicolor/64x64/apps/ca.dcloud.ICAClient.png
mkdir -p /app/share/icons/hicolor/256x256/apps
cp /tmp/icaclient/linuxx64/linuxx64.cor/icons/receiver.png /app/share/icons/hicolor/256x256/apps/ca.dcloud.ICAClient.png
unzip /tmp/hdx.zip -d /tmp/HDX-RTME
cp -r /tmp/HDX-RTME/HDX*/* /tmp/icaclient
cd /tmp/icaclient/x86_64
ar -x citrix-hdx-realtime-media-engine_*_amd64.deb
tar -xf data.tar.xz
/tmp/install.sh
ln -s /etc/ssl/certs/*.pem /app/ICAClient/linuxx64/keystore/cacerts/
/app/ICAClient/linuxx64/util/ctx_rehash /app/ICAClient/linuxx64/keystore/cacerts/
sources:
- type: file
path: ./install.sh
#When the app is launched on Ubuntu (Gnome 38), it complains about being unable to find the atk-bridge module. However, everything seems to still work fine without it.
#This package seems to be related to an accessibility features interface (AT-SPI), so it's possible that there are some accessibility features that may not work without this module installed
# - name: atk-bridge
# buildsystem: meson
# sources:
# - type: archive
# url: http://archive.ubuntu.com/ubuntu/pool/main/a/at-spi2-atk/at-spi2-atk_2.38.0.orig.tar.xz
# sha256: cfa008a5af822b36ae6287f18182c40c91dd699c55faa38605881ed175ca464f
#
# - name: canberra-gtk
# buildsystem: autotools
# sources:
# - type: archive
# url: http://archive.ubuntu.com/ubuntu/pool/main/libc/libcanberra/libcanberra_0.30.orig.tar.xz
# sha256: c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72
#
# - name: perl
# sources:
# - type: archive
# url: "http://www.cpan.org/src/5.0/perl-5.32.0.tar.gz"
# sha256: efeb1ce1f10824190ad1cadbcccf6fdb8a5d37007d0100d2d9ae5f2b5900c0b4
# - type: script
# dest-filename: configure
# commands:
# - ./Configure -des -Dprefix=/app
# post-install:
# - "find /app/lib/perl5 -type f -exec chmod u+w {} \\;"
#
# - name: openssl
# buildsystem: simple
# build-commands:
# - |
# ./config --prefix=/app
# make
# make test
# PREFIX=/app make install
# sources:
# - type: archive
# url: http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.1.1j.orig.tar.gz
# sha256: aaf2fcb575cdf6491b98ab4829abf78a3dec8402b8b81efc8f23c00d443981bf
#
#- name: binutils
#buildsystem: autotools
#sources:
#- type: archive
#url: https://ftp.wayne.edu/gnu/binutils/binutils-2.37.tar.xz
#sha256: 820d9724f020a3e69cb337893a0b63c2db161dadcb0e06fc11dc29eb1e84a32c
- name: Run-script
buildsystem: simple
build-commands:
- |
cp ./run.sh /app/bin/
chmod +x /app/bin/run.sh
sources:
- type: file
path: ./run.sh
- name: Appdata-xml
buildsystem: simple
build-commands:
- |
mkdir -p /app/share/metainfo
cp ./ca.dcloud.ICAClient.appdata.xml /app/share/metainfo/
appstream-util validate-relax /app/share/metainfo/ca.dcloud.ICAClient.appdata.xml
sources:
- type: file
path: ./ca.dcloud.ICAClient.appdata.xml
- name: Desktop-file
buildsystem: simple
build-commands:
- |
mkdir -p /app/share/applications
cp ./ca.dcloud.ICAClient.desktop /app/share/applications/
desktop-file-validate /app/share/applications/ca.dcloud.ICAClient.desktop
sources:
- type: file
path: ./ca.dcloud.ICAClient.desktop