]>
Commit | Line | Data |
---|---|---|
1 | # TODO | |
2 | # - subpackages for client/server, see http://xpra.org/dev.html | |
3 | # - nvenc (4,5,6)/cuda support (on bcond) | |
4 | # - xvid? (checks for xvid.pc) | |
5 | # | |
6 | # Conditional build: | |
7 | %bcond_without client # client part | |
8 | %bcond_without server # server part | |
9 | %bcond_without sound # (gstreamer) sound support | |
10 | %bcond_without clipboard # clipboard support | |
11 | %bcond_without swscale # swscale colorspace conversion support | |
12 | %bcond_without opencl # OpenCL colorspace conversion support (only AMD icd supported at runtime?) | |
13 | %bcond_without avcodec # avcodec decoding | |
14 | %bcond_without opengl # OpenGL support | |
15 | %bcond_without vpx # VPX/WebM support | |
16 | %bcond_without webp # WebP support | |
17 | %bcond_without x264 # x264 encoding | |
18 | %bcond_without x265 # x265 encoding | |
19 | ||
20 | %ifarch i386 i486 x32 | |
21 | %undefine with_x265 | |
22 | %endif | |
23 | ||
24 | Summary: Xpra gives you "persistent remote applications" for X | |
25 | Summary(pl.UTF-8): Xpra - "stałe zdalne aplikacje" dla X | |
26 | Name: xpra | |
27 | Version: 0.17.5 | |
28 | Release: 3 | |
29 | License: GPL v2+ | |
30 | Group: X11/Applications/Networking | |
31 | Source0: http://xpra.org/src/%{name}-%{version}.tar.xz | |
32 | # Source0-md5: 9ec20dae64cee8dbc70e6d5dbae0ab4a | |
33 | Patch0: setup-cc-ccache.patch | |
34 | URL: http://xpra.org/ | |
35 | BuildRequires: OpenCL-devel | |
36 | BuildRequires: OpenGL-devel | |
37 | # libavcodec >= 56 libswscale | |
38 | BuildRequires: ffmpeg-devel | |
39 | BuildRequires: gtk+2-devel >= 2.0 | |
40 | BuildRequires: libvpx-devel >= 1.4 | |
41 | BuildRequires: libwebp-devel >= 0.3 | |
42 | %{?with_x264:BuildRequires: libx264-devel} | |
43 | %{?with_x265:BuildRequires: libx265-devel} | |
44 | BuildRequires: libyuv-devel | |
45 | BuildRequires: pkgconfig | |
46 | BuildRequires: python-Cython >= 0.19.0 | |
47 | BuildRequires: python-devel >= 1:2.6 | |
48 | BuildRequires: python-pycairo-devel | |
49 | BuildRequires: python-pygobject-devel >= 2.0 | |
50 | BuildRequires: python-pygtk-devel >= 2:2.0 | |
51 | BuildRequires: python-setuptools | |
52 | BuildRequires: rpm-pythonprov | |
53 | BuildRequires: sed >= 4.0 | |
54 | BuildRequires: tar >= 1:1.22 | |
55 | BuildRequires: xorg-lib-libX11-devel | |
56 | BuildRequires: xorg-lib-libXcomposite-devel | |
57 | BuildRequires: xorg-lib-libXdamage-devel | |
58 | BuildRequires: xorg-lib-libXext-devel | |
59 | BuildRequires: xorg-lib-libXfixes-devel | |
60 | BuildRequires: xorg-lib-libXrandr-devel | |
61 | BuildRequires: xorg-lib-libXtst-devel | |
62 | BuildRequires: xorg-lib-libxkbfile-devel | |
63 | BuildRequires: xz | |
64 | Requires: libvpx >= 1.4 | |
65 | Requires: libwebp >= 0.3 | |
66 | Requires: python-pygtk-gtk >= 2:2.0 | |
67 | Requires: xorg-app-setxkbmap | |
68 | Requires: xorg-app-xauth | |
69 | Requires: xorg-app-xmodmap | |
70 | Requires: xorg-xserver-Xvfb | |
71 | Suggests: python-PIL | |
72 | Suggests: python-PyOpenGL | |
73 | Suggests: python-numpy | |
74 | Suggests: python-pygtkglext | |
75 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
76 | ||
77 | # currently lib, not %{_lib} (see cups.spec) | |
78 | %define cupsdir /usr/lib/cups/backend | |
79 | # xpra/x11/bindings/randr_bindings.c:... error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] | |
80 | %define specflags -fno-strict-aliasing | |
81 | ||
82 | %description | |
83 | Xpra gives you "persistent remote applications" for X. That is, unlike | |
84 | normal X applications, applications run with xpra are "persistent" -- | |
85 | you can run them remotely, and they don't die if your connection does. | |
86 | You can detach them, and reattach them later -- even from another | |
87 | computer -- with no loss of state. And unlike VNC or RDP, xpra is for | |
88 | remote applications, not remote desktops -- individual applications | |
89 | show up as individual windows on your screen, managed by your window | |
90 | manager. They're not trapped in a box. | |
91 | ||
92 | So basically it's screen for remote X apps. | |
93 | ||
94 | %description -l pl.UTF-8 | |
95 | Xpra daje "stałe zdalne aplikacje" dla serwera X, które w | |
96 | przeciwieństwie do zwykłych X-owych aplikacji, uruchamiane są z xprą | |
97 | jako niezamykające. Można je uruchomić zdalnie i one nie zostaną | |
98 | zamknięte, gdy połączenie zostanie przerwane. Można je odłączyć i | |
99 | podłączyć z powrotem później, również z innego komputera, bez straty | |
100 | stanu. W odróżnieniu od VNC czy RDP, xpra jest dla zdalnych aplikacji, | |
101 | a nie zdalnych pulpitów - pojedyncze aplikacje pokazują się jako | |
102 | samodzielne okno na lokalnym ekranie, zarządzane przez lokalnego | |
103 | zarządcę okien. | |
104 | ||
105 | W uproszczeniu xpra to "screen" dla zdalnych aplikacji X-owych. | |
106 | ||
107 | %package -n cups-backend-xpra | |
108 | Summary: Xpra backend for CUPS | |
109 | Summary(pl.UTF-8): Backend Xpra dla CUPS-a | |
110 | Group: Applications/Printing | |
111 | Requires: %{name} = %{version}-%{release} | |
112 | Requires: cups | |
113 | ||
114 | %description -n cups-backend-xpra | |
115 | Xpra backend for CUPS. | |
116 | ||
117 | %description -n cups-backend-xpra -l pl.UTF-8 | |
118 | Backend Xpra dla CUPS-a. | |
119 | ||
120 | %prep | |
121 | %setup -q | |
122 | %patch0 -p1 | |
123 | ||
124 | %{__sed} -e '1s,/usr/bin/env python,%{__python},' -i cups/xpraforwarder $(grep -l '/usr/bin/env python' -r xpra) | |
125 | ||
126 | %build | |
127 | CC="%{__cc}" \ | |
128 | CFLAGS="%{rpmcflags}" \ | |
129 | %{__python} setup.py build \ | |
130 | --with-PIC \ | |
131 | --with-Xdummy \ | |
132 | %{__with_without client} \ | |
133 | %{__with_without clipboard} \ | |
134 | %{__with_without opencl csc_opencl} \ | |
135 | %{__with_without swscale csc_swscale} \ | |
136 | --with%{!?debug:out}-debug \ | |
137 | %{__with_without avcodec dec_avcodec2} \ | |
138 | %{__with_without x264 enc_x264} \ | |
139 | %{__with_without x265 enc_x265} \ | |
140 | --with-gtk2 \ | |
141 | --without-gtk3 \ | |
142 | %{__with_without opengl} \ | |
143 | %{__with_without server} \ | |
144 | %{__with_without server shadow} \ | |
145 | %{__with_without sound} \ | |
146 | --with-strict \ | |
147 | %{__with_without vpx} \ | |
148 | --with-warn \ | |
149 | %{__with_without webp} \ | |
150 | --with-x11 \ | |
151 | %{nil} | |
152 | ||
153 | %install | |
154 | rm -rf $RPM_BUILD_ROOT | |
155 | %{__python} setup.py install \ | |
156 | --skip-build \ | |
157 | --prefix=%{_prefix} \ | |
158 | --install-purelib=%{py_sitescriptdir} \ | |
159 | --install-platlib=%{py_sitedir} \ | |
160 | --optimize=2 \ | |
161 | --root=$RPM_BUILD_ROOT | |
162 | ||
163 | %{__rm} $RPM_BUILD_ROOT%{_datadir}/xpra/COPYING | |
164 | %{__rm} $RPM_BUILD_ROOT%{_datadir}/xpra/README | |
165 | ||
166 | %py_postclean | |
167 | ||
168 | %clean | |
169 | rm -rf $RPM_BUILD_ROOT | |
170 | ||
171 | %files | |
172 | %defattr(644,root,root,755) | |
173 | %doc NEWS README | |
174 | %dir %{_sysconfdir}/%{name} | |
175 | %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/xorg.conf | |
176 | %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/xpra.conf | |
177 | %attr(755,root,root) %{_bindir}/xpra | |
178 | %attr(755,root,root) %{_bindir}/xpra_Xdummy | |
179 | %attr(755,root,root) %{_bindir}/xpra_launcher | |
180 | %{_datadir}/appdata/xpra.appdata.xml | |
181 | %{_datadir}/mime/packages/application-x-xpraconfig.xml | |
182 | %dir %{_datadir}/xpra | |
183 | %dir %{_datadir}/xpra/icons | |
184 | %{_datadir}/xpra/icons/*.png | |
185 | # experimental html5 client | |
186 | %{_datadir}/%{name}/www | |
187 | %{_desktopdir}/xpra.desktop | |
188 | %{_desktopdir}/xpra_launcher.desktop | |
189 | %{_iconsdir}/xpra.png | |
190 | %{systemdtmpfilesdir}/xpra.conf | |
191 | # specified in the above (xpra group seems to be optional though) | |
192 | #%attr(770,root,xpra) %dir /var/run/xpra | |
193 | %{_mandir}/man1/xpra.1* | |
194 | %{_mandir}/man1/xpra_launcher.1* | |
195 | ||
196 | %dir %{py_sitedir}/xpra | |
197 | %{py_sitedir}/xpra/client | |
198 | %{py_sitedir}/xpra/clipboard | |
199 | %dir %{py_sitedir}/xpra/codecs | |
200 | %dir %{py_sitedir}/xpra/codecs/argb | |
201 | %attr(755,root,root) %{py_sitedir}/xpra/codecs/argb/argb.so | |
202 | %{py_sitedir}/xpra/codecs/argb/__init__.py[co] | |
203 | %dir %{py_sitedir}/xpra/codecs/csc_cython | |
204 | %attr(755,root,root) %{py_sitedir}/xpra/codecs/csc_cython/colorspace_converter.so | |
205 | %{py_sitedir}/xpra/codecs/csc_cython/__init__.py[co] | |
206 | %dir %{py_sitedir}/xpra/codecs/csc_libyuv | |
207 | %attr(755,root,root) %{py_sitedir}/xpra/codecs/csc_libyuv/colorspace_converter.so | |
208 | %{py_sitedir}/xpra/codecs/csc_libyuv/__init__.py[co] | |
209 | %if %{with opencl} | |
210 | %{py_sitedir}/xpra/codecs/csc_opencl | |
211 | %endif | |
212 | %{py_sitedir}/xpra/codecs/csc_opencv | |
213 | %if %{with swscale} | |
214 | %dir %{py_sitedir}/xpra/codecs/csc_swscale | |
215 | %attr(755,root,root) %{py_sitedir}/xpra/codecs/csc_swscale/colorspace_converter.so | |
216 | %{py_sitedir}/xpra/codecs/csc_swscale/__init__.py[co] | |
217 | %endif | |
218 | %if %{with avcodec} | |
219 | %dir %{py_sitedir}/xpra/codecs/dec_avcodec2 | |
220 | %attr(755,root,root) %{py_sitedir}/xpra/codecs/dec_avcodec2/decoder.so | |
221 | %{py_sitedir}/xpra/codecs/dec_avcodec2/__init__.py[co] | |
222 | %endif | |
223 | %dir %{py_sitedir}/xpra/codecs/enc_proxy | |
224 | %{py_sitedir}/xpra/codecs/enc_proxy/*.py[co] | |
225 | %if %{with x264} | |
226 | %dir %{py_sitedir}/xpra/codecs/enc_x264 | |
227 | %attr(755,root,root) %{py_sitedir}/xpra/codecs/enc_x264/encoder.so | |
228 | %{py_sitedir}/xpra/codecs/enc_x264/__init__.py[co] | |
229 | %endif | |
230 | %if %{with x265} | |
231 | %dir %{py_sitedir}/xpra/codecs/enc_x265 | |
232 | %attr(755,root,root) %{py_sitedir}/xpra/codecs/enc_x265/encoder.so | |
233 | %{py_sitedir}/xpra/codecs/enc_x265/__init__.py[co] | |
234 | %endif | |
235 | %dir %{py_sitedir}/xpra/codecs/libav_common | |
236 | %attr(755,root,root) %{py_sitedir}/xpra/codecs/libav_common/av_log.so | |
237 | %{py_sitedir}/xpra/codecs/libav_common/__init__.py[co] | |
238 | %{py_sitedir}/xpra/codecs/pillow | |
239 | %dir %{py_sitedir}/xpra/codecs/v4l2 | |
240 | %attr(755,root,root) %{py_sitedir}/xpra/codecs/v4l2/pusher.so | |
241 | %{py_sitedir}/xpra/codecs/v4l2/__init__.py[co] | |
242 | %dir %{py_sitedir}/xpra/codecs/vpx | |
243 | %attr(755,root,root) %{py_sitedir}/xpra/codecs/vpx/decoder.so | |
244 | %attr(755,root,root) %{py_sitedir}/xpra/codecs/vpx/encoder.so | |
245 | %{py_sitedir}/xpra/codecs/vpx/__init__.py[co] | |
246 | %dir %{py_sitedir}/xpra/codecs/webp | |
247 | %attr(755,root,root) %{py_sitedir}/xpra/codecs/webp/decode.so | |
248 | %attr(755,root,root) %{py_sitedir}/xpra/codecs/webp/encode.so | |
249 | %{py_sitedir}/xpra/codecs/webp/__init__.py[co] | |
250 | %dir %{py_sitedir}/xpra/codecs/xor | |
251 | %attr(755,root,root) %{py_sitedir}/xpra/codecs/xor/cyxor.so | |
252 | %{py_sitedir}/xpra/codecs/xor/*.py[co] | |
253 | %{py_sitedir}/xpra/codecs/*.py[co] | |
254 | %{py_sitedir}/xpra/dbus | |
255 | %dir %{py_sitedir}/xpra/gtk_common | |
256 | %attr(755,root,root) %{py_sitedir}/xpra/gtk_common/gdk_atoms.so | |
257 | %{py_sitedir}/xpra/gtk_common/*.py[co] | |
258 | %{py_sitedir}/xpra/keyboard | |
259 | %dir %{py_sitedir}/xpra/net | |
260 | %attr(755,root,root) %{py_sitedir}/xpra/net/vsock.so | |
261 | %{py_sitedir}/xpra/net/*.py[co] | |
262 | %dir %{py_sitedir}/xpra/net/bencode | |
263 | %{py_sitedir}/xpra/net/bencode/*.py[co] | |
264 | %attr(755,root,root) %{py_sitedir}/xpra/net/bencode/cython_bencode.so | |
265 | %{py_sitedir}/xpra/platform | |
266 | %{py_sitedir}/xpra/scripts | |
267 | %dir %{py_sitedir}/xpra/server | |
268 | %attr(755,root,root) %{py_sitedir}/xpra/server/cystats.so | |
269 | %{py_sitedir}/xpra/server/*.py[co] | |
270 | %dir %{py_sitedir}/xpra/server/auth | |
271 | %{py_sitedir}/xpra/server/auth/*.py[co] | |
272 | %{py_sitedir}/xpra/server/dbus | |
273 | %{py_sitedir}/xpra/server/proxy | |
274 | %{py_sitedir}/xpra/server/shadow | |
275 | %dir %{py_sitedir}/xpra/server/window | |
276 | %attr(755,root,root) %{py_sitedir}/xpra/server/window/region.so | |
277 | %{py_sitedir}/xpra/server/window/*.py[co] | |
278 | %{py_sitedir}/xpra/sound | |
279 | %dir %{py_sitedir}/xpra/x11 | |
280 | %dir %{py_sitedir}/xpra/x11/bindings | |
281 | %attr(755,root,root) %{py_sitedir}/xpra/x11/bindings/*.so | |
282 | %{py_sitedir}/xpra/x11/bindings/__init__.py[co] | |
283 | %{py_sitedir}/xpra/x11/dbus | |
284 | %dir %{py_sitedir}/xpra/x11/gtk2 | |
285 | %attr(755,root,root) %{py_sitedir}/xpra/x11/gtk2/gdk_bindings.so | |
286 | %attr(755,root,root) %{py_sitedir}/xpra/x11/gtk2/gdk_display_source.so | |
287 | %{py_sitedir}/xpra/x11/gtk2/*.py[co] | |
288 | %{py_sitedir}/xpra/x11/gtk2/models | |
289 | %dir %{py_sitedir}/xpra/x11/gtk_x11 | |
290 | %{py_sitedir}/xpra/x11/gtk_x11/*.py[co] | |
291 | %{py_sitedir}/xpra/x11/*.py[co] | |
292 | %{py_sitedir}/xpra/*.py[co] | |
293 | %{py_sitedir}/xpra-%{version}-py*.egg-info | |
294 | ||
295 | %files -n cups-backend-xpra | |
296 | %defattr(644,root,root,755) | |
297 | %attr(756,root,root) %{cupsdir}/xpraforwarder |