]>
Commit | Line | Data |
---|---|---|
18b90c81 | 1 | # TODO: |
3a71016a | 2 | # - fix build flags - some files are compiled with -O3 and without rpm*flags |
92b96980 | 3 | # - add and/or fix users/groups permissions |
63ff963e | 4 | # - split to subpackages? |
928406b7 | 5 | # - bundled ffmpeg build (tools/depends/target/ffmpeg/autobuild.sh) enables nonfree & gpl! |
18b90c81 | 6 | # |
92b96980 | 7 | # Conditional build: |
ceb94d36 | 8 | # Features: |
c0d69361 | 9 | %bcond_with airtunes # AirTunes support |
ceb94d36 | 10 | %bcond_without dvdcss # DVDCSS support |
9ba2f18c | 11 | %bcond_without gbm # GBM platform |
ceb94d36 | 12 | %bcond_without optical_drive # optical drive |
e148a10d | 13 | %bcond_without upnp # UPnP support |
9ba2f18c | 14 | %bcond_without x11 # X11 platform |
3b778467 JP |
15 | %ifarch %{arm} aarch64 |
16 | %bcond_without gles # OpenGL rendering | |
17 | %else | |
e148a10d | 18 | %bcond_with gles # OpenGLES rendering |
3b778467 | 19 | %endif |
9ba2f18c | 20 | %bcond_without wayland # Wayland platform |
ceb94d36 | 21 | # System libs: |
6e5f6f0e | 22 | %bcond_without system_ffmpeg # build with system ffmpeg |
9ba2f18c JP |
23 | # CPU instructions |
24 | %bcond_with avx # use AVX instructions | |
25 | %bcond_with avx2 # use AVX2 instructions | |
26 | %bcond_with neon # use NEON instructions | |
27 | %bcond_with sse # use SSE instructions | |
28 | %bcond_with sse2 # use SSE2 instructions | |
29 | %bcond_with sse3 # use SSE3 instructions | |
30 | %bcond_with ssse3 # use SSSE3 instructions | |
31 | %bcond_with sse41 # use SSE4.1 instructions | |
32 | %bcond_with sse42 # use SSE4.2 instructions | |
92b96980 | 33 | |
9ba2f18c JP |
34 | %ifarch %{arm_with_neon} |
35 | %define with_neon 1 | |
36 | %endif | |
37 | %ifarch %{x86_with_sse} | |
38 | %define with_sse 1 | |
39 | %endif | |
40 | %ifarch %{x86_with_sse2} | |
41 | %define with_sse2 1 | |
42 | %endif | |
43 | ||
44 | %define codename Matrix | |
0ac32cd1 | 45 | #define subver rc1 |
d61811e9 | 46 | Summary: Kodi is a free and open source media-player and entertainment hub |
92b53b2c | 47 | Name: kodi |
9ba2f18c JP |
48 | Version: 19.3 |
49 | Release: 1 | |
68612b1e | 50 | License: GPL v2+ and GPL v3+ |
18b90c81 | 51 | Group: Applications/Multimedia |
caf463a3 | 52 | #Source0Download: https://github.com/xbmc/xbmc/releases |
0ac32cd1 | 53 | Source0: https://github.com/xbmc/xbmc/archive/%{version}-%{codename}.tar.gz |
9ba2f18c JP |
54 | # Source0-md5: 623583e6eac14668468d6c5628b8f1c5 |
55 | Patch0: disable-static.patch | |
56 | Patch1: libdvd.patch | |
0ac32cd1 | 57 | URL: https://kodi.tv/ |
a983002d | 58 | BuildRequires: EGL-devel |
9ba2f18c JP |
59 | %{?with_gbm:BuildRequires: Mesa-libgbm-devel} |
60 | # for eglextchromium.h | |
61 | %{?with_x11:BuildRequires: Mesa-libEGL-devel} | |
62 | %if %{without gles} | |
8fa5c2e4 | 63 | BuildRequires: OpenGL-GLU-devel |
b85db44b | 64 | BuildRequires: OpenGL-devel |
9ba2f18c JP |
65 | %if %{with x11} |
66 | BuildRequires: OpenGL-GLX-devel | |
67 | %endif | |
68 | %endif | |
69 | %{?with_gles:BuildRequires: OpenGLES-devel} | |
70 | BuildRequires: alsa-lib-devel >= 1.0.27 | |
18b90c81 | 71 | BuildRequires: avahi-devel |
b85db44b | 72 | BuildRequires: bluez-libs-devel >= 4.99 |
be17bf9f | 73 | BuildRequires: cmake >= 3.4 |
c3c3c480 | 74 | BuildRequires: crossguid-devel |
18b90c81 | 75 | BuildRequires: curl-devel |
9de0d888 | 76 | %{!?with_system_ffmpeg:BuildRequires: dav1d-devel} |
18b90c81 | 77 | BuildRequires: dbus-devel |
9ba2f18c JP |
78 | # libavcodec >= 58.91.100 libavfilter >= 7.85.100 libavformat >= 58.45.100 libavutil >= 56.51.100 libpostproc >= 55.7.100 libswscale >= 5.7.100 libswresample >= 3.7.100 |
79 | %{?with_system_ffmpeg:BuildRequires: ffmpeg-devel >= 4.3} | |
60818254 | 80 | BuildRequires: flatbuffers-devel >= 1.9.0 |
18b90c81 SP |
81 | BuildRequires: fontconfig-devel |
82 | BuildRequires: freetype-devel | |
83 | BuildRequires: fribidi-devel | |
9ba2f18c | 84 | BuildRequires: fstrcmp-devel >= 0.7 |
0747666f | 85 | BuildRequires: gettext-tools |
9ba2f18c | 86 | BuildRequires: giflib-devel >= 5 |
20c6d413 | 87 | BuildRequires: lcms2-devel |
b85db44b | 88 | BuildRequires: libass-devel |
a7c53f4c | 89 | BuildRequires: libatomic-devel |
9ba2f18c | 90 | BuildRequires: libbluray-devel >= 0.9.3 |
37fbe511 | 91 | BuildRequires: libcap-devel |
9ba2f18c JP |
92 | BuildRequires: libcdio-c++-devel >= 2.1.0 |
93 | BuildRequires: libcdio-devel >= 2.1.0 | |
94 | BuildRequires: libcec-devel >= 3.0.0 | |
95 | BuildRequires: libdrm-devel >= 2.4.95 | |
96 | %{?with_dvdcss:BuildRequires: libdvdcss-devel >= 1.4.1} | |
97 | BuildRequires: libdvdnav-devel | |
98 | BuildRequires: libdvdread-devel | |
99 | BuildRequires: libfmt-devel >= 6.1.2 | |
100 | %{?with_gbm:BuildRequires: libinput-devel} | |
18b90c81 | 101 | BuildRequires: libjpeg-devel |
88da6d7b | 102 | BuildRequires: libmicrohttpd-devel >= 0.9.40 |
9ba2f18c JP |
103 | BuildRequires: libnfs-devel |
104 | BuildRequires: libplist-devel >= 2.0 | |
5a2f2b01 | 105 | BuildRequires: libpng-devel |
18b90c81 | 106 | BuildRequires: libsmbclient-devel |
9ba2f18c JP |
107 | BuildRequires: libstdc++-devel >= 6:5 |
108 | BuildRequires: libudfread-devel >= 1.0.0 | |
f99f2533 | 109 | BuildRequires: libuuid-devel |
b85db44b | 110 | BuildRequires: libva-devel |
9ba2f18c JP |
111 | BuildRequires: libva-drm-devel |
112 | %{?with_wayland:BuildRequires: libva-wayland-devel} | |
113 | %{?with_x11:BuildRequires: libva-x11-devel} | |
114 | %if %{with x11} && %{without gles} | |
5a2f2b01 | 115 | BuildRequires: libvdpau-devel |
9ba2f18c | 116 | %endif |
8fa5c2e4 | 117 | BuildRequires: libxml2-devel >= 2.0 |
501e1d3e | 118 | BuildRequires: libxslt-devel |
9ba2f18c JP |
119 | BuildRequires: lirc-devel |
120 | BuildRequires: lzo-devel >= 2 | |
5a2f2b01 | 121 | BuildRequires: mysql-devel |
9ba2f18c | 122 | BuildRequires: openssl-devel >= 1.0.2 |
63ff963e | 123 | BuildRequires: pcre-cxx-devel |
5a2f2b01 | 124 | BuildRequires: pkgconfig |
9ba2f18c JP |
125 | BuildRequires: pulseaudio-devel >= 11.0.0 |
126 | BuildRequires: python3-devel >= 1:3.8 | |
127 | BuildRequires: rapidjson-devel >= 1.1.0 | |
3a71016a | 128 | BuildRequires: rpm-pythonprov |
9ba2f18c | 129 | BuildRequires: rpmbuild(macros) >= 2.007 |
c462fd57 | 130 | BuildRequires: sed >= 4.0 |
9ba2f18c | 131 | BuildRequires: spdlog-devel >= 1.5.0 |
18b90c81 | 132 | BuildRequires: sqlite3-devel |
37fbe511 | 133 | BuildRequires: swig |
9ba2f18c | 134 | BuildRequires: taglib-devel >= 1.9.0 |
8fa5c2e4 | 135 | BuildRequires: tinyxml-devel >= 2.6.2 |
b85db44b | 136 | BuildRequires: udev-devel |
9ba2f18c JP |
137 | %if %{with wayland} |
138 | BuildRequires: wayland-protocols >= 1.7 | |
139 | BuildRequires: waylandpp-devel >= 0.2.2 | |
140 | %endif | |
141 | %if %{with x11} | |
b85db44b AF |
142 | BuildRequires: xorg-lib-libX11-devel |
143 | BuildRequires: xorg-lib-libXext-devel | |
18b90c81 | 144 | BuildRequires: xorg-lib-libXrandr-devel |
9ba2f18c JP |
145 | %endif |
146 | %if %{with gbm} || %{with wayland} | |
147 | BuildRequires: xorg-lib-libxkbcommon-devel >= 0.4.1 | |
148 | %endif | |
18b90c81 | 149 | BuildRequires: zlib-devel |
9ba2f18c | 150 | Requires: %{name}-common = %{version}-%{release} |
63ff963e | 151 | Requires: /usr/bin/glxinfo |
9ba2f18c JP |
152 | Requires: alsa-lib >= 1.0.27 |
153 | Requires: desktop-file-utils | |
154 | Requires: ffmpeg-libs >= 4.3 | |
155 | Requires: flatbuffers >= 1.9.0 | |
156 | Requires: hicolor-icon-theme | |
157 | Requires: libbluray >= 0.9.3 | |
158 | Requires: libcdio >= 2.1.0 | |
159 | Requires: libcdio-c++ >= 2.1.0 | |
160 | Requires: libcec >= 3.0.0 | |
161 | Requires: libdrm >= 2.4.95 | |
162 | %{?with_dvdcss:Requires: libdvdcss >= 1.4.1} | |
163 | Requires: libfmt >= 6.1.2 | |
164 | Requires: libmicrohttpd >= 0.9.40 | |
165 | Requires: libplist >= 2.0 | |
166 | Requires: libudfread >= 1.0.0 | |
a58652d4 | 167 | Requires: lsb-release |
9ba2f18c JP |
168 | Requires: openssl >= 1.0.2 |
169 | Requires: pulseaudio-libs >= 11.0.0 | |
170 | Requires: spdlog >= 1.5.0 | |
171 | Requires: taglib >= 1.9.0 | |
172 | Requires: tinyxml >= 2.6.2 | |
173 | %{?with_wayland:Requires: waylandpp >= 0.2.2} | |
174 | %if %{with gbm} || %{with wayland} | |
175 | Requires: xorg-lib-libxkbcommon >= 0.4.1 | |
176 | %endif | |
92b53b2c | 177 | Obsoletes: xbmc < 14.0 |
18b90c81 SP |
178 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
179 | ||
180 | %description | |
d61811e9 ER |
181 | Kodi Entertainment Center (formerly XBMC) is a free and open-source |
182 | media player software developed by the XBMC Foundation, a non-profit | |
183 | technology consortium. Kodi is available for multiple operating | |
184 | systems and hardware platforms, with a software 10-foot user interface | |
185 | for use with televisions and remote controls. It allows users to play | |
186 | and view most videos, music, such as podcasts from the internet, and | |
187 | all common digital media files from local and network storage media. | |
18b90c81 | 188 | |
9ba2f18c JP |
189 | %package common |
190 | Summary: Common files for Kodi | |
191 | BuildArch: noarch | |
192 | ||
193 | %description common | |
194 | Common files for Kodi. | |
195 | ||
196 | %package devel | |
197 | Summary: Header files for Kodi | |
198 | Group: Development/Libraries | |
199 | Requires: %{name}-common = %{version}-%{release} | |
200 | ||
201 | %description devel | |
202 | Header files for Kodi. | |
203 | ||
18b90c81 | 204 | %prep |
2d334bbb | 205 | %setup -q -n xbmc-%{version}%{?subver}-%{codename} |
9ba2f18c | 206 | %patch0 -p1 |
af2a7b89 | 207 | %patch1 -p1 |
18b90c81 | 208 | |
8fa5c2e4 | 209 | %{__rm} -r lib/win32 |
5d47de93 | 210 | |
72cf5436 | 211 | %if %{without system_ffmpeg} |
c3c3c480 | 212 | #ln -s %{SOURCE1} tools/depends/target/ffmpeg/ffmpeg-2.4.4-%{codename}.tar.gz |
928406b7 ER |
213 | %endif |
214 | ||
18b90c81 | 215 | %build |
9ba2f18c JP |
216 | %cmake -B build \ |
217 | -DAPP_RENDER_SYSTEM=%{!?with_gles:gl}%{?with_gles:gles} \ | |
218 | -DCORE_PLATFORM_NAME="%{?with_gbm:GBM;}%{?with_x11:X11;}%{?with_wayland:WAYLAND;}" \ | |
219 | %{cmake_on_off airtunes ENABLE_AIRTUNES} \ | |
220 | %{cmake_on_off dvdcss ENABLE_DVDCSS} \ | |
221 | -DENABLE_INTERNAL_CROSSGUID:BOOL=OFF \ | |
222 | -DENABLE_INTERNAL_DAV1D:BOOL=OFF \ | |
9b1af85b | 223 | -DENABLE_INTERNAL_FFMPEG:BOOL=%{?with_system_ffmpeg:OFF}%{!?with_system_ffmpeg:ON} \ |
9ba2f18c JP |
224 | -DENABLE_INTERNAL_FLATBUFFERS:BOOL=OFF \ |
225 | -DENABLE_INTERNAL_FMT:BOOL=OFF \ | |
226 | -DENABLE_INTERNAL_FSTRCMP:BOOL=OFF \ | |
227 | -DENABLE_INTERNAL_LIBDVD:BOOL=OFF \ | |
228 | -DENABLE_INTERNAL_RapidJSON:BOOL=OFF \ | |
229 | -DENABLE_INTERNAL_SPDLOG:BOOL=OFF \ | |
230 | -DENABLE_INTERNAL_UDFREAD:BOOL=OFF \ | |
231 | -DENABLE_LDGOLD:BOOL=OFF \ | |
232 | -DENABLE_TESTING:BOOL=OFF \ | |
233 | %{cmake_on_off optical_drive ENABLE_OPTICAL} \ | |
234 | %{cmake_on_off upnp ENABLE_UPNP} \ | |
235 | %{cmake_on_off avx ENABLE_AVX} \ | |
236 | %{cmake_on_off avx2 ENABLE_AVX2} \ | |
237 | %{cmake_on_off neon ENABLE_NEON} \ | |
238 | %{cmake_on_off sse ENABLE_SSE} \ | |
239 | %{cmake_on_off sse2 ENABLE_SSE2} \ | |
240 | %{cmake_on_off sse3 ENABLE_SSE3} \ | |
241 | %{cmake_on_off ssse3 ENABLE_SSSE3} \ | |
242 | %{cmake_on_off sse41 ENABLE_SSE4_1} \ | |
243 | %{cmake_on_off sse42 ENABLE_SSE4_2} | |
68612b1e | 244 | |
9ba2f18c | 245 | %{__make} -C build |
18b90c81 SP |
246 | |
247 | %install | |
248 | rm -rf $RPM_BUILD_ROOT | |
9ba2f18c | 249 | |
be17bf9f | 250 | %{__make} -C build install \ |
92b96980 | 251 | DESTDIR=$RPM_BUILD_ROOT |
18b90c81 | 252 | |
005f83ba | 253 | %{__rm} $RPM_BUILD_ROOT%{_docdir}/{version.txt,README.Linux.md,LICENSE.md} |
e36884e8 ER |
254 | |
255 | # not packaged | |
256 | %{__rm} $RPM_BUILD_ROOT%{_prefix}/lib/firewalld/services/kodi-*.xml | |
25890c53 | 257 | |
18b90c81 SP |
258 | %clean |
259 | rm -rf $RPM_BUILD_ROOT | |
260 | ||
9ba2f18c JP |
261 | %post |
262 | %update_icon_cache hicolor | |
263 | %update_desktop_database | |
264 | ||
265 | %postun | |
266 | %update_icon_cache hicolor | |
267 | %update_desktop_database_postun | |
268 | ||
18b90c81 SP |
269 | %files |
270 | %defattr(644,root,root,755) | |
005f83ba | 271 | %doc README.md docs/README.Linux.md |
9ba2f18c | 272 | %attr(755,root,root) %{_bindir}/JsonSchemaBuilder |
e36884e8 | 273 | %attr(755,root,root) %{_bindir}/TexturePacker |
25890c53 ER |
274 | %attr(755,root,root) %{_bindir}/kodi |
275 | %attr(755,root,root) %{_bindir}/kodi-standalone | |
9ba2f18c JP |
276 | %{_datadir}/%{name}/addons |
277 | %{_datadir}/%{name}/media | |
278 | %{_datadir}/%{name}/privacy-policy.txt | |
279 | %{_datadir}/%{name}/system | |
280 | %{_datadir}/%{name}/userdata | |
92b96980 | 281 | %attr(755,root,root) %{_libdir}/%{name} |
25890c53 ER |
282 | %{_desktopdir}/kodi.desktop |
283 | %{_iconsdir}/hicolor/*/apps/%{name}.png | |
9ba2f18c | 284 | %{_datadir}/metainfo/org.xbmc.kodi.metainfo.xml |
25890c53 | 285 | %{_datadir}/xsessions/kodi.desktop |
9ba2f18c JP |
286 | |
287 | %files common | |
288 | %defattr(644,root,root,755) | |
289 | %dir %{_datadir}/%{name} | |
290 | ||
291 | %files devel | |
292 | %defattr(644,root,root,755) | |
293 | %{_includedir}/kodi | |
294 | %{_datadir}/%{name}/cmake |