File kodi-noX.spec of Package kodi (Revision 690214a8a88078ff8e6e4ae1bf33a946)

Currently displaying revision 690214a8a88078ff8e6e4ae1bf33a946 , Show latest

751
 
1
#
2
# spec file for package kodi
3
#
4
# Copyright (c) 2015-2024 SUSE LLC
5
#
6
# All modifications and additions to the file contributed by third parties
7
# remain the property of their copyright owners, unless otherwise agreed
8
# upon. The license for this file, and modifications and additions to the
9
# file, is the same license as for the pristine package itself (unless the
10
# license for the pristine package is not an Open Source License, in which
11
# case the license is the MIT License). An "Open Source License" is a
12
# license that conforms to the Open Source Definition (Version 1.9)
13
# published by the Open Source Initiative.
14
15
# Please submit bugfixes or comments via http://bugs.opensuse.org/
16
#
17
18
19
# Please edit kodi.spec and kodi.changes only. *-noX.* files are generated from
20
# kodi.* files with the pre_checkin.sh script
21
%define kodi_version Omega
22
%define _kodi_addons_dir %{_datadir}/kodi/addons
23
# set this parameter to enable building Kodi with ccache, debug information, etc.
24
%define dev_build 0
25
26
# WARNING: Build with bundled ffmpeg until version 18.0 is reached
27
# INFO: We are on version 21.0 in the meantime, so let's live with
28
#  the system provided ffmpeg packages; if this won't work at some
29
#  point in time in the future, uncomment the "sysffmpeg" stuff. In
30
#  order to reduce downloading it every time, this is now commented!
31
%bcond_without sysffmpeg
32
## %if 0%{without sysffmpeg}
33
## %define ffmpeg_version 5.1.2-Nexus-Alpha3
34
## %endif
35
36
# kodi can be built without X support when openGL ES is used (mainly used on ARM boards used as media center)
37
%bcond_with kodi_with_X11
38
# Enable or disable Wayland depending on whether the stack is usable or not:
39
%if 0%{?suse_version} >= 1550
40
%bcond_without kodi_with_wayland
41
%else
42
%bcond_with kodi_with_wayland
43
%endif
44
45
%if 0%{?suse_version} < 1550
46
# Pipewire currently creates more issues than benefits; disable it for now:
47
%bcond_without kodi_without_pipewire
48
%else
49
# Leave PW enabled on Tumbleweed:
50
%bcond_with kodi_without_pipewire
51
%endif
52
53
%define kodi_platform none
54
%define kodi_player none
55
56
%if %{with kodi_with_X11}
57
%bcond_without enable_opengl
58
%bcond_with enable_opengles
59
%else
60
# no X build needs openGL ES
61
%bcond_with enable_opengl
62
%bcond_without enable_opengles
63
%endif
64
#
65
%bcond_without kodi_libbluray
66
# 
67
%bcond_without systemd
68
69
ExclusiveArch: does-not-build
70
71
Name:           kodi-noX
72
Version:        21.1
73
Release:        0
74
Summary:        Media center (formerly known as XBMC)
75
License:        GPL-2.0+ and GPL-3.0+
76
Group:          Productivity/Multimedia/Video/Players
77
Url:            https://kodi.tv/
78
Source0:        https://github.com/xbmc/xbmc/archive/%{version}-%{kodi_version}.tar.gz
79
Source1:        kodi.SuSEFirewall2
80
# AUTO-GENERATED using get_version.sh
81
Source3:        kodi.VERSION
82
Source10:       kodi.service
83
Source11:       kodi-noX.service
84
85
# The following sources will be downloaded via _service's download_files:
86
Source20:       https://mirrors.kodi.tv/build-deps/sources/crossguid-ca1bf4b810e2d188d04cb6286f957008ee1b7681.tar.gz
87
Source21:   https://github.com/xbmc/libdvdnav/archive/refs/tags/6.1.1-Next-Nexus-Alpha2-2.tar.gz
88
Source22:   https://github.com/xbmc/libdvdcss/archive/refs/tags/1.4.3-Next-Nexus-Alpha2-2.tar.gz
89
Source23:       https://github.com/xbmc/libdvdread/archive/refs/tags/6.1.3-Next-Nexus-Alpha2-2.tar.gz
90
Source24:       https://mirrors.kodi.tv/build-deps/sources/libudfread-1.1.2.tar.gz
91
Source25:       https://mirrors.kodi.tv/build-deps/sources/apache-groovy-binary-4.0.16.zip
92
93
## %if 0%{without sysffmpeg}
94
## Source30:       https://github.com/xbmc/FFmpeg/archive/refs/tags/%{ffmpeg_version}.tar.gz
95
## %endif
96
Patch1:         0001-crossguid-dgb.patch
97
Patch2:         0002-kodi-install.patch
98
%if %{without kodi_with_wayland}
99
Patch3:         0003-kodi-disable-wayland.patch
100
%endif
101
%if %{without kodi_without_pipewire}
102
Patch4:         0004-kodi-workaround-pipewire-bug.patch
103
%endif
104
105
BuildRequires:  autoconf
106
BuildRequires:  automake
107
BuildRequires:  binutils-gold
108
BuildRequires:  desktop-file-utils
109
BuildRequires:  fdupes
110
BuildRequires:  gawk
111
%if 0%{?suse_version} >= 1550 && 0%{?sle_version} == 0
112
# Use the default compiler on Tumbleweed
113
BuildRequires:  gcc
114
BuildRequires:  gcc-c++
115
%else
116
%if 0%{?suse_version} > 1320 && 0%{?sle_version} == 0
117
BuildRequires:  gcc9
118
BuildRequires:  gcc9-c++
119
%else
120
BuildRequires:  gcc8
121
BuildRequires:  gcc8-c++
122
%endif
123
%endif
124
BuildRequires:  ghostscript
125
BuildRequires:  graphviz
126
BuildRequires:  groff-full
127
BuildRequires:  libtool
128
BuildRequires:  pkg-config
129
BuildRequires:  flatbuffers-devel
130
BuildRequires:  pkgconfig(dav1d)
131
BuildRequires:  pkgconfig(fmt)
132
BuildRequires:  pkgconfig(fstrcmp)
133
BuildRequires:  pkgconfig(RapidJSON) >= 1.0.2
134
BuildRequires:  python(abi) >= 3.11
135
BuildRequires:  pkgconfig(python-3.11)
136
BuildRequires:  libmysqlclient-devel
137
BuildRequires:  pkgconfig(libass) >= 0.17.0
138
BuildRequires:  pkgconfig(libcurl)
139
BuildRequires:  pkgconfig(openssl)
140
BuildRequires:  pkgconfig(gnutls)
141
BuildRequires:  libgcrypt-devel
142
BuildRequires:  pkgconfig(bzip2)
143
BuildRequires:  lzo-devel
144
BuildRequires:  pkgconfig(zlib)
145
BuildRequires:  pkgconfig(libcrypto)
146
BuildRequires:  tinyxml-devel
147
BuildRequires:  tinyxml2-devel
148
BuildRequires:  pkgconfig(uuid)
149
BuildRequires:  libyajl-devel >= 2
150
BuildRequires:  pkgconfig(libidn2)
151
BuildRequires:  pkgconfig(libinput)
152
BuildRequires:  pkgconfig(libxml-2.0)
153
BuildRequires:  pkgconfig(libxslt)
154
BuildRequires:  pkgconfig(fribidi)
155
BuildRequires:  pkgconfig(sqlite3) 
156
BuildRequires:  pkgconfig(libpcrecpp)
157
BuildRequires:  pkgconfig(libpcre)
158
BuildRequires:  pkgconfig(freetype2)
159
BuildRequires:  pkgconfig(taglib) >= 1.9
160
BuildRequires:  pkgconfig(libcdio) >= 2.1.0
161
BuildRequires:  pkgconfig(lirc)
162
BuildRequires:  pkgconfig(RapidJSON)
163
%if %{with kodi_libbluray}
164
BuildRequires:  pkgconfig(libbluray)  >= 0.9.3
165
%endif
166
BuildRequires:  pkgconfig(alsa)
167
BuildRequires:  pkgconfig(dbus-1)
168
# libmicrohttpd > 0.9.30
169
BuildRequires:  pkgconfig(libmicrohttpd)
170
BuildRequires:  pkgconfig(libpulse) >= 1.0
171
BuildRequires:  pkgconfig(avahi-client)
172
BuildRequires:  pkgconfig(gbm)
173
%if %{with kodi_with_X11}
174
BuildRequires:  pkgconfig(x11)
175
BuildRequires:  pkgconfig(xext)
176
BuildRequires:  pkgconfig(xrandr)
177
BuildRequires:  pkgconfig(libdrm)
178
BuildRequires:  pkgconfig(egl)
179
BuildRequires:  pkgconfig(xkbcommon)
180
%endif
181
BuildRequires:  pkgconfig(libssh)
182
BuildRequires:  pkgconfig(smbclient)
183
BuildRequires:  pkgconfig(libnfs) >= 4.0.0
184
%if 0%{?suse_version} >= 1550 || ( 0%{?sle_version} >= 150400 && 0%{?is_opensuse} )
185
BuildRequires:  pkgconfig(libplist-2.0)
186
%else
187
BuildRequires:  pkgconfig(libplist)
188
%endif
189
BuildRequires:  shairplay-devel
190
BuildRequires:  pkgconfig(libudev)
191
BuildRequires:  pkgconfig(libcec) >= 4.0.0
192
BuildRequires:  pkgconfig(lcms2)
193
%if 0%{?suse_version} > 1315
194
BuildRequires:  pkgconfig(bluez)
195
%endif
196
BuildRequires:  libcap-devel
197
%if %{with sysffmpeg}
198
BuildRequires:  (pkgconfig(libavcodec) >= 60 with pkgconfig(libavcodec) < 61)
199
BuildRequires:  (pkgconfig(libavfilter) >= 9 with pkgconfig(libavfilter) < 10)
200
BuildRequires:  (pkgconfig(libavformat) >= 60 with pkgconfig(libavformat) < 61)
201
BuildRequires:  (pkgconfig(libavutil) >= 58 with pkgconfig(libavutil) < 59)
202
BuildRequires:  (pkgconfig(libpostproc) >= 57 with pkgconfig(libpostproc) < 58)
203
BuildRequires:  (pkgconfig(libswresample) >= 4 with pkgconfig(libswresample) < 5)
204
BuildRequires:  (pkgconfig(libswscale) >= 7 with pkgconfig(libswscale) < 8)
205
%else
206
BuildRequires:  ladspa-devel
207
BuildRequires:  libgsm-devel
208
BuildRequires:  pkg-config
209
BuildRequires:  yasm
210
BuildRequires:  pkgconfig(alsa)
211
BuildRequires:  pkgconfig(bzip2)
212
BuildRequires:  pkgconfig(celt) >= 0.11.0
213
BuildRequires:  pkgconfig(enca)
214
BuildRequires:  pkgconfig(fontconfig) >= 2.4.2
215
BuildRequires:  pkgconfig(freetype2)
216
BuildRequires:  pkgconfig(fribidi) >= 0.19.0
217
BuildRequires:  pkgconfig(gnutls)
218
BuildRequires:  pkgconfig(jack)
219
BuildRequires:  pkgconfig(libbluray)
220
BuildRequires:  pkgconfig(libcdio_paranoia)
221
BuildRequires:  pkgconfig(libdc1394-2)
222
BuildRequires:  pkgconfig(liboil-0.3) >= 0.3.15
223
BuildRequires:  pkgconfig(libopenjpeg)
224
BuildRequires:  pkgconfig(libpulse)
225
BuildRequires:  pkgconfig(libraw1394)
226
BuildRequires:  pkgconfig(libwebp) >= 0.4
227
BuildRequires:  pkgconfig(ogg)
228
BuildRequires:  pkgconfig(opus)
229
BuildRequires:  pkgconfig(schroedinger-1.0)
230
BuildRequires:  pkgconfig(sdl)
231
BuildRequires:  pkgconfig(speex)
232
BuildRequires:  pkgconfig(theora) >= 1.1
233
BuildRequires:  pkgconfig(vorbis)
234
BuildRequires:  pkgconfig(vpx) >= 1.3.0
235
BuildRequires:  pkgconfig(x11)
236
BuildRequires:  pkgconfig(xcb)
237
BuildRequires:  pkgconfig(xcb-render)
238
BuildRequires:  pkgconfig(xcb-shape)
239
BuildRequires:  pkgconfig(xcb-shm)
240
BuildRequires:  pkgconfig(xcb-xfixes)
241
BuildRequires:  pkgconfig(xext)
242
BuildRequires:  pkgconfig(xfixes)
243
BuildRequires:  pkgconfig(zlib)
244
BuildRequires:  pkgconfig(librtmp)
245
BuildRequires:  libmp3lame-devel
246
BuildRequires:  libxvidcore-devel
247
BuildRequires:  pkgconfig(opencore-amrnb)
248
BuildRequires:  pkgconfig(twolame)
249
BuildRequires:  pkgconfig(x264)
250
BuildRequires:  pkgconfig(x265)
251
%endif
252
BuildRequires:  swig
253
BuildRequires:  java
254
BuildRequires:  apache-commons-lang3
255
BuildRequires:  apache-commons-text
256
BuildRequires:  doxygen
257
%if %{with enable_opengl}
258
BuildRequires:  pkgconfig(gl)
259
BuildRequires:  pkgconfig(glu)
260
BuildRequires:  pkgconfig(vdpau)
261
%if 0%{?suse_version} < 1500
262
BuildRequires:  pkgconfig(libva) >= 0.38
263
BuildRequires:  pkgconfig(libva-x11) >= 0.38
264
%else
265
BuildRequires:  pkgconfig(libva) >= 1.0.0
266
BuildRequires:  pkgconfig(libva-x11) >= 1.0.0
267
%endif
268
%endif
269
BuildRequires:  pkgconfig(libdisplay-info)
270
%if %{with kodi_with_wayland}
271
BuildRequires:  pkgconfig(libva-wayland)
272
BuildRequires:  pkgconfig(wayland-scanner)
273
BuildRequires:  pkgconfig(wayland-scanner++)
274
BuildRequires:  pkgconfig(wayland-protocols)
275
BuildRequires:  pkgconfig(wayland-client)
276
BuildRequires:  pkgconfig(wayland-client++)
277
BuildRequires:  pkgconfig(wayland-cursor++)
278
BuildRequires:  pkgconfig(wayland-egl++)
279
%endif
280
%if %{with enable_opengles}
281
%if "%{kodi_platform}" == "none"
282
BuildRequires:  Mesa-libEGL-devel
283
BuildRequires:  Mesa-libGLESv2-devel
284
%else
285
%if ("%{kodi_platform}" == "raspberry-pi") || ("%{kodi_platform}" == "raspberry-pi2")
286
BuildRequires:  raspberrypi-userland-devel
287
%endif
288
%endif
289
%endif
290
%if "%{kodi_player}" == "omxplayer"
291
Requires:       omxplayer
292
%endif
293
BuildRequires:  cmake
294
BuildRequires:  gperf
295
BuildRequires:  unzip
296
BuildRequires:  zip
297
BuildRequires:  nasm
298
%if %{dev_build}
299
BuildRequires:  ccache
300
%endif
301
302
# cpluff
303
BuildRequires:  pkgconfig(expat)
304
305
# TexturePacker
306
BuildRequires:  pkgconfig(libpng)
307
BuildRequires:  giflib-devel
308
BuildRequires:  libjpeg8-devel
309
BuildRequires:  lzo-devel
310
#
311
BuildRequires:  pkgconfig(spdlog) > 1.8.0
312
BuildRequires:  libunistring-devel
313
314
%if 0%{?suse_version} > 1510
315
BuildRequires:  pkgconfig(gtest)
316
%else
317
BuildRequires: googletest-devel
318
%endif
319
320
%if %{without kodi_without_pipewire}
321
# pipewire
322
BuildRequires: pkgconfig(libpipewire-0.3)
323
BuildRequires: pkgconfig(libspa-0.2)
324
%endif
325
#
326
%{?systemd_requires}
327
328
# kodi needs libnfs to access nfs sources, it is not automatically required
329
Requires:       libnfs
330
#
331
Obsoletes:      xbmc < %{version}
332
Provides:       xbmc = %{version}
333
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
334
%if %{with kodi_with_X11}
335
Conflicts:      kodi
336
%else
337
Conflicts:      kodi-noX
338
%endif
339
340
341
%description
342
KODI media center is a free cross-platform media-player jukebox and
343
entertainment hub.  KODI can play a spectrum of of multimedia formats,
344
and featuring playlist, audio visualizations, slideshow, and weather
345
forecast functions, together third-party plugins.
346
347
%package devel
348
Summary:        Kodi Media center devel files
349
Group:          Development/Languages/C and C++
350
Requires:       %{name}
351
BuildArch:      noarch
352
%if %{with kodi_with_X11}
353
Conflicts:      kodi-devel
354
%else
355
Conflicts:      kodi-noX-devel
356
%endif
357
358
%description devel
359
Development files for Kodi Media Center
360
361
%prep
362
%setup -q -n xbmc-%{version}-%{kodi_version}
363
%autopatch -p1
364
365
%build
366
367
# Remove build time references so build-compare can do its work
368
date -u -r version.txt +%%Y%%m%%d | tee BUILDDATE 
369
FAKE_BUILDDATETIME=$(LC_ALL=C date -u -r %{_sourcedir}/%{name}.changes)
370
for file in xbmc/interfaces/python/PythonSwig.cpp.template ; do
371
  sed -i -e "/PyModule_AddStringConstant.*__date__/ s/\${new Date()\.toString()}/$FAKE_BUILDDATETIME/"  $file
