2 # - fix build flags - some files are compiled with -O3 and without rpm*flags
3 # - add and/or fix users/groups permissions
4 # - split to subpackages?
5 # - bundled ffmpeg build (tools/depends/target/ffmpeg/autobuild.sh) enables nonfree & gpl!
9 %bcond_with airtunes # AirTunes support
10 %bcond_without dvdcss # DVDCSS support
11 %bcond_without gbm # GBM platform
12 %bcond_without optical_drive # optical drive
13 %bcond_without upnp # UPnP support
14 %bcond_without x11 # X11 platform
15 %ifarch %{arm} aarch64
16 %bcond_without gles # OpenGL rendering
18 %bcond_with gles # OpenGLES rendering
20 %bcond_with gold # Use gold linker
21 %bcond_without wayland # Wayland platform
23 %bcond_without system_ffmpeg # build with system ffmpeg
25 %bcond_with avx # use AVX instructions
26 %bcond_with avx2 # use AVX2 instructions
27 %bcond_with neon # use NEON instructions
28 %bcond_with sse # use SSE instructions
29 %bcond_with sse2 # use SSE2 instructions
30 %bcond_with sse3 # use SSE3 instructions
31 %bcond_with ssse3 # use SSSE3 instructions
32 %bcond_with sse41 # use SSE4.1 instructions
33 %bcond_with sse42 # use SSE4.2 instructions
35 %ifarch %{arm_with_neon}
38 %ifarch %{x86_with_sse}
41 %ifarch %{x86_with_sse2}
45 %define codename Matrix
47 Summary: Kodi is a free and open source media-player and entertainment hub
51 License: GPL v2+ and GPL v3+
52 Group: Applications/Multimedia
53 #Source0Download: https://github.com/xbmc/xbmc/releases
54 Source0: https://github.com/xbmc/xbmc/archive/%{version}-%{codename}.tar.gz
55 # Source0-md5: 44f78712d1752af1c9c3d43dd5a56a17
56 Patch0: disable-static.patch
58 Patch2: mesa22.3.patch
60 BuildRequires: EGL-devel
61 %{?with_gbm:BuildRequires: Mesa-libgbm-devel}
62 # for eglextchromium.h
63 %{?with_x11:BuildRequires: Mesa-libEGL-devel}
65 BuildRequires: OpenGL-GLU-devel
66 BuildRequires: OpenGL-devel
68 BuildRequires: OpenGL-GLX-devel
71 %{?with_gles:BuildRequires: OpenGLES-devel}
72 BuildRequires: alsa-lib-devel >= 1.0.27
73 BuildRequires: avahi-devel
74 BuildRequires: bluez-libs-devel >= 4.99
75 BuildRequires: cmake >= 3.4
76 BuildRequires: crossguid-devel
77 BuildRequires: curl-devel
78 %{!?with_system_ffmpeg:BuildRequires: dav1d-devel}
79 BuildRequires: dbus-devel
80 # 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
81 %{?with_system_ffmpeg:BuildRequires: ffmpeg-devel >= 4.3}
82 BuildRequires: flatbuffers-devel >= 1.9.0
83 BuildRequires: fontconfig-devel
84 BuildRequires: freetype-devel
85 BuildRequires: fribidi-devel
86 BuildRequires: fstrcmp-devel >= 0.7
87 BuildRequires: gettext-tools
88 BuildRequires: giflib-devel >= 5
90 BuildRequires: lcms2-devel
91 BuildRequires: libass-devel
92 BuildRequires: libatomic-devel
93 BuildRequires: libbluray-devel >= 0.9.3
94 BuildRequires: libcap-devel
95 BuildRequires: libcdio-c++-devel >= 2.1.0
96 BuildRequires: libcdio-devel >= 2.1.0
97 BuildRequires: libcec-devel >= 3.0.0
98 BuildRequires: libdrm-devel >= 2.4.95
99 %{?with_dvdcss:BuildRequires: libdvdcss-devel >= 1.4.1}
100 BuildRequires: libdvdnav-devel
101 BuildRequires: libdvdread-devel
102 BuildRequires: libfmt-devel >= 6.1.2
103 %{?with_gbm:BuildRequires: libinput-devel}
104 BuildRequires: libjpeg-devel
105 BuildRequires: libmicrohttpd-devel >= 0.9.40
106 BuildRequires: libnfs-devel
107 BuildRequires: libplist-devel >= 2.0
108 BuildRequires: libpng-devel
109 BuildRequires: libsmbclient-devel
110 BuildRequires: libstdc++-devel >= 6:5
111 BuildRequires: libudfread-devel >= 1.0.0
112 BuildRequires: libuuid-devel
113 BuildRequires: libva-devel
114 BuildRequires: libva-drm-devel
115 %{?with_wayland:BuildRequires: libva-wayland-devel}
116 %{?with_x11:BuildRequires: libva-x11-devel}
117 %if %{with x11} && %{without gles}
118 BuildRequires: libvdpau-devel
120 BuildRequires: libxml2-devel >= 2.0
121 BuildRequires: libxslt-devel
122 BuildRequires: lirc-devel
123 BuildRequires: lzo-devel >= 2
124 BuildRequires: mysql-devel
125 BuildRequires: openssl-devel >= 1.0.2
126 BuildRequires: pcre-cxx-devel
127 BuildRequires: pkgconfig
128 BuildRequires: pulseaudio-devel >= 11.0.0
129 BuildRequires: python3-devel >= 1:3.8
130 BuildRequires: rapidjson-devel >= 1.1.0
131 BuildRequires: rpm-build >= 4.6
132 BuildRequires: rpm-pythonprov
133 BuildRequires: rpmbuild(macros) >= 2.007
134 BuildRequires: sed >= 4.0
135 BuildRequires: spdlog-devel >= 1.5.0
136 BuildRequires: sqlite3-devel
138 BuildRequires: taglib-devel >= 1.9.0
139 BuildRequires: tinyxml-devel >= 2.6.2
140 BuildRequires: udev-devel
142 BuildRequires: wayland-protocols >= 1.7
143 BuildRequires: waylandpp-devel >= 0.2.2
146 BuildRequires: xorg-lib-libX11-devel
147 BuildRequires: xorg-lib-libXext-devel
148 BuildRequires: xorg-lib-libXrandr-devel
150 %if %{with gbm} || %{with wayland}
151 BuildRequires: xorg-lib-libxkbcommon-devel >= 0.4.1
153 BuildRequires: zlib-devel
154 Requires: %{name}-common = %{version}-%{release}
155 Requires: alsa-lib >= 1.0.27
156 Requires: desktop-file-utils
157 Requires: ffmpeg-libs >= 4.3
158 Requires: hicolor-icon-theme
159 Requires: libbluray >= 0.9.3
160 Requires: libcdio >= 2.1.0
161 Requires: libcdio-c++ >= 2.1.0
162 Requires: libcec >= 3.0.0
163 Requires: libdrm >= 2.4.95
164 %{?with_dvdcss:Requires: libdvdcss >= 1.4.1}
165 Requires: libfmt >= 6.1.2
166 Requires: libmicrohttpd >= 0.9.40
167 Requires: libplist >= 2.0
168 Requires: libudfread >= 1.0.0
169 Requires: lsb-release
170 Requires: openssl >= 1.0.2
171 Requires: pulseaudio-libs >= 11.0.0
172 Requires: spdlog >= 1.5.0
173 Requires: taglib >= 1.9.0
174 Requires: tinyxml >= 2.6.2
175 %{?with_wayland:Requires: waylandpp >= 0.2.2}
176 %if %{with gbm} || %{with wayland}
177 Requires: xorg-lib-libxkbcommon >= 0.4.1
179 Obsoletes: xbmc < 14.0
180 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
182 # debug enabled causes oom on i686/x32
183 %define _enable_debug_packages 0
186 Kodi Entertainment Center (formerly XBMC) is a free and open-source
187 media player software developed by the XBMC Foundation, a non-profit
188 technology consortium. Kodi is available for multiple operating
189 systems and hardware platforms, with a software 10-foot user interface
190 for use with televisions and remote controls. It allows users to play
191 and view most videos, music, such as podcasts from the internet, and
192 all common digital media files from local and network storage media.
195 Summary: Common files for Kodi
199 Common files for Kodi.
202 Summary: Header files for Kodi
203 Group: Development/Libraries
204 Requires: %{name}-common = %{version}-%{release}
207 Header files for Kodi.
210 %setup -q -n xbmc-%{version}%{?subver}-%{codename}
217 %if %{without system_ffmpeg}
218 #ln -s %{SOURCE1} tools/depends/target/ffmpeg/ffmpeg-2.4.4-%{codename}.tar.gz
223 -DAPP_RENDER_SYSTEM=%{!?with_gles:gl}%{?with_gles:gles} \
224 -DCORE_PLATFORM_NAME="%{?with_gbm:GBM;}%{?with_x11:X11;}%{?with_wayland:WAYLAND;}" \
225 %{cmake_on_off airtunes ENABLE_AIRTUNES} \
226 %{cmake_on_off dvdcss ENABLE_DVDCSS} \
227 -DENABLE_INTERNAL_CROSSGUID:BOOL=OFF \
228 -DENABLE_INTERNAL_DAV1D:BOOL=OFF \
229 -DENABLE_INTERNAL_FFMPEG:BOOL=%{?with_system_ffmpeg:OFF}%{!?with_system_ffmpeg:ON} \
230 -DENABLE_INTERNAL_FLATBUFFERS:BOOL=OFF \
231 -DENABLE_INTERNAL_FMT:BOOL=OFF \
232 -DENABLE_INTERNAL_FSTRCMP:BOOL=OFF \
233 -DENABLE_INTERNAL_LIBDVD:BOOL=OFF \
234 -DENABLE_INTERNAL_RapidJSON:BOOL=OFF \
235 -DENABLE_INTERNAL_SPDLOG:BOOL=OFF \
236 -DENABLE_INTERNAL_UDFREAD:BOOL=OFF \
237 %{cmake_on_off gold ENABLE_LDGOLD} \
238 -DENABLE_TESTING:BOOL=OFF \
239 %{cmake_on_off optical_drive ENABLE_OPTICAL} \
240 %{cmake_on_off upnp ENABLE_UPNP} \
241 %{cmake_on_off avx ENABLE_AVX} \
242 %{cmake_on_off avx2 ENABLE_AVX2} \
243 %{cmake_on_off neon ENABLE_NEON} \
244 %{cmake_on_off sse ENABLE_SSE} \
245 %{cmake_on_off sse2 ENABLE_SSE2} \
246 %{cmake_on_off sse3 ENABLE_SSE3} \
247 %{cmake_on_off ssse3 ENABLE_SSSE3} \
248 %{cmake_on_off sse41 ENABLE_SSE4_1} \
249 %{cmake_on_off sse42 ENABLE_SSE4_2} \
250 -DWITH_ARCH=%{_target_base_arch} \
251 -DWITH_CPU=%{_target_cpu}
256 rm -rf $RPM_BUILD_ROOT
258 install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/addons
260 %{__make} -C build install \
261 DESTDIR=$RPM_BUILD_ROOT
263 %{__rm} $RPM_BUILD_ROOT%{_docdir}/{version.txt,README.Linux.md,LICENSE.md}
266 %{__rm} $RPM_BUILD_ROOT%{_prefix}/lib/firewalld/services/kodi-*.xml
269 rm -rf $RPM_BUILD_ROOT
272 %update_icon_cache hicolor
273 %update_desktop_database
276 %update_icon_cache hicolor
277 %update_desktop_database_postun
280 %defattr(644,root,root,755)
281 %doc README.md docs/README.Linux.md
282 %attr(755,root,root) %{_bindir}/JsonSchemaBuilder
283 %attr(755,root,root) %{_bindir}/TexturePacker
284 %attr(755,root,root) %{_bindir}/kodi
285 %attr(755,root,root) %{_bindir}/kodi-standalone
286 %{_datadir}/%{name}/addons
287 %{_datadir}/%{name}/media
288 %{_datadir}/%{name}/privacy-policy.txt
289 %{_datadir}/%{name}/system
290 %{_datadir}/%{name}/userdata
291 %attr(755,root,root) %{_libdir}/%{name}
292 %{_desktopdir}/kodi.desktop
293 %{_iconsdir}/hicolor/*/apps/%{name}.png
294 %{_datadir}/metainfo/org.xbmc.kodi.metainfo.xml
295 %{_datadir}/xsessions/kodi.desktop
298 %defattr(644,root,root,755)
299 %dir %{_datadir}/%{name}
302 %defattr(644,root,root,755)
304 %{_datadir}/%{name}/cmake