1 |
%define rel 1 |
2 |
%define codename Matrix |
3 |
|
4 |
%define kodi_dir xbmc-%{version}%{?kodi_rc:%{kodi_rc}}-%{codename} |
5 |
%define kodi_rel %mkrel %{rel} |
6 |
|
7 |
%if "%distro_section" == "tainted" |
8 |
%define with_dvdcss 1 |
9 |
%else |
10 |
%define with_dvdcss 0 |
11 |
%endif |
12 |
|
13 |
%define _firewalld %{_prefix}/lib/firewalld |
14 |
|
15 |
Name: kodi |
16 |
Version: 19.4 |
17 |
Release: %{kodi_rel} |
18 |
Summary: Kodi - media player and home entertainment system |
19 |
Group: Video/Players |
20 |
License: GPLv2+ and GPLv2 and (LGPLv3+ with exceptions) |
21 |
URL: https://kodi.tv |
22 |
Source0: https://github.com/xbmc/xbmc/archive/%{version}%{?kodi_rc:%{kodi_rc}}-%{codename}/%{name}-%{version}%{?kodi_rc:%{kodi_rc}}-%{codename}.tar.gz |
23 |
Source2: https://github.com/xbmc/libdvdcss/archive/1.4.2-Leia-Beta-5.tar.gz#/libdvdcss-1.4.2-Leia-Beta-5.tar.gz |
24 |
Source3: https://github.com/xbmc/libdvdnav/archive/6.0.0-Leia-Alpha-3.tar.gz#/libdvdnav-6.0.0-Leia-Alpha-3.tar.gz |
25 |
Source4: https://github.com/xbmc/libdvdread/archive/6.0.0-Leia-Alpha-3.tar.gz#/libdvdread-6.0.0-Leia-Alpha-3.tar.gz |
26 |
|
27 |
Source10: cpuinfo |
28 |
Source11: VERSION |
29 |
|
30 |
Patch0: kodi-18.0-add-url_hash_for_libdvdcss.patch |
31 |
Patch1: kodi-18.0-add-url_hash_for_libdvdnav.patch |
32 |
Patch2: kodi-18.0-add-url_hash_for_libdvdread.patch |
33 |
Patch3: kodi-19.0-remove-git-string.patch |
34 |
#Patch4: kodi-17.3-checkperms.patch |
35 |
Patch5: cheat-sse-build.patch |
36 |
|
37 |
BuildRequires: autoconf |
38 |
BuildRequires: cmake |
39 |
BuildRequires: ninja |
40 |
BuildRequires: pkgconfig(expat) |
41 |
BuildRequires: ffmpeg-devel |
42 |
BuildRequires: pkgconfig(cwiid) |
43 |
BuildRequires: pkgconfig(libass) |
44 |
BuildRequires: pkgconfig(libcdio) |
45 |
BuildRequires: crossguid-devel |
46 |
BuildRequires: pkgconfig(libcurl) |
47 |
BuildRequires: flatbuffers-devel |
48 |
BuildRequires: cmake(fmt) |
49 |
BuildRequires: pkgconfig(freetype2) |
50 |
BuildRequires: pkgconfig(fribidi) |
51 |
BuildRequires: pkgconfig(dvdread) |
52 |
BuildRequires: pkgconfig(dvdnav) |
53 |
BuildRequires: pkgconfig(lzo2) |
54 |
BuildRequires: pkgconfig(openssl) |
55 |
BuildRequires: pcre2-devel |
56 |
BuildRequires: pkgconfig(libpcrecpp) |
57 |
BuildRequires: rapidjson |
58 |
BuildRequires: pkgconfig(sqlite3) |
59 |
BuildRequires: pkgconfig(taglib) |
60 |
BuildRequires: pkgconfig(tinyxml) |
61 |
BuildRequires: pkgconfig(alsa) |
62 |
BuildRequires: pkgconfig(avahi-core) |
63 |
BuildRequires: pkgconfig(bluez) |
64 |
BuildRequires: pkgconfig(libbluray) |
65 |
BuildRequires: pkgconfig(libcap) |
66 |
BuildRequires: pkgconfig(libcec) |
67 |
BuildRequires: pkgconfig(dbus-1) |
68 |
BuildRequires: pkgconfig(lcms2) |
69 |
BuildRequires: pkgconfig(liblircclient0) |
70 |
BuildRequires: pkgconfig(libmicrohttpd) |
71 |
BuildRequires: pkgconfig(libnfs) |
72 |
BuildRequires: pkgconfig(libpulse) |
73 |
BuildRequires: pkgconfig(python3) |
74 |
BuildRequires: pkgconfig(smbclient) |
75 |
BuildRequires: sndio-devel |
76 |
BuildRequires: pkgconfig(libudev) |
77 |
BuildRequires: pkgconfig(libxslt) |
78 |
BuildRequires: graphviz |
79 |
BuildRequires: doxygen |
80 |
BuildRequires: mesaegl-devel |
81 |
BuildRequires: pkgconfig(egl) |
82 |
BuildRequires: pkgconfig(gl) |
83 |
BuildRequires: pkgconfig(glu) |
84 |
BuildRequires: pkgconfig(libdrm) |
85 |
BuildRequires: pkgconfig(mariadb) |
86 |
BuildRequires: pkgconfig(libplist-2.0) |
87 |
BuildRequires: pkgconfig(libupnp) |
88 |
BuildRequires: pkgconfig(xrandr) |
89 |
BuildRequires: pkgconfig(libjpeg) |
90 |
BuildRequires: pkgconfig(dvdnav) |
91 |
BuildRequires: pkgconfig(libpng) |
92 |
BuildRequires: pkgconfig(uuid) |
93 |
BuildRequires: pkgconfig(libxslt) |
94 |
BuildRequires: pkgconfig(x11) |
95 |
BuildRequires: pkgconfig(zlib) |
96 |
BuildRequires: giflib-devel |
97 |
BuildRequires: git-core |
98 |
BuildRequires: glibc-devel |
99 |
BuildRequires: java-11-openjdk-headless |
100 |
BuildRequires: shairplay-devel |
101 |
BuildRequires: swig |
102 |
BuildRequires: yasm |
103 |
BuildRequires: pkgconfig(fstrcmp) |
104 |
BuildRequires: pkgconfig(spdlog) |
105 |
BuildRequires: pkgconfig(libudfread) |
106 |
BuildRequires: pkgconfig(wavpack) |
107 |
BuildRequires: pkgconfig(wayland-client++) |
108 |
BuildRequires: pkgconfig(wayland-protocols) |
109 |
BuildRequires: pkgconfig(xkbcommon) |
110 |
BuildRequires: pkgconfig(libinput) |
111 |
|
112 |
%ifarch %ix86 |
113 |
BuildRequires: nasm |
114 |
%endif |
115 |
|
116 |
Requires: lsb-release |
117 |
|
118 |
# TODO: FEH.py is useless nowadays, drop it here and upstream. |
119 |
# for FEH.py, to check current configuration is ok for xbmc: |
120 |
Requires: xdpyinfo |
121 |
Requires: glxinfo |
122 |
# for xbmc python scripts: |
123 |
Requires: python3dist(pillow) |
124 |
|
125 |
Provides: xbmc = %{version}-%{release} |
126 |
|
127 |
%description |
128 |
Kodi is an award-winning free and open source software media player |
129 |
and entertainment hub for digital media. |
130 |
|
131 |
While Kodi functions very well as a standard media player application |
132 |
for your computer, it has been designed to be the perfect companion |
133 |
for your HTPC. Supporting an almost endless range of remote controls, |
134 |
and combined with its beautiful interface and powerful skinning |
135 |
engine, Kodi feels very natural to use from the couch and is the |
136 |
ideal solution for your home theater. |
137 |
|
138 |
%if %with_dvdcss |
139 |
The tainted package contains support for DVDCSS. |
140 |
%endif |
141 |
|
142 |
%package firewalld-services |
143 |
Summary: Firewall services for Kodi |
144 |
Group: Video/Players |
145 |
License: GPLv2+ |
146 |
BuildArch: noarch |
147 |
Requires(pre): firewalld-filesystem |
148 |
Requires: %{name} >= %{version}-%{release} |
149 |
|
150 |
%description firewalld-services |
151 |
Kodi is an award-winning free and open source software media player |
152 |
and entertainment hub for digital media. |
153 |
|
154 |
This package contains the firewall services for Kodi. |
155 |
|
156 |
%package addon-devel |
157 |
Summary: Development files for Kodi |
158 |
Group: Development/C |
159 |
License: GPLv2+ |
160 |
|
161 |
%description addon-devel |
162 |
Kodi is an award-winning free and open source software media player |
163 |
and entertainment hub for digital media. |
164 |
|
165 |
This package contains files needed to build addons and eventclients. |
166 |
|
167 |
%package eventclients-common |
168 |
Summary: Common files for Kodi eventclients |
169 |
Group: Video/Players |
170 |
License: GPLv2+ |
171 |
Requires: %{name} = %{version}-%{release} |
172 |
Requires: %{name}-python = %{version}-%{release} |
173 |
|
174 |
%description eventclients-common |
175 |
Kodi is an award-winning free and open source software media player |
176 |
and entertainment hub for digital media. |
177 |
|
178 |
This package contains common files for eventclients. |
179 |
|
180 |
%package eventclient-ps3 |
181 |
Summary: PS3 eventclients for Kodi |
182 |
Group: Video/Players |
183 |
License: GPLv2+ |
184 |
Requires: python3dist(pybluez) |
185 |
Requires: %{name}-eventclients-common = %{version}-%{release} |
186 |
# requires via zeroconf.py, only used by xbmc-ps3d: |
187 |
Requires: python3-gobject |
188 |
Requires: python3dist(dbus-python) |
189 |
|
190 |
%description eventclient-ps3 |
191 |
Kodi is an award-winning free and open source software media player |
192 |
and entertainment hub for digital media. |
193 |
|
194 |
This package contains the PS3 remote and sixaxis eventclients. |
195 |
|
196 |
%package eventclient-wiiremote |
197 |
Summary: Wii Remote eventclient for Kodi |
198 |
Group: Video/Players |
199 |
License: GPLv3+ |
200 |
Requires: %{name}-eventclients-common = %{version}-%{release} |
201 |
|
202 |
%description eventclient-wiiremote |
203 |
Kodi is an award-winning free and open source software media player |
204 |
and entertainment hub for digital media. |
205 |
|
206 |
This package contains the Wii Remote eventclient. |
207 |
|
208 |
%package eventclient-%{name}-send |
209 |
Summary: PS3 eventclient for Kodi |
210 |
Group: Video/Players |
211 |
License: GPLv2+ |
212 |
Requires: %{name}-eventclients-common = %{version}-%{release} |
213 |
|
214 |
%description eventclient-%{name}-send |
215 |
Kodi is an award-winning free and open source software media player |
216 |
and entertainment hub for digital media. |
217 |
|
218 |
This package contains the %{name}-send eventclient. |
219 |
|
220 |
%package python-bt |
221 |
Summary: Bluetooth Python scripts for Kodi |
222 |
Group: Video/Players |
223 |
License: GPLv2+ |
224 |
Requires: %{name} >= %{version}-%{release} |
225 |
BuildArch: noarch |
226 |
|
227 |
%description python-bt |
228 |
Kodi is an award-winning free and open source software media player |
229 |
and entertainment hub for digital media. |
230 |
|
231 |
This package contains the bluetooth python scripts. |
232 |
|
233 |
%package python |
234 |
Summary: Common Python scripts for Kodi |
235 |
Group: Video/Players |
236 |
License: GPLv2+ |
237 |
Requires: %{name} >= %{version}-%{release} |
238 |
BuildArch: noarch |
239 |
|
240 |
%description python |
241 |
Kodi is an award-winning free and open source software media player |
242 |
and entertainment hub for digital media. |
243 |
|
244 |
This package contains the common python scripts for Kodi. |
245 |
|
246 |
%package python-xbmcclient |
247 |
Summary: XBMCClient Python scripts for Kodi |
248 |
Group: Video/Players |
249 |
License: GPLv2+ |
250 |
Requires: %{name} >= %{version}-%{release} |
251 |
BuildArch: noarch |
252 |
|
253 |
%description python-xbmcclient |
254 |
Kodi is an award-winning free and open source software media player |
255 |
and entertainment hub for digital media. |
256 |
|
257 |
This package contains the xbmcclient python scripts. |
258 |
|
259 |
%package python-zeroconf |
260 |
Summary: Zeroconf Python scripts for Kodi |
261 |
Group: Video/Players |
262 |
License: GPLv2+ |
263 |
Requires: %{name} >= %{version}-%{release} |
264 |
BuildArch: noarch |
265 |
|
266 |
%description python-zeroconf |
267 |
Kodi is an award-winning free and open source software media player |
268 |
and entertainment hub for digital media. |
269 |
|
270 |
This package contains the zeroconf python scripts. |
271 |
|
272 |
%package texturepacker |
273 |
Summary: Zeroconf Python scripts for Kodi |
274 |
Group: Video/Players |
275 |
License: GPLv2+ |
276 |
Requires: %{name} = %{version}-%{release} |
277 |
|
278 |
%description texturepacker |
279 |
Kodi is an award-winning free and open source software media player |
280 |
and entertainment hub for digital media. |
281 |
|
282 |
This package contains the Texturepacker program for Kodi. |
283 |
|
284 |
%prep |
285 |
%autosetup -p1 -n %{kodi_dir} |
286 |
|
287 |
cp %{S:10} /tmp/ |
288 |
cp %{S:11} . |
289 |
|
290 |
# otherwise backups end up in binary rpms |
291 |
find -type f \( -name '*.00??' -o -name '*.00??~' \) -print -delete |
292 |
|
293 |
# remove prebuilt libraries |
294 |
find -type f \( -iname '*.so' -o -iname '*.dll' -o -iname '*.exe' \) -print -delete |
295 |
|
296 |
pathfix.py -pni "%{__python3} %{py3_shbang_opts}" \ |
297 |
addons lib tools |
298 |
|
299 |
%build |
300 |
export GIT_DISCOVERY_ACROSS_FILESYSTEM=1 |
301 |
export PKGCONFIGPATH=${PKG_CONFIG_PATH}:%{_libdir}/pkgconfig:%{_prefix}/lib |
302 |
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:%{_libdir}/pkgconfig:%{_prefix}/lib |
303 |
|
304 |
%cmake -GNinja \ |
305 |
-DX11_RENDER_SYSTEM=gl \ |
306 |
-DKODI_DEPENDSBUILD=OFF \ |
307 |
-DENABLE_STATIC_LIBS=OFF \ |
308 |
-DENABLE_INTERNAL_FFMPEG=OFF \ |
309 |
-DENABLE_INTERNAL_FLATBUFFERS=OFF \ |
310 |
-DENABLE_INTERNAL_FMT=OFF \ |
311 |
-DENABLE_INTERNAL_CROSSGUID=OFF \ |
312 |
-DENABLE_INTERNAL_FSTRCMP=OFF \ |
313 |
-DENABLE_INTERNAL_DAV1D=OFF \ |
314 |
-DENABLE_INTERNAL_LIBDVD=OFF \ |
315 |
-DENABLE_INTERNAL_UDFREAD=OFF \ |
316 |
-DENABLE_INTERNAL_GTEST=OFF \ |
317 |
-DENABLE_EVENTCLIENTS=ON \ |
318 |
-DENABLE_UDFREAD=ON \ |
319 |
-DENABLE_LIRCCLIENT=ON \ |
320 |
-DENABLE_CCACHE=OFF \ |
321 |
-DENABLE_TESTING=OFF \ |
322 |
-DWITH_FFMPEG=%{_prefix} \ |
323 |
-DFFMPEG_PATH=%{_prefix} \ |
324 |
-DENABLE_APP_AUTONAME=ON \ |
325 |
-DFREETYPE_INCLUDE_DIR=%{_includedir}/freetype2 \ |
326 |
-DGIT_VERSION="by %{_vendor}" \ |
327 |
-DLIBDVD_LIBRARIES=%{_libdir} \ |
328 |
-DLIBDVD_INCLUDE_DIRS=%{_includedir} \ |
329 |
%if %with_dvdcss |
330 |
-DLIBDVDCSS_URL=%{SOURCE2} \ |
331 |
-DENABLE_DVDCSS=ON \ |
332 |
%else |
333 |
-DENABLE_DVDCSS=OFF \ |
334 |
%endif |
335 |
-DLIBDVDNAV_URL=%{SOURCE3} \ |
336 |
-DLIBDVDREAD_URL=%{SOURCE4} \ |
337 |
-DPKGCONFIGPATH=${PKG_CONFIG_PATH}:%{_libdir}/pkgconfig \ |
338 |
-DPYTHON_EXECUTABLE=%{__python3} \ |
339 |
-DPYTHON_INCLUDE_DIR=%{_includedir}/python%{pyver} \ |
340 |
-DCROSSGUID_INCLUDE_DIR=%{_includedir}/crossguid \ |
341 |
-DAPP_RENDER_SYSTEM=gl |
342 |
|
343 |
%cmake_build |
344 |
|
345 |
%install |
346 |
%cmake_install |
347 |
|
348 |
rm -rf %{buildroot}%{_datadir}/kodi/system/certs/ |
349 |
|
350 |
%clean |
351 |
rm -f /tmp/cpuinfo |
352 |
|
353 |
%files texturepacker |
354 |
%{_bindir}/TexturePacker |
355 |
|
356 |
%files |
357 |
%{_bindir}/%{name} |
358 |
%{_bindir}/%{name}-standalone |
359 |
%{_libdir}/%{name}/ |
360 |
%exclude %{_datadir}/%{name}/cmake/ |
361 |
%{_datadir}/applications/%{name}.desktop |
362 |
%{_datadir}/xsessions/%{name}.desktop |
363 |
%{_docdir}/%{name}/ |
364 |
%{_iconsdir}/hicolor/*/apps/%{name}.png |
365 |
%{_datadir}/%{name}/ |
366 |
%{_datadir}/metainfo/org.xbmc.kodi.metainfo.xml |
367 |
|
368 |
%files firewalld-services |
369 |
%{_firewalld}/services/%{name}-eventserver.xml |
370 |
%{_firewalld}/services/%{name}-http.xml |
371 |
%{_firewalld}/services/%{name}-jsonrpc.xml |
372 |
|
373 |
%files addon-devel |
374 |
%{_bindir}/JsonSchemaBuilder |
375 |
%{_includedir}/%{name} |
376 |
%{_datadir}/%{name}/cmake/ |
377 |
|
378 |
%files eventclients-common |
379 |
%dir %{_datadir}/pixmaps/%{name} |
380 |
%{_datadir}/pixmaps/%{name}/*.png |
381 |
|
382 |
%files eventclient-ps3 |
383 |
%{_bindir}/%{name}-ps3remote |
384 |
%{python3_sitelib}/%{name}/ps3/ |
385 |
%{python3_sitelib}/%{name}/__pycache__/ps3* |
386 |
%{python3_sitelib}/%{name}/ps3_remote.* |
387 |
|
388 |
%files eventclient-%{name}-send |
389 |
%{_bindir}/%{name}-send |
390 |
|
391 |
%files eventclient-wiiremote |
392 |
%{_bindir}/kodi-wiiremote |
393 |
|
394 |
%files python-bt |
395 |
%{python3_sitelib}/%{name}/bt/ |
396 |
|
397 |
%files python |
398 |
%{python3_sitelib}/%{name}/defs.* |
399 |
%{python3_sitelib}/%{name}/__init__.* |
400 |
%{python3_sitelib}/%{name}/__pycache__/__init* |
401 |
%{python3_sitelib}/%{name}/__pycache__/defs* |
402 |
|
403 |
%files python-xbmcclient |
404 |
%{python3_sitelib}/%{name}/xbmcclient.* |
405 |
%{python3_sitelib}/%{name}/__pycache__/xbmc* |
406 |
|
407 |
%files python-zeroconf |
408 |
%{python3_sitelib}/%{name}/zeroconf.* |
409 |
%{python3_sitelib}/%{name}/__pycache__/zero* |
410 |
|