372
done
373
374
# Set the final version string
375
cp %{SOURCE3} VERSION
376
377
# avoid long delays when powerkit isn't running
378
sed -i \
379
    -e '/dbus_connection_send_with_reply_and_block/s:-1:3000:' \
380
    xbmc/platform/linux/*.cpp
381
382
%if "%{kodi_platform}" == "raspberry-pi" || "%{kodi_platform}" == "raspberry-pi2"
383
export CXXFLAGS="$CXXFLAGS -I%{_includedir}/interface/vcos/pthreads -I%{_includedir}/interface/vmcs_host/linux"
384
%endif
385
386
%if 0%{?suse_version} >= 1550 && 0%{?sle_version} == 0
387
 export CC=gcc
388
 export CXX=g++
389
%else
390
%if 0%{?suse_version} > 1320 && 0%{?sle_version} == 0
391
 export CC=gcc-9
392
 export CXX=g++-9
393
%else
394
 export CC=gcc-8
395
 export CXX=g++-8
396
%endif
397
%endif
398
399
# Extract the groovy files to a proper place:
400
mkdir -p %{_builddir}/groovy
401
unzip %{SOURCE25} -d %{_builddir}/groovy
402
mv %{_builddir}/groovy/groovy-*/lib %{_builddir}/groovy
403
rm -rf %{_builddir}/groovy/groovy-* || true
404
405
%cmake \
406
%ifarch i586
407
    -DCMAKE_C_FLAGS='-msse' \
408
%endif
409
%if %{dev_build}
410
    -DVERBOSE=ON \
411
%endif
412
%if %{with kodi_with_wayland}
413
    -DWAYLANDPP_INCLUDE_DIR="$(pkg-config --cflags-only-I wayland-client++ | sed -e 's/^-I//;s/ -I/;/g;s/ $//')" \
414
%endif
415
    -DCMAKE_C_COMPILER=$CC \
416
    -DCMAKE_CXX_COMPILER=$CXX \
417
    -DENABLE_INTERNAL_FMT=OFF \
418
%if %{without sysffmpeg}
419
    -DENABLE_INTERNAL_FFMPEG=ON \
420
    -DFFMPEG_URL=%{SOURCE30} \
421
%else
422
    -DENABLE_INTERNAL_FFMPEG=OFF \
423
%endif
424
    -DENABLE_INTERNAL_CDIO=OFF \
425
    -DENABLE_INTERNAL_SPDLOG=OFF \
426
    -DCROSSGUID_URL=%{SOURCE20} \
427
    -DLIBDVDNAV_URL=%{SOURCE21} \
428
    -DLIBDVDCSS_URL=%{SOURCE22} \
429
    -DLIBDVDREAD_URL=%{SOURCE23} \
430
    -DENABLE_INTERNAL_RapidJSON=OFF \
431
    -DENABLE_INTERNAL_FLATBUFFERS=OFF \
432
    -DENABLE_INTERNAL_FSTRCMP=OFF \
433
    -DENABLE_INTERNAL_UDFREAD=ON \
434
    -DUDFREAD_URL=%{SOURCE24} \
435
    -Dgroovy_SOURCE_DIR=%{_builddir}/groovy \
436
    -Dapache-commons-lang_SOURCE_DIR=%{_datadir}/java \
437
    -Dapache-commons-text_SOURCE_DIR=%{_datadir}/java/apache-commons-text \
438
    -DAPP_RENDER_SYSTEM=gl \
439
    -DX11_RENDER_SYSTEM=gl \
440
    -DBUILD_SHARED_LIBS=1 \
441
    -DPYTHON_VER=3.11 \
442
%if %{with kodi_without_pipewire}
443
    -DENABLE_PIPEWIRE=OFF \
444
%endif
445
    ${NULL}
446
447
make -O %{?_smp_mflags} V=1 CC=$CC CXX=$CXX || l
448
rm -rf %{_builddir}/groovy
449
450
%install
451
pushd build
452
make DESTDIR=%{buildroot} install %{?_smp_mflags}
453
#make -C tools/EventClients DESTDIR=%%{buildroot} install %%{?_smp_mflags}
454
455
# Tumbleweed does not have SuSEfirewall anymore:
456
%if 0%{?is_opensuse} == 0 || 0%{?suse_version} < 1550
457
# SuSEfirewall service description
458
install -D -m 644 %{_sourcedir}/kodi.SuSEFirewall2 %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/kodi
459
%endif
460
461
# Systemd service file
462
%if %{without kodi_with_X11}
463
install -m 0644 -D %{SOURCE11} %{buildroot}/%{_unitdir}/kodi-noX.service
464
%else
465
install -m 0644 -D %{SOURCE10} %{buildroot}/%{_unitdir}/kodi.service
466
%endif
467
468
# remove the doc files from unversioned /usr/share/doc/kodi, they should be in versioned docdir
469
rm -r %{buildroot}/%{_datadir}/doc/
470
471
# remove win32 source files
472
rm -f %{buildroot}%{_kodi_addons_dir}/library.kodi.addon/dlfcn-win32.cpp
473
rm -f %{buildroot}%{_kodi_addons_dir}/library.kodi.addon/dlfcn-win32.h
474
rm -f %{buildroot}%{_kodi_addons_dir}/library.xbmc.addon/dlfcn-win32.cpp
475
rm -f %{buildroot}%{_kodi_addons_dir}/library.xbmc.addon/dlfcn-win32.h
476
477
# remove duplicate header files
478
rm -f %{buildroot}%{_kodi_addons_dir}/library.kodi.addon/libXBMC_addon.h
479
rm -f %{buildroot}%{_kodi_addons_dir}/library.xbmc.addon/libXBMC_addon.h
480
rm -f %{buildroot}%{_kodi_addons_dir}/library.kodi.codec/libXBMC_codec.h
481
rm -f %{buildroot}%{_kodi_addons_dir}/library.xbmc.codec/libXBMC_codec.h
482
rm -f %{buildroot}%{_kodi_addons_dir}/library.kodi.gui/libXBMC_gui.h
483
rm -f %{buildroot}%{_kodi_addons_dir}/library.xbmc.gui/libXBMC_gui.h
484
rm -f %{buildroot}%{_kodi_addons_dir}/library.kodi.pvr/libXBMC_pvr.h
485
rm -f %{buildroot}%{_kodi_addons_dir}/library.xbmc.pvr/libXBMC_pvr.h
486
rm -f %{buildroot}%{_kodi_addons_dir}/library.kodi.guilib/libKODI_guilib.h
487
488
# copy manpages
489
popd
490
install -m 644 -D docs/manpages/kodi-standalone.1 %{buildroot}%{_mandir}/man1/kodi-standalone.1
491
install -m 644 -D docs/manpages/kodi.bin.1 %{buildroot}%{_mandir}/man1/kodi.1
492
493
desktop-file-install \
494
 --dir=%{buildroot}%{_datadir}/applications \
495
 %{buildroot}%{_datadir}/applications/kodi.desktop
496
497
%if %{without kodi_with_wayland}
498
rm -f %{buildroot}%{_datadir}/wayland-sessions/kodi-gbm.desktop
499
rmdir -p %{buildroot}%{_datadir}/wayland-sessions || true
500
%endif
501
502
# TexturePacker likes to be installed as kodi-TexturePacker, too.
503
if [ -f %{buildroot}%{_bindir}/kodi-TexturePacker ] && [ -f %{buildroot}%{_bindir}/TexturePacker ]; then
504
    rm -f %{buildroot}%{_bindir}/TexturePacker
505
elif [ -f %{buildroot}%{_bindir}/TexturePacker ]; then
506
    mv %{buildroot}%{_bindir}/TexturePacker %{buildroot}%{_bindir}/kodi-TexturePacker
507
fi
508
%fdupes %{buildroot}
509
510
%pre
511
%service_add_pre kodi.service
512
513
%post
514
%service_add_post kodi.service
515
516
%preun
517
%service_del_preun kodi.service
518
519
%postun
520
%service_del_postun kodi.service
521
522
%files
523
%defattr(-,root,root)
524
%doc version.txt 
525
%if 0%{?is_opensuse} == 0 || 0%{?suse_version} < 1550
526
%config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/kodi
527
%endif
528
%{_bindir}/kodi
529
%{_bindir}/kodi-standalone
530
%{_bindir}/kodi-TexturePacker
531
%dir %{_libdir}/kodi
532
%if %{with kodi_with_X11}
533
%{_libdir}/kodi/kodi-xrandr
534
%{_libdir}/kodi/kodi.bin
535
%endif
536
%{_datadir}/xsessions/kodi.desktop
537
%if %{with kodi_with_wayland}
538
%dir %{_datadir}/wayland-sessions
539
%{_datadir}/wayland-sessions/kodi-gbm.desktop
540
%endif
541
%{_datadir}/applications/kodi.desktop
542
%{_datadir}/metainfo/org.xbmc.kodi.metainfo.xml
543
%{_datadir}/icons/*
544
%dir %{_datadir}/kodi
545
%dir %{_datadir}/kodi/media
546
%dir %{_datadir}/kodi/system
547
%dir %{_libdir}/kodi/system
548
%dir %{_datadir}/kodi/userdata
549
%{_datadir}/kodi/media/*
550
%{_datadir}/kodi/system/*
551
%{_datadir}/kodi/privacy-policy.txt
552
%{_libdir}/kodi/system/*
553
%{_datadir}/kodi/userdata/*
554
%{_mandir}/man1/kodi.1.gz
555
%{_mandir}/man1/kodi-standalone.1.gz
556
%dir %{_kodi_addons_dir}
557
%dir %{_kodi_addons_dir}/game.controller.default
558
%{_kodi_addons_dir}/game.controller.default/*
559
%dir %{_kodi_addons_dir}/game.controller.keyboard
560
%{_kodi_addons_dir}/game.controller.keyboard/*
561
%dir %{_kodi_addons_dir}/game.controller.mouse
562
%{_kodi_addons_dir}/game.controller.mouse/*
563
%dir %{_kodi_addons_dir}/game.controller.snes
564
%{_kodi_addons_dir}/game.controller.snes/*
565
%dir %{_kodi_addons_dir}/metadata.album.universal/
566
%{_kodi_addons_dir}/metadata.album.universal/*
567
%dir %{_kodi_addons_dir}/metadata.artists.universal/
568
%{_kodi_addons_dir}/metadata.artists.universal/*
569
%dir %{_kodi_addons_dir}/metadata.common.allmusic.com/
570
%{_kodi_addons_dir}/metadata.common.allmusic.com/*
571
%dir %{_kodi_addons_dir}/metadata.common.fanart.tv/
572
%{_kodi_addons_dir}/metadata.common.fanart.tv/*
573
%dir %{_kodi_addons_dir}/metadata.common.musicbrainz.org/
574
%{_kodi_addons_dir}/metadata.common.musicbrainz.org/*
575
%dir %{_kodi_addons_dir}/metadata.common.theaudiodb.com/
576
%{_kodi_addons_dir}/metadata.common.theaudiodb.com/*
577
%dir %{_kodi_addons_dir}/metadata.local/
578
%{_kodi_addons_dir}/metadata.local/*
579
%dir %{_kodi_addons_dir}/metadata.themoviedb.org.python/
580
%{_kodi_addons_dir}/metadata.themoviedb.org.python/*
581
%dir %{_kodi_addons_dir}/metadata.tvshows.themoviedb.org.python/
582
%{_kodi_addons_dir}/metadata.tvshows.themoviedb.org.python/*
583
%dir %{_kodi_addons_dir}/repository.xbmc.org/
584
%{_kodi_addons_dir}/repository.xbmc.org/*
585
%dir %{_kodi_addons_dir}/resource.uisounds.kodi/
586
%{_kodi_addons_dir}/resource.uisounds.kodi/*
587
%dir %{_kodi_addons_dir}/screensaver.xbmc.builtin.black/
588
%{_kodi_addons_dir}/screensaver.xbmc.builtin.black/*
589
%dir %{_kodi_addons_dir}/screensaver.xbmc.builtin.dim/
590
%{_kodi_addons_dir}/screensaver.xbmc.builtin.dim/*
591
%dir %{_kodi_addons_dir}/script.module.pil/
592
%{_kodi_addons_dir}/script.module.pil/*
593
%dir %{_kodi_addons_dir}/service.xbmc.versioncheck/
594
%{_kodi_addons_dir}/service.xbmc.versioncheck/*
595
%dir %{_kodi_addons_dir}/webinterface.default/
596
%{_kodi_addons_dir}/webinterface.default/*
597
%dir %{_kodi_addons_dir}/xbmc.addon/
598
%{_kodi_addons_dir}/xbmc.addon/*
599
%dir %{_kodi_addons_dir}/xbmc.core/
600
%{_kodi_addons_dir}/xbmc.core/*
601
%dir %{_kodi_addons_dir}/xbmc.gui/
602
%{_kodi_addons_dir}/xbmc.gui/*
603
%dir %{_kodi_addons_dir}/xbmc.json/
604
%{_kodi_addons_dir}/xbmc.json/*
605
%dir %{_kodi_addons_dir}/xbmc.metadata/
606
%{_kodi_addons_dir}/xbmc.metadata/*
607
%dir %{_kodi_addons_dir}/xbmc.python/
608
%{_kodi_addons_dir}/xbmc.python/*
609
%dir %{_kodi_addons_dir}/audioencoder.kodi.builtin.aac/
610
%{_kodi_addons_dir}/audioencoder.kodi.builtin.aac/*
611
%dir %{_kodi_addons_dir}/audioencoder.kodi.builtin.wma/
612
%{_kodi_addons_dir}/audioencoder.kodi.builtin.wma/*
613
%dir %{_kodi_addons_dir}/kodi.resource/
614
%{_kodi_addons_dir}/kodi.resource/*
615
%dir %{_kodi_addons_dir}/resource.language.en_gb/
616
%{_kodi_addons_dir}/resource.language.en_gb/*
617
%dir %{_kodi_addons_dir}/xbmc.webinterface/
618
%{_kodi_addons_dir}/xbmc.webinterface/*
619
%dir %{_kodi_addons_dir}/resource.images.weathericons.default
620
%{_kodi_addons_dir}/resource.images.weathericons.default/*
621
%dir %{_kodi_addons_dir}/kodi.binary.instance.inputstream/
622
%{_kodi_addons_dir}/kodi.binary.instance.inputstream/*
623
%dir %{_kodi_addons_dir}/kodi.binary.instance.audioencoder/
624
%{_kodi_addons_dir}/kodi.binary.instance.audioencoder/*
625
%dir %{_kodi_addons_dir}/skin.estuary
626
%{_kodi_addons_dir}/skin.estuary/*
627
%dir %{_kodi_addons_dir}/kodi.binary.global.audioengine
628
%{_kodi_addons_dir}/kodi.binary.global.audioengine/*
629
%dir %{_kodi_addons_dir}/kodi.binary.global.filesystem
630
%{_kodi_addons_dir}/kodi.binary.global.filesystem/*
631
%dir %{_kodi_addons_dir}/kodi.binary.global.general
632
%{_kodi_addons_dir}/kodi.binary.global.general/*
633
%dir %{_kodi_addons_dir}/kodi.binary.global.gui
634
%{_kodi_addons_dir}/kodi.binary.global.gui/*
635
%dir %{_kodi_addons_dir}/kodi.binary.global.main
636
%{_kodi_addons_dir}/kodi.binary.global.main/*
637
%dir %{_kodi_addons_dir}/kodi.binary.global.network
638
%{_kodi_addons_dir}/kodi.binary.global.network/*
639
%dir %{_kodi_addons_dir}/kodi.binary.instance.audiodecoder
640
%{_kodi_addons_dir}/kodi.binary.instance.audiodecoder/*
641
%dir %{_kodi_addons_dir}/kodi.binary.instance.game
642
%{_kodi_addons_dir}/kodi.binary.instance.game/*
643
%dir %{_kodi_addons_dir}/kodi.binary.instance.imagedecoder
644
%{_kodi_addons_dir}/kodi.binary.instance.imagedecoder/*
645
%dir %{_kodi_addons_dir}/kodi.binary.instance.peripheral
646
%{_kodi_addons_dir}/kodi.binary.instance.peripheral/*
647
%dir %{_kodi_addons_dir}/kodi.binary.instance.pvr
648
%{_kodi_addons_dir}/kodi.binary.instance.pvr/*
649
%dir %{_kodi_addons_dir}/kodi.binary.instance.screensaver
650
%{_kodi_addons_dir}/kodi.binary.instance.screensaver/*
651
%dir %{_kodi_addons_dir}/kodi.binary.instance.vfs
652
%{_kodi_addons_dir}/kodi.binary.instance.vfs/*
653
%dir %{_kodi_addons_dir}/kodi.binary.instance.videocodec
654
%{_kodi_addons_dir}/kodi.binary.instance.videocodec/*
655
%dir %{_kodi_addons_dir}/kodi.binary.instance.visualization
656
%{_kodi_addons_dir}/kodi.binary.instance.visualization/*
657
%dir %{_kodi_addons_dir}/script.module.pycryptodome
658
%{_kodi_addons_dir}/script.module.pycryptodome/*
659
%dir %{_kodi_addons_dir}/metadata.generic.albums
660
%{_kodi_addons_dir}/metadata.generic.albums/*
661
%dir %{_kodi_addons_dir}/metadata.generic.artists
662
%{_kodi_addons_dir}/metadata.generic.artists/*
663
%dir %{_kodi_addons_dir}/kodi.binary.global.tools
664
%{_kodi_addons_dir}/kodi.binary.global.tools/*
665
666
%dir %{_libdir}/firewalld
667
%dir %{_libdir}/firewalld/services
668
%{_libdir}/firewalld/services/kodi-eventserver.xml
669
%{_libdir}/firewalld/services/kodi-http.xml
670
%{_libdir}/firewalld/services/kodi-jsonrpc.xml
671
672
%if %{without kodi_with_X11}
673
%{_unitdir}/kodi-noX.service
674
%else
675
%{_unitdir}/kodi.service
676
%endif
677
678
%dir %{_datadir}/kodi/cmake
679
%{_datadir}/kodi/cmake/AddonHelpers.cmake
680
%{_datadir}/kodi/cmake/AddOptions.cmake
681
%{_datadir}/kodi/cmake/ArchSetup.cmake
682
%{_datadir}/kodi/cmake/CheckCommits.cmake
683
%{_datadir}/kodi/cmake/CheckTargetPlatform.cmake
684
%{_datadir}/kodi/cmake/GenerateCompileInfo.cmake
685
%{_datadir}/kodi/cmake/GeneratorSetup.cmake
686
%{_datadir}/kodi/cmake/HandleDepends.cmake
687
%{_datadir}/kodi/cmake/Macros.cmake
688
%{_datadir}/kodi/cmake/PrepareEnv.cmake
689
%{_datadir}/kodi/cmake/ProjectMacros.cmake
690
%{_datadir}/kodi/cmake/PathSetup.cmake
691
%dir %{_libdir}/kodi/cmake
692
%{_libdir}/kodi/cmake/KodiConfig.cmake
693
694
%{_datadir}/metainfo/org.xbmc.kodi.metainfo.xml
695
696
%files devel
697
%defattr(-,root,root)
698
%dir %{_includedir}/kodi
699
%dir %{_includedir}/kodi/tools
700
%{_includedir}/kodi/tools/DllHelper.h
701
%{_includedir}/kodi/AddonBase.h
702
%{_includedir}/kodi/AudioEngine.h
703
%{_includedir}/kodi/Filesystem.h
704
%{_includedir}/kodi/General.h
705
%{_includedir}/kodi/Network.h
706
%{_includedir}/kodi/versions.h
707
%dir %{_includedir}/kodi/addon-instance
708
%{_includedir}/kodi/addon-instance/*
709
%dir %{_includedir}/kodi/addon-instance/inputstream
710
%{_includedir}/kodi/addon-instance/inputstream/*
711
%dir %{_includedir}/kodi/addon-instance/peripheral
712
%{_includedir}/kodi/addon-instance/peripheral/*
713
%dir %{_includedir}/kodi/addon-instance/pvr
714
%{_includedir}/kodi/addon-instance/pvr/*
715
%dir %{_includedir}/kodi/c-api
716
%{_includedir}/kodi/c-api/*
717
%dir %{_includedir}/kodi/c-api/addon-instance
718
%{_includedir}/kodi/c-api/addon-instance/*
719
%dir %{_includedir}/kodi/c-api/addon-instance/inputstream
720
%{_includedir}/kodi/c-api/addon-instance/inputstream/*
721
%dir %{_includedir}/kodi/c-api/addon-instance/pvr
722
%{_includedir}/kodi/c-api/addon-instance/pvr/*
723
%dir %{_includedir}/kodi/c-api/gui
724
%{_includedir}/kodi/c-api/gui/*
725
%dir %{_includedir}/kodi/c-api/gui/controls
726
%{_includedir}/kodi/c-api/gui/controls/*
727
%dir %{_includedir}/kodi/c-api/gui/dialogs
728
%{_includedir}/kodi/c-api/gui/dialogs/*
729
%dir %{_includedir}/kodi/c-api/gui/input
730
%{_includedir}/kodi/c-api/gui/input/*
731
%dir %{_includedir}/kodi/c-api/platform
732
%dir %{_includedir}/kodi/c-api/platform/android
733
%{_includedir}/kodi/c-api/platform/android/*
734
%dir %{_includedir}/kodi/gui
735
%{_includedir}/kodi/gui/*
736
%dir %{_includedir}/kodi/gui/controls
737
%{_includedir}/kodi/gui/controls/*
738
%dir %{_includedir}/kodi/gui/dialogs
739
%{_includedir}/kodi/gui/dialogs/*
740
%dir %{_includedir}/kodi/gui/gl
741
%{_includedir}/kodi/gui/gl/*
742
%dir %{_includedir}/kodi/gui/input
743
%{_includedir}/kodi/gui/input/*
744
%dir %{_includedir}/kodi/platform
745
%dir %{_includedir}/kodi/platform/android
746
%{_includedir}/kodi/platform/android/System.h
747
%dir %{_includedir}/kodi/tools
748
%{_includedir}/kodi/tools/*
749
750
%changelog
751