]> git.pld-linux.org Git - packages/kodi.git/blob - kodi.spec
explicitly set arch and cpu
[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.5
50 Release:        1
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
57 Patch1:         libdvd.patch
58 Patch2:         mesa22.3.patch
59 URL:            https://kodi.tv/
60 BuildRequires:  EGL-devel
61 %{?with_gbm:BuildRequires:      Mesa-libgbm-devel}
62 # for eglextchromium.h
63 %{?with_x11:BuildRequires:      Mesa-libEGL-devel}
64 %if %{without gles}
65 BuildRequires:  OpenGL-GLU-devel
66 BuildRequires:  OpenGL-devel
67 %if %{with x11}
68 BuildRequires:  OpenGL-GLX-devel
69 %endif
70 %endif
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
89 BuildRequires:  jre
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
119 %endif
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
137 BuildRequires:  swig
138 BuildRequires:  taglib-devel >= 1.9.0
139 BuildRequires:  tinyxml-devel >= 2.6.2
140 BuildRequires:  udev-devel
141 %if %{with wayland}
142 BuildRequires:  wayland-protocols >= 1.7
143 BuildRequires:  waylandpp-devel >= 0.2.2
144 %endif
145 %if %{with x11}
146 BuildRequires:  xorg-lib-libX11-devel
147 BuildRequires:  xorg-lib-libXext-devel
148 BuildRequires:  xorg-lib-libXrandr-devel
149 %endif
150 %if %{with gbm} || %{with wayland}
151 BuildRequires:  xorg-lib-libxkbcommon-devel >= 0.4.1
152 %endif
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
178 %endif
179 Obsoletes:      xbmc < 14.0
180 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
181
182 # debug enabled causes oom on i686/x32
183 %define         _enable_debug_packages  0
184
185 %description
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.
193
194 %package common
195 Summary:        Common files for Kodi
196 BuildArch:      noarch
197
198 %description common
199 Common files for Kodi.
200
201 %package devel
202 Summary:        Header files for Kodi
203 Group:          Development/Libraries
204 Requires:       %{name}-common = %{version}-%{release}
205
206 %description devel
207 Header files for Kodi.
208
209 %prep
210 %setup -q -n xbmc-%{version}%{?subver}-%{codename}
211 %patch0 -p1
212 %patch1 -p1
213 %patch2 -p1
214
215 %{__rm} -r lib/win32
216
217 %if %{without system_ffmpeg}
218 #ln -s %{SOURCE1} tools/depends/target/ffmpeg/ffmpeg-2.4.4-%{codename}.tar.gz
219 %endif
220
221 %build
222 %cmake -B build \
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}
252
253 %{__make} -C build
254
255 %install
256 rm -rf $RPM_BUILD_ROOT
257
258 install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/addons
259
260 %{__make} -C build install \
261         DESTDIR=$RPM_BUILD_ROOT
262
263 %{__rm} $RPM_BUILD_ROOT%{_docdir}/{version.txt,README.Linux.md,LICENSE.md}
264
265 # not packaged
266 %{__rm} $RPM_BUILD_ROOT%{_prefix}/lib/firewalld/services/kodi-*.xml
267
268 %clean
269 rm -rf $RPM_BUILD_ROOT
270
271 %post
272 %update_icon_cache hicolor
273 %update_desktop_database
274
275 %postun
276 %update_icon_cache hicolor
277 %update_desktop_database_postun
278
279 %files
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
296
297 %files common
298 %defattr(644,root,root,755)
299 %dir %{_datadir}/%{name}
300
301 %files devel
302 %defattr(644,root,root,755)
303 %{_includedir}/kodi
304 %{_datadir}/%{name}/cmake
This page took 0.1031 seconds and 4 git commands to generate.