File kodi-noX-raspberry-pi2.spec of Package kodi (Revision 393326166c7fcdcba74ab1218e89cc60)

Currently displaying revision 393326166c7fcdcba74ab1218e89cc60 , Show latest

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