]> git.pld-linux.org Git - packages/kodi.git/blob - kodi.spec
rebuild with python 3.10
[packages/kodi.git] / kodi.spec
1 # TODO:
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!
6 #
7 # Conditional build:
8 # Features:
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
17 %else
18 %bcond_with     gles            # OpenGLES rendering
19 %endif
20 %bcond_with     gold            # Use gold linker
21 %bcond_without  wayland         # Wayland platform
22 # System libs:
23 %bcond_without  system_ffmpeg   # build with system ffmpeg
24 # CPU instructions
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
34
35 %ifarch %{arm_with_neon}
36 %define         with_neon       1
37 %endif
38 %ifarch %{x86_with_sse}
39 %define         with_sse        1
40 %endif
41 %ifarch %{x86_with_sse2}
42 %define         with_sse2       1
43 %endif
44
45 %define codename Matrix
46 #define subver  rc1
47 Summary:        Kodi is a free and open source media-player and entertainment hub
48 Name:           kodi
49 Version:        19.4
50 Release:        2
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:  a668854505eff3ca5ed9f33e3ac91c80
56 Patch0:         disable-static.patch
57 Patch1:         libdvd.patch
58 URL:            https://kodi.tv/
59 BuildRequires:  EGL-devel
60 %{?with_gbm:BuildRequires:      Mesa-libgbm-devel}
61 # for eglextchromium.h
62 %{?with_x11:BuildRequires:      Mesa-libEGL-devel}
63 %if %{without gles}
64 BuildRequires:  OpenGL-GLU-devel
65 BuildRequires:  OpenGL-devel
66 %if %{with x11}
67 BuildRequires:  OpenGL-GLX-devel
68 %endif
69 %endif
70 %{?with_gles:BuildRequires:     OpenGLES-devel}
71 BuildRequires:  alsa-lib-devel >= 1.0.27
72 BuildRequires:  avahi-devel
73 BuildRequires:  bluez-libs-devel >= 4.99
74 BuildRequires:  cmake >= 3.4
75 BuildRequires:  crossguid-devel
76 BuildRequires:  curl-devel
77 %{!?with_system_ffmpeg:BuildRequires:   dav1d-devel}
78 BuildRequires:  dbus-devel
79 # 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
80 %{?with_system_ffmpeg:BuildRequires:    ffmpeg-devel >= 4.3}
81 BuildRequires:  flatbuffers-devel >= 1.9.0
82 BuildRequires:  fontconfig-devel
83 BuildRequires:  freetype-devel
84 BuildRequires:  fribidi-devel
85 BuildRequires:  fstrcmp-devel >= 0.7
86 BuildRequires:  gettext-tools
87 BuildRequires:  giflib-devel >= 5
88 BuildRequires:  lcms2-devel
89 BuildRequires:  libass-devel
90 BuildRequires:  libatomic-devel
91 BuildRequires:  libbluray-devel >= 0.9.3
92 BuildRequires:  libcap-devel
93 BuildRequires:  libcdio-c++-devel >= 2.1.0
94 BuildRequires:  libcdio-devel >= 2.1.0
95 BuildRequires:  libcec-devel >= 3.0.0
96 BuildRequires:  libdrm-devel >= 2.4.95
97 %{?with_dvdcss:BuildRequires:   libdvdcss-devel >= 1.4.1}
98 BuildRequires:  libdvdnav-devel
99 BuildRequires:  libdvdread-devel
100 BuildRequires:  libfmt-devel >= 6.1.2
101 %{?with_gbm:BuildRequires:      libinput-devel}
102 BuildRequires:  libjpeg-devel
103 BuildRequires:  libmicrohttpd-devel >= 0.9.40
104 BuildRequires:  libnfs-devel
105 BuildRequires:  libplist-devel >= 2.0
106 BuildRequires:  libpng-devel
107 BuildRequires:  libsmbclient-devel
108 BuildRequires:  libstdc++-devel >= 6:5
109 BuildRequires:  libudfread-devel >= 1.0.0
110 BuildRequires:  libuuid-devel
111 BuildRequires:  libva-devel
112 BuildRequires:  libva-drm-devel
113 %{?with_wayland:BuildRequires:  libva-wayland-devel}
114 %{?with_x11:BuildRequires:      libva-x11-devel}
115 %if %{with x11} && %{without gles}
116 BuildRequires:  libvdpau-devel
117 %endif
118 BuildRequires:  libxml2-devel >= 2.0
119 BuildRequires:  libxslt-devel
120 BuildRequires:  lirc-devel
121 BuildRequires:  lzo-devel >= 2
122 BuildRequires:  mysql-devel
123 BuildRequires:  openssl-devel >= 1.0.2
124 BuildRequires:  pcre-cxx-devel
125 BuildRequires:  pkgconfig
126 BuildRequires:  pulseaudio-devel >= 11.0.0
127 BuildRequires:  python3-devel >= 1:3.8
128 BuildRequires:  rapidjson-devel >= 1.1.0
129 BuildRequires:  rpm-build >= 4.6
130 BuildRequires:  rpm-pythonprov
131 BuildRequires:  rpmbuild(macros) >= 2.007
132 BuildRequires:  sed >= 4.0
133 BuildRequires:  spdlog-devel >= 1.5.0
134 BuildRequires:  sqlite3-devel
135 BuildRequires:  swig
136 BuildRequires:  taglib-devel >= 1.9.0
137 BuildRequires:  tinyxml-devel >= 2.6.2
138 BuildRequires:  udev-devel
139 %if %{with wayland}
140 BuildRequires:  wayland-protocols >= 1.7
141 BuildRequires:  waylandpp-devel >= 0.2.2
142 %endif
143 %if %{with x11}
144 BuildRequires:  xorg-lib-libX11-devel
145 BuildRequires:  xorg-lib-libXext-devel
146 BuildRequires:  xorg-lib-libXrandr-devel
147 %endif
148 %if %{with gbm} || %{with wayland}
149 BuildRequires:  xorg-lib-libxkbcommon-devel >= 0.4.1
150 %endif
151 BuildRequires:  zlib-devel
152 Requires:       %{name}-common = %{version}-%{release}
153 Requires:       alsa-lib >= 1.0.27
154 Requires:       desktop-file-utils
155 Requires:       ffmpeg-libs >= 4.3
156 Requires:       flatbuffers >= 1.9.0
157 Requires:       hicolor-icon-theme
158 Requires:       libbluray >= 0.9.3
159 Requires:       libcdio >= 2.1.0
160 Requires:       libcdio-c++ >= 2.1.0
161 Requires:       libcec >= 3.0.0
162 Requires:       libdrm >= 2.4.95
163 %{?with_dvdcss:Requires:        libdvdcss >= 1.4.1}
164 Requires:       libfmt >= 6.1.2
165 Requires:       libmicrohttpd >= 0.9.40
166 Requires:       libplist >= 2.0
167 Requires:       libudfread >= 1.0.0
168 Requires:       lsb-release
169 Requires:       openssl >= 1.0.2
170 Requires:       pulseaudio-libs >= 11.0.0
171 Requires:       spdlog >= 1.5.0
172 Requires:       taglib >= 1.9.0
173 Requires:       tinyxml >= 2.6.2
174 %{?with_wayland:Requires:       waylandpp >= 0.2.2}
175 %if %{with gbm} || %{with wayland}
176 Requires:       xorg-lib-libxkbcommon >= 0.4.1
177 %endif
178 Obsoletes:      xbmc < 14.0
179 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
180
181 # debug enabled causes oom on i686/x32
182 %define         _enable_debug_packages  0
183
184 %description
185 Kodi Entertainment Center (formerly XBMC) is a free and open-source
186 media player software developed by the XBMC Foundation, a non-profit
187 technology consortium. Kodi is available for multiple operating
188 systems and hardware platforms, with a software 10-foot user interface
189 for use with televisions and remote controls. It allows users to play
190 and view most videos, music, such as podcasts from the internet, and
191 all common digital media files from local and network storage media.
192
193 %package common
194 Summary:        Common files for Kodi
195 BuildArch:      noarch
196
197 %description common
198 Common files for Kodi.
199
200 %package devel
201 Summary:        Header files for Kodi
202 Group:          Development/Libraries
203 Requires:       %{name}-common = %{version}-%{release}
204
205 %description devel
206 Header files for Kodi.
207
208 %prep
209 %setup -q -n xbmc-%{version}%{?subver}-%{codename}
210 %patch0 -p1
211 %patch1 -p1
212
213 %{__rm} -r lib/win32
214
215 %if %{without system_ffmpeg}
216 #ln -s %{SOURCE1} tools/depends/target/ffmpeg/ffmpeg-2.4.4-%{codename}.tar.gz
217 %endif
218
219 %build
220 %cmake -B build \
221         -DAPP_RENDER_SYSTEM=%{!?with_gles:gl}%{?with_gles:gles} \
222         -DCORE_PLATFORM_NAME="%{?with_gbm:GBM;}%{?with_x11:X11;}%{?with_wayland:WAYLAND;}" \
223         %{cmake_on_off airtunes ENABLE_AIRTUNES} \
224         %{cmake_on_off dvdcss ENABLE_DVDCSS} \
225         -DENABLE_INTERNAL_CROSSGUID:BOOL=OFF \
226         -DENABLE_INTERNAL_DAV1D:BOOL=OFF \
227         -DENABLE_INTERNAL_FFMPEG:BOOL=%{?with_system_ffmpeg:OFF}%{!?with_system_ffmpeg:ON} \
228         -DENABLE_INTERNAL_FLATBUFFERS:BOOL=OFF \
229         -DENABLE_INTERNAL_FMT:BOOL=OFF \
230         -DENABLE_INTERNAL_FSTRCMP:BOOL=OFF \
231         -DENABLE_INTERNAL_LIBDVD:BOOL=OFF \
232         -DENABLE_INTERNAL_RapidJSON:BOOL=OFF \
233         -DENABLE_INTERNAL_SPDLOG:BOOL=OFF \
234         -DENABLE_INTERNAL_UDFREAD:BOOL=OFF \
235         %{cmake_on_off gold ENABLE_LDGOLD} \
236         -DENABLE_TESTING:BOOL=OFF \
237         %{cmake_on_off optical_drive ENABLE_OPTICAL} \
238         %{cmake_on_off upnp ENABLE_UPNP} \
239         %{cmake_on_off avx ENABLE_AVX} \
240         %{cmake_on_off avx2 ENABLE_AVX2} \
241         %{cmake_on_off neon ENABLE_NEON} \
242         %{cmake_on_off sse ENABLE_SSE} \
243         %{cmake_on_off sse2 ENABLE_SSE2} \
244         %{cmake_on_off sse3 ENABLE_SSE3} \
245         %{cmake_on_off ssse3 ENABLE_SSSE3} \
246         %{cmake_on_off sse41 ENABLE_SSE4_1} \
247         %{cmake_on_off sse42 ENABLE_SSE4_2}
248
249 %{__make} -C build
250
251 %install
252 rm -rf $RPM_BUILD_ROOT
253
254 install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/addons
255
256 %{__make} -C build install \
257         DESTDIR=$RPM_BUILD_ROOT
258
259 %{__rm} $RPM_BUILD_ROOT%{_docdir}/{version.txt,README.Linux.md,LICENSE.md}
260
261 # not packaged
262 %{__rm} $RPM_BUILD_ROOT%{_prefix}/lib/firewalld/services/kodi-*.xml
263
264 %clean
265 rm -rf $RPM_BUILD_ROOT
266
267 %post
268 %update_icon_cache hicolor
269 %update_desktop_database
270
271 %postun
272 %update_icon_cache hicolor
273 %update_desktop_database_postun
274
275 %files
276 %defattr(644,root,root,755)
277 %doc README.md docs/README.Linux.md
278 %attr(755,root,root) %{_bindir}/JsonSchemaBuilder
279 %attr(755,root,root) %{_bindir}/TexturePacker
280 %attr(755,root,root) %{_bindir}/kodi
281 %attr(755,root,root) %{_bindir}/kodi-standalone
282 %{_datadir}/%{name}/addons
283 %{_datadir}/%{name}/media
284 %{_datadir}/%{name}/privacy-policy.txt
285 %{_datadir}/%{name}/system
286 %{_datadir}/%{name}/userdata
287 %attr(755,root,root) %{_libdir}/%{name}
288 %{_desktopdir}/kodi.desktop
289 %{_iconsdir}/hicolor/*/apps/%{name}.png
290 %{_datadir}/metainfo/org.xbmc.kodi.metainfo.xml
291 %{_datadir}/xsessions/kodi.desktop
292
293 %files common
294 %defattr(644,root,root,755)
295 %dir %{_datadir}/%{name}
296
297 %files devel
298 %defattr(644,root,root,755)
299 %{_includedir}/kodi
300 %{_datadir}/%{name}/cmake
This page took 0.142457 seconds and 3 git commands to generate.