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