]> git.pld-linux.org Git - packages/xpra.git/blob - xpra.spec
a317d2e127b657ba1cadfbbf630acbf5b3818b68
[packages/xpra.git] / xpra.spec
1 # TODO
2 # - test and finish systemd integration
3 # - subpackages for client/server, see http://xpra.org/dev.html
4 # - nvenc (4,5,6)/cuda support (on bcond)
5 # - xvid? (checks for xvid.pc)
6 #
7 # Conditional build:
8 %bcond_without  client          # client part
9 %bcond_without  server          # server part
10 %bcond_without  sound           # (gstreamer) sound support
11 %bcond_without  clipboard       # clipboard support
12 %bcond_without  swscale         # swscale colorspace conversion support
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:        2.2.6
28 Release:        2
29 License:        GPL v2+
30 Group:          X11/Applications/Networking
31 Source0:        http://xpra.org/src/%{name}-%{version}.tar.xz
32 # Source0-md5:  22c032c29be6d22fa7e21405792a1372
33 Patch0:         setup-cc-ccache.patch
34 URL:            http://xpra.org/
35 BuildRequires:  OpenGL-devel
36 # libavcodec >= 56 libswscale
37 BuildRequires:  ffmpeg-devel
38 BuildRequires:  gtk+2-devel >= 2.0
39 BuildRequires:  gtk+3-devel
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} -i -e '1s,/usr/bin/env python,%{__python},' cups/xpraforwarder $(grep -l '/usr/bin/env python' -r xpra)
125 %{__sed} -i -e 's,"/bin/udev_product_version","%{_bindir}/udev_product_version",' udev/rules.d/71-xpra-virtual-pointer.rules
126
127 %build
128 CC="%{__cc}" \
129 CFLAGS="%{rpmcflags}" \
130 %{__python} setup.py build \
131         --with-PIC \
132         --with-Xdummy \
133         %{__with_without client} \
134         %{__with_without clipboard} \
135         %{__with_without swscale csc_swscale} \
136         --with%{!?debug:out}-debug \
137         %{__with_without avcodec dec_avcodec2} \
138         %{__with_without ffmpeg enc_ffmpeg} \
139         %{__with_without x264 enc_x264} \
140         %{__with_without x265 enc_x265} \
141         --without-gtk2 \
142         --with-gtk3 \
143         %{__with_without opengl} \
144         %{__with_without server} \
145         %{__with_without server shadow} \
146         %{__with_without sound} \
147         --without-strict \
148         %{__with_without vpx} \
149         --with-warn \
150         %{__with_without webp} \
151         --with-x11 \
152         %{nil}
153
154 %install
155 rm -rf $RPM_BUILD_ROOT
156 %{__python} setup.py install \
157         --skip-build \
158         --prefix=%{_prefix} \
159         --install-purelib=%{py_sitescriptdir} \
160         --install-platlib=%{py_sitedir} \
161         --optimize=2 \
162         --root=$RPM_BUILD_ROOT
163
164 %{__rm} $RPM_BUILD_ROOT%{_datadir}/xpra/COPYING
165 %{__rm} $RPM_BUILD_ROOT%{_datadir}/xpra/README
166
167 install -d $RPM_BUILD_ROOT/lib/udev/rules.d
168 %{__mv} $RPM_BUILD_ROOT{%{_prefix},}/lib/udev/rules.d/71-xpra-virtual-pointer.rules
169
170 %py_postclean
171
172 %clean
173 rm -rf $RPM_BUILD_ROOT
174
175 %files
176 %defattr(644,root,root,755)
177 %doc NEWS README
178 %dir %{_sysconfdir}/%{name}
179 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/xorg.conf
180 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/xpra.conf
181 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/xorg-uinput.conf
182 %dir %{_sysconfdir}/%{name}/conf.d
183 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/05_features.conf
184 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/10_network.conf
185 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/12_ssl.conf
186 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/15_file_transfers.conf
187 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/16_printing.conf
188 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/20_sound.conf
189 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/30_picture.conf
190 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/35_webcam.conf
191 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/40_client.conf
192 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/42_client_keyboard.conf
193 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/50_server_network.conf
194 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/55_server_x11.conf
195 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/60_server.conf
196 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/65_proxy.conf
197 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/xpra
198 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/X11/xorg.conf.d/90-xpra-virtual.conf
199 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/xpra
200 /etc/dbus-1/system.d/xpra.conf
201 %{systemdunitdir}/xpra.service
202 %{systemdunitdir}/xpra.socket
203 /usr/lib/sysusers.d/xpra.conf
204 /lib/udev/rules.d/71-xpra-virtual-pointer.rules
205 %attr(755,root,root) %{_bindir}/udev_product_version
206 %attr(755,root,root) %{_bindir}/xpra
207 %attr(755,root,root) %{_bindir}/xpra_browser
208 %attr(755,root,root) %{_bindir}/xpra_launcher
209 %attr(755,root,root) %{_bindir}/xpra_signal_listener
210 %{_datadir}/appdata/xpra.appdata.xml
211 %{_datadir}/mime/packages/application-x-xpraconfig.xml
212 %dir %{_datadir}/xpra
213 %{_datadir}/xpra/bell.wav
214 %dir %{_datadir}/xpra/icons
215 %{_datadir}/xpra/icons/*.png
216 # experimental html5 client
217 %{_datadir}/%{name}/www
218 %{_desktopdir}/xpra.desktop
219 %{_desktopdir}/xpra-browser.desktop
220 %{_desktopdir}/xpra-launcher.desktop
221 %{_iconsdir}/xpra.png
222 %{_iconsdir}/xpra-mdns.png
223 %{systemdtmpfilesdir}/xpra.conf
224 # specified in the above (xpra group seems to be optional though)
225 #%attr(770,root,xpra) %dir /var/run/xpra
226 %{_mandir}/man1/xpra.1*
227 %{_mandir}/man1/xpra_browser.1*
228 %{_mandir}/man1/xpra_launcher.1*
229
230 %dir %{py_sitedir}/xpra
231 %dir %{py_sitedir}/xpra/buffers
232 %{py_sitedir}/xpra/buffers/__init__.py[co]
233 %attr(755,root,root) %{py_sitedir}/xpra/buffers/membuf.so
234 %{py_sitedir}/xpra/client
235 %{py_sitedir}/xpra/clipboard
236 %dir %{py_sitedir}/xpra/codecs
237 %dir %{py_sitedir}/xpra/codecs/argb
238 %attr(755,root,root) %{py_sitedir}/xpra/codecs/argb/argb.so
239 %{py_sitedir}/xpra/codecs/argb/__init__.py[co]
240 %dir %{py_sitedir}/xpra/codecs/csc_libyuv
241 %attr(755,root,root) %{py_sitedir}/xpra/codecs/csc_libyuv/colorspace_converter.so
242 %{py_sitedir}/xpra/codecs/csc_libyuv/__init__.py[co]
243 %if %{with swscale}
244 %dir %{py_sitedir}/xpra/codecs/csc_swscale
245 %attr(755,root,root) %{py_sitedir}/xpra/codecs/csc_swscale/colorspace_converter.so
246 %{py_sitedir}/xpra/codecs/csc_swscale/__init__.py[co]
247 %endif
248 %if %{with avcodec}
249 %dir %{py_sitedir}/xpra/codecs/dec_avcodec2
250 %attr(755,root,root) %{py_sitedir}/xpra/codecs/dec_avcodec2/decoder.so
251 %{py_sitedir}/xpra/codecs/dec_avcodec2/__init__.py[co]
252 %endif
253 %dir %{py_sitedir}/xpra/codecs/enc_proxy
254 %{py_sitedir}/xpra/codecs/enc_proxy/*.py[co]
255 %if %{with x264}
256 %dir %{py_sitedir}/xpra/codecs/enc_x264
257 %attr(755,root,root) %{py_sitedir}/xpra/codecs/enc_x264/encoder.so
258 %{py_sitedir}/xpra/codecs/enc_x264/__init__.py[co]
259 %endif
260 %if %{with x265}
261 %dir %{py_sitedir}/xpra/codecs/enc_x265
262 %attr(755,root,root) %{py_sitedir}/xpra/codecs/enc_x265/encoder.so
263 %{py_sitedir}/xpra/codecs/enc_x265/__init__.py[co]
264 %endif
265 %dir %{py_sitedir}/xpra/codecs/jpeg
266 %{py_sitedir}/xpra/codecs/jpeg/__init__.py[co]
267 %attr(755,root,root) %{py_sitedir}/xpra/codecs/jpeg/decoder.so
268 %attr(755,root,root) %{py_sitedir}/xpra/codecs/jpeg/encoder.so
269 %dir %{py_sitedir}/xpra/codecs/libav_common
270 %attr(755,root,root) %{py_sitedir}/xpra/codecs/libav_common/av_log.so
271 %{py_sitedir}/xpra/codecs/libav_common/__init__.py[co]
272 %{py_sitedir}/xpra/codecs/pillow
273 %dir %{py_sitedir}/xpra/codecs/v4l2
274 %attr(755,root,root) %{py_sitedir}/xpra/codecs/v4l2/pusher.so
275 %{py_sitedir}/xpra/codecs/v4l2/__init__.py[co]
276 %dir %{py_sitedir}/xpra/codecs/vpx
277 %attr(755,root,root) %{py_sitedir}/xpra/codecs/vpx/decoder.so
278 %attr(755,root,root) %{py_sitedir}/xpra/codecs/vpx/encoder.so
279 %{py_sitedir}/xpra/codecs/vpx/__init__.py[co]
280 %dir %{py_sitedir}/xpra/codecs/webp
281 %attr(755,root,root) %{py_sitedir}/xpra/codecs/webp/decode.so
282 %attr(755,root,root) %{py_sitedir}/xpra/codecs/webp/encode.so
283 %{py_sitedir}/xpra/codecs/webp/__init__.py[co]
284 %dir %{py_sitedir}/xpra/codecs/xor
285 %attr(755,root,root) %{py_sitedir}/xpra/codecs/xor/cyxor.so
286 %{py_sitedir}/xpra/codecs/xor/*.py[co]
287 %{py_sitedir}/xpra/codecs/*.py[co]
288 %{py_sitedir}/xpra/dbus
289 %dir %{py_sitedir}/xpra/gtk_common
290 %{py_sitedir}/xpra/gtk_common/*.py[co]
291 %dir %{py_sitedir}/xpra/gtk_common/gtk2
292 %{py_sitedir}/xpra/gtk_common/gtk2/__init__.py[co]
293 %attr(755,root,root) %{py_sitedir}/xpra/gtk_common/gtk2/gdk_atoms.so
294 %attr(755,root,root) %{py_sitedir}/xpra/gtk_common/gtk2/gdk_bindings.so
295 %{py_sitedir}/xpra/keyboard
296 %attr(755,root,root) %{py_sitedir}/xpra/monotonic_time.so
297 %dir %{py_sitedir}/xpra/net
298 %{py_sitedir}/xpra/net/mdns
299 %attr(755,root,root) %{py_sitedir}/xpra/net/vsock.so
300 %{py_sitedir}/xpra/net/*.py[co]
301 %dir %{py_sitedir}/xpra/net/bencode
302 %{py_sitedir}/xpra/net/bencode/*.py[co]
303 %attr(755,root,root) %{py_sitedir}/xpra/net/bencode/cython_bencode.so
304 %{py_sitedir}/xpra/platform
305 %{py_sitedir}/xpra/scripts
306 %dir %{py_sitedir}/xpra/server
307 %attr(755,root,root) %{py_sitedir}/xpra/server/cystats.so
308 %{py_sitedir}/xpra/server/*.py[co]
309 %dir %{py_sitedir}/xpra/server/auth
310 %{py_sitedir}/xpra/server/auth/*.py[co]
311 %{py_sitedir}/xpra/server/dbus
312 %attr(755,root,root) %{py_sitedir}/xpra/server/pam.so
313 %{py_sitedir}/xpra/server/proxy
314 %{py_sitedir}/xpra/server/rfb
315 %{py_sitedir}/xpra/server/shadow
316 %dir %{py_sitedir}/xpra/server/window
317 %attr(755,root,root) %{py_sitedir}/xpra/server/window/region.so
318 %{py_sitedir}/xpra/server/window/*.py[co]
319 %attr(755,root,root) %{py_sitedir}/xpra/server/window/motion.so
320 %{py_sitedir}/xpra/sound
321 %dir %{py_sitedir}/xpra/x11
322 %dir %{py_sitedir}/xpra/x11/bindings
323 %attr(755,root,root) %{py_sitedir}/xpra/x11/bindings/*.so
324 %{py_sitedir}/xpra/x11/bindings/__init__.py[co]
325 %{py_sitedir}/xpra/x11/dbus
326 %dir %{py_sitedir}/xpra/x11/gtk2
327 %attr(755,root,root) %{py_sitedir}/xpra/x11/gtk2/gdk_bindings.so
328 %attr(755,root,root) %{py_sitedir}/xpra/x11/gtk2/gdk_display_source.so
329 %{py_sitedir}/xpra/x11/gtk2/*.py[co]
330 %{py_sitedir}/xpra/x11/gtk2/models
331 %dir %{py_sitedir}/xpra/x11/gtk_x11
332 %{py_sitedir}/xpra/x11/gtk_x11/*.py[co]
333 %{py_sitedir}/xpra/x11/*.py[co]
334 %{py_sitedir}/xpra/*.py[co]
335 %{py_sitedir}/xpra-%{version}-py*.egg-info
336
337 %files -n cups-backend-xpra
338 %defattr(644,root,root,755)
339 %attr(756,root,root) %{cupsdir}/xpraforwarder
This page took 0.054744 seconds and 2 git commands to generate